"use client"; import type { FC } from "react"; import { observer } from "mobx-react"; // plane imports import { ENotificationLoader, ENotificationQueryParamType } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // components import { NotificationItem } from "@/components/workspace-notifications/sidebar/notification-card/item"; // hooks import { useWorkspaceNotifications } from "@/hooks/store/notifications"; type TNotificationCardListRoot = { workspaceSlug: string; workspaceId: string; }; export const NotificationCardListRoot: FC = observer((props) => { const { workspaceSlug, workspaceId } = props; // hooks const { loader, paginationInfo, getNotifications, notificationIdsByWorkspaceId } = useWorkspaceNotifications(); const notificationIds = notificationIdsByWorkspaceId(workspaceId); const { t } = useTranslation(); const getNextNotifications = async () => { try { await getNotifications(workspaceSlug, ENotificationLoader.PAGINATION_LOADER, ENotificationQueryParamType.NEXT); } catch (error) { console.error(error); } }; if (!workspaceSlug || !workspaceId || !notificationIds) return <>; return (
{notificationIds.map((notificationId: string) => ( ))} {/* fetch next page notifications */} {paginationInfo && paginationInfo?.next_page_results && ( <> {loader === ENotificationLoader.PAGINATION_LOADER ? (
{t("loading")}...
) : (
{t("load_more")}
)} )}
); });