useGMFYNotifications
import { useGmfyNotifications } from 'gmfy-sdk'
Мотивация
Если необходимо отрисовать свой UI для списка уведомлений или просто обработать данные, можно воспользоваться хуком useGmfyNotifications
.
Хук позволяет получить список уведомлений пользователя с userId
.
В случае, если был передан updateInterval
в конфиг компонента провайдера уведомлений, будет возвращать новые значения раз в updateInterval
мс.
Возвращает список уведомлений и текущий статус запроса
осторожно
Важно! Хук должен быть обёрнут в компонент провайдер GMFYNotifications
Типизация
type Notification = {
userId: string;
clientId: string;
message: string;
};
type Notifications = Array<Notification> | null;
type Status = 'initial' | | 'done' | 'fail'
type UpdateValue =
| Notifications
| ((prevState: Notifications) => Notifications)
useGMFYBadges(): {
notifications: Notifications;
status: Status;
setNotifications: (updateValue: UpdateValue) => void;
}
Notification
userId
- ID пользователя, к кому относится уведомлениеclientId
- ID клиента, к кому относится уведомлениеmessage
- сообщение уведомления
Status
initial
- начальный статус, запрос ещё не был отправленdone
- запрос прошёл успешноfail
- во время выполнения запроса возникла ошибка
UpdateValue
Позволяет установить новое значение для списка, убрав просмотренные уведомления. Значение будет в виде:
- Либо нового значения списка
- Либо функции, принимающей предыдущее значение и возвращающей новое
Использование
import { GMFYProvider, GMFYNotifications, useGMFYBadges } from 'gmfy-sdk';
const Notifications = () => {
const { notifications, status } = GMFYNotifications();
if (status !== 'done') {
return <Preloader />;
}
return notifications.map((notification) => <YourNotificationComponent {...notification} />);
};
const App = () => (
<GMFYProvider config={config}>
<GMFYNotifications updateInterval={5000}>
<Notifications/>
</GMFYNotifications>
</GMFYProvider>
)