Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/annatsepilova/goit-react-woolf-hw-07-phonebook


https://github.com/annatsepilova/goit-react-woolf-hw-07-phonebook

Last synced: 4 days ago
JSON representation

Awesome Lists containing this project

README

        

## Книга контактів

Виконайте рефакторинг коду програми «Книга контактів». Видали код, що відповідає
за зберігання та читання контактів з локального сховища, та додай взаємодію з
бекендом для зберігання контактів.

### Бекенд

Створи свій персональний бекенд для розробки за допомогою UI-сервісу
[mockapi.io](https://mockapi.io). Зареєструйся, використовуючи свій обліковий
запис GitHub.

Створи ресурс `contacts`, щоб отримати ендпоінт `/contacts`. Використовуй
конструктор ресурсу та опиши об'єкт контакту як на ілюстрації.

![api](./assets/api.png)

### Форма стану

Додай у стан Redux обробку індикатора завантаження та помилки. Для цього зміни
форму стану.

```
{
contacts: {
items: [],
isLoading: false,
error: null
},
filter: ""
}
```

### Операції

Використовуй функцію
[createAsyncThunk](https://redux-toolkit.js.org/api/createAsyncThunk) або
[RTK Query](https://redux-toolkit.js.org/rtk-query/overview) для взаємодії з
бекендом та асинхронними запитами. Обробку екшенів та зміну даних у стані Redux
зроби за допомогою `createSlice`.

### Оголоси наступні операції:

- `fetchContacts` - одержання масиву контактів (метод GET) запитом. Базовий тип
екшену `"contacts/fetchAll"`.
- `addContact` - додавання контакту (метод POST). Базовий тип екшену
`"contacts/addContact"`.
- `deleteContact` - видалення контакту (метод DELETE). Базовий тип екшену
`"contacts/deleteContact"`.

### Фінальний результат

![screencapture](./assets/screencapture_1.png)