Перейти к основному содержанию

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>
)