- Напиши застосунок зберігання todo-листів.
- Використовуй методи життєвого циклу.
- Під час додавання та видалення контакту контакти зберігаються у
localStorage
. - Під час завантаження застосунку todo-листа, якщо такі є, зчитуються з
локального сховища і записуються у
state
.
Застосунок повинен складатися з форми і списку todo-листів. На поточному кроці реалізуй додавання тудушки та відображення їх списку. Застосунок повинен зберігати тудушки між різними сесіями (оновлення сторінки).
Використовуйте готову структуру форми з попередньго таска: компонент
<SearchForm/>
приймає один проп onSubmit
- функцію для передачі значення
інпута під час сабміту форми.
<SearchFormStyled>
<FormBtn type="submit">
<FiSearch size="16px" />
</FormBtn>
<InputSearch
placeholder="What do you want to write?"
name="search"
required
autoFocus
/>
</SearchFormStyled>
state
, що зберігається в батьківському компоненті <Todos/>
, обов'язково
повинен бути наступного вигляду.
state = {
todos: [],
}
Кожна todo повинна бути об'єктом з властивостями text
та id
. Для генерації
ідентифікаторів використовуй будь-який відповідний пакет, наприклад
nanoid. Після завершення цього кроку,
застосунок повинен виглядати приблизно так.
Список карток тудушок. Створює компонент наступної структури.
<Grid>{/* Набір <GridItem ></CardItem> із тудушками */}</Grid>
Компонент елемента тудушки. Створює компонент наступної структури.
<GridItem>
<Todo />
</GridItem>
Компонент тудушки. Створює компонент наступної структури.
<TodoWrapper>
<Text textAlign="center" marginBottom="20px">
TODO #1
</Text>
<Text>Some description</Text>
<DeleteButton type="button">
<RiDeleteBinLine size={24} />
</DeleteButton>
</TodoWrapper>
Кореневий компонент програми виглядатиме так.
<SearchForm />
<Grid>
<GridItem>
<Todo/>
</GridItem>
</Grid>
Розшир функціонал застосунку, дозволивши користувачеві видаляти раніше збережені тудушки.