Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/annatsepilova/goit-react-woolf-hw-07-phonebook
- Owner: AnnaTsepilova
- Created: 2024-03-05T23:03:52.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-03-15T21:20:33.000Z (8 months ago)
- Last Synced: 2024-03-15T23:52:28.065Z (8 months ago)
- Language: JavaScript
- Homepage: https://annatsepilova.github.io/goit-react-woolf-hw-07-phonebook/
- Size: 6.81 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)