mirror of
https://github.com/makeplane/plane
synced 2025-08-07 19:59:33 +00:00
* chore: user activity icon added * dev: sidebar navigation component added * chore: dashboard constant file updated * chore: unread notification indicator position * chore: app sidebar project section * chore: app sidebar User and Workspace section updated * chore: notification to inbox transition * chore: code refactor * chore: code refactor
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
"use client";
|
|
|
|
import { FC } from "react";
|
|
import { observer } from "mobx-react";
|
|
import useSWR from "swr";
|
|
// components
|
|
import { CountChip } from "@/components/common";
|
|
// helpers
|
|
import { getNumberCount } from "@/helpers/string.helper";
|
|
// hooks
|
|
import { useWorkspaceNotifications } from "@/hooks/store";
|
|
|
|
type TNotificationAppSidebarOption = {
|
|
workspaceSlug: string;
|
|
isSidebarCollapsed: boolean | undefined;
|
|
};
|
|
|
|
export const NotificationAppSidebarOption: FC<TNotificationAppSidebarOption> = observer((props) => {
|
|
const { workspaceSlug, isSidebarCollapsed } = props;
|
|
// hooks
|
|
const { unreadNotificationsCount, getUnreadNotificationsCount } = useWorkspaceNotifications();
|
|
|
|
useSWR(
|
|
workspaceSlug ? "WORKSPACE_UNREAD_NOTIFICATION_COUNT" : null,
|
|
workspaceSlug ? () => getUnreadNotificationsCount(workspaceSlug) : null
|
|
);
|
|
|
|
// derived values
|
|
const isMentionsEnabled = unreadNotificationsCount.mention_unread_notifications_count > 0 ? true : false;
|
|
const totalNotifications = isMentionsEnabled
|
|
? unreadNotificationsCount.mention_unread_notifications_count
|
|
: unreadNotificationsCount.total_unread_notifications_count;
|
|
|
|
if (totalNotifications <= 0) return <></>;
|
|
|
|
if (isSidebarCollapsed)
|
|
return <div className="absolute right-2 top-1.5 h-2 w-2 rounded-full bg-custom-primary-300" />;
|
|
|
|
return (
|
|
<div className="ml-auto">
|
|
<CountChip count={`${isMentionsEnabled ? `@ ` : ``}${getNumberCount(totalNotifications)}`} />
|
|
</div>
|
|
);
|
|
});
|