import type { FC } from 'react'; import React, { useState } from 'react'; import { LoadingSpinner } from '@growi/ui/dist/components'; import { useTranslation } from 'next-i18next'; import { apiv3Put } from '~/client/util/apiv3-client'; import { InAppNotificationStatuses } from '~/interfaces/in-app-notification'; import { useShowPageLimitationXL } from '~/stores-universal/context'; import { useSWRxInAppNotifications, useSWRxInAppNotificationStatus } from '~/stores/in-app-notification'; import CustomNavAndContents from '../CustomNavigation/CustomNavAndContents'; import PaginationWrapper from '../PaginationWrapper'; import InAppNotificationList from './InAppNotificationList'; export const InAppNotificationPage: FC = () => { const { t } = useTranslation('commons'); const { data: showPageLimitationXL } = useShowPageLimitationXL(); const limit = showPageLimitationXL != null ? showPageLimitationXL : 20; const InAppNotificationCategoryByStatus = (status?: InAppNotificationStatuses) => { const [activePage, setActivePage] = useState(1); const offset = (activePage - 1) * limit; let categoryStatus; switch (status) { case InAppNotificationStatuses.STATUS_UNOPENED: categoryStatus = InAppNotificationStatuses.STATUS_UNOPENED; break; default: } const { data: notificationData, mutate: mutateNotificationData } = useSWRxInAppNotifications(limit, offset, categoryStatus); const { mutate: mutateAllNotificationData } = useSWRxInAppNotifications(limit, offset, undefined); const { mutate: mutateNotificationCount } = useSWRxInAppNotificationStatus(); const setAllNotificationPageNumber = (selectedPageNumber): void => { setActivePage(selectedPageNumber); }; if (notificationData == null) { return (