142 lines
3.7 KiB
TypeScript
142 lines
3.7 KiB
TypeScript
/**
|
|
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
* See the LICENSE file for details.
|
|
*/
|
|
|
|
import type { TUnreadNotificationsCount } from "@plane/types";
|
|
|
|
export enum ENotificationTab {
|
|
ALL = "all",
|
|
MENTIONS = "mentions",
|
|
}
|
|
|
|
export enum ENotificationFilterType {
|
|
CREATED = "created",
|
|
ASSIGNED = "assigned",
|
|
SUBSCRIBED = "subscribed",
|
|
}
|
|
|
|
export enum ENotificationLoader {
|
|
INIT_LOADER = "init-loader",
|
|
MUTATION_LOADER = "mutation-loader",
|
|
PAGINATION_LOADER = "pagination-loader",
|
|
REFRESH = "refresh",
|
|
MARK_ALL_AS_READY = "mark-all-as-read",
|
|
}
|
|
|
|
export enum ENotificationQueryParamType {
|
|
INIT = "init",
|
|
CURRENT = "current",
|
|
NEXT = "next",
|
|
}
|
|
|
|
export type TNotificationTab = ENotificationTab.ALL | ENotificationTab.MENTIONS;
|
|
|
|
export const NOTIFICATION_TABS = [
|
|
{
|
|
i18n_label: "notification.tabs.all",
|
|
value: ENotificationTab.ALL,
|
|
count: (unReadNotification: TUnreadNotificationsCount) => unReadNotification?.total_unread_notifications_count || 0,
|
|
},
|
|
{
|
|
i18n_label: "notification.tabs.mentions",
|
|
value: ENotificationTab.MENTIONS,
|
|
count: (unReadNotification: TUnreadNotificationsCount) =>
|
|
unReadNotification?.mention_unread_notifications_count || 0,
|
|
},
|
|
];
|
|
|
|
export const FILTER_TYPE_OPTIONS = [
|
|
{
|
|
i18n_label: "notification.filter.assigned",
|
|
value: ENotificationFilterType.ASSIGNED,
|
|
},
|
|
{
|
|
i18n_label: "notification.filter.created",
|
|
value: ENotificationFilterType.CREATED,
|
|
},
|
|
{
|
|
i18n_label: "notification.filter.subscribed",
|
|
value: ENotificationFilterType.SUBSCRIBED,
|
|
},
|
|
];
|
|
|
|
export const NOTIFICATION_SNOOZE_OPTIONS = [
|
|
{
|
|
key: "1_day",
|
|
i18n_label: "notification.snooze.1_day",
|
|
value: () => {
|
|
const date = new Date();
|
|
return new Date(date.getTime() + 24 * 60 * 60 * 1000);
|
|
},
|
|
},
|
|
{
|
|
key: "3_days",
|
|
i18n_label: "notification.snooze.3_days",
|
|
value: () => {
|
|
const date = new Date();
|
|
return new Date(date.getTime() + 3 * 24 * 60 * 60 * 1000);
|
|
},
|
|
},
|
|
{
|
|
key: "5_days",
|
|
i18n_label: "notification.snooze.5_days",
|
|
value: () => {
|
|
const date = new Date();
|
|
return new Date(date.getTime() + 5 * 24 * 60 * 60 * 1000);
|
|
},
|
|
},
|
|
{
|
|
key: "1_week",
|
|
i18n_label: "notification.snooze.1_week",
|
|
value: () => {
|
|
const date = new Date();
|
|
return new Date(date.getTime() + 7 * 24 * 60 * 60 * 1000);
|
|
},
|
|
},
|
|
{
|
|
key: "2_weeks",
|
|
i18n_label: "notification.snooze.2_weeks",
|
|
value: () => {
|
|
const date = new Date();
|
|
return new Date(date.getTime() + 14 * 24 * 60 * 60 * 1000);
|
|
},
|
|
},
|
|
{
|
|
key: "custom",
|
|
i18n_label: "notification.snooze.custom",
|
|
value: undefined,
|
|
},
|
|
];
|
|
|
|
// Constant for all time values in 30 minutes interval in 12 hours format
|
|
export const allTimeIn30MinutesInterval12HoursFormat: Array<{
|
|
label: string;
|
|
value: string;
|
|
}> = [
|
|
{ label: "12:00", value: "12:00" },
|
|
{ label: "12:30", value: "12:30" },
|
|
{ label: "01:00", value: "01:00" },
|
|
{ label: "01:30", value: "01:30" },
|
|
{ label: "02:00", value: "02:00" },
|
|
{ label: "02:30", value: "02:30" },
|
|
{ label: "03:00", value: "03:00" },
|
|
{ label: "03:30", value: "03:30" },
|
|
{ label: "04:00", value: "04:00" },
|
|
{ label: "04:30", value: "04:30" },
|
|
{ label: "05:00", value: "05:00" },
|
|
{ label: "05:30", value: "05:30" },
|
|
{ label: "06:00", value: "06:00" },
|
|
{ label: "06:30", value: "06:30" },
|
|
{ label: "07:00", value: "07:00" },
|
|
{ label: "07:30", value: "07:30" },
|
|
{ label: "08:00", value: "08:00" },
|
|
{ label: "08:30", value: "08:30" },
|
|
{ label: "09:00", value: "09:00" },
|
|
{ label: "09:30", value: "09:30" },
|
|
{ label: "10:00", value: "10:00" },
|
|
{ label: "10:30", value: "10:30" },
|
|
{ label: "11:00", value: "11:00" },
|
|
{ label: "11:30", value: "11:30" },
|
|
];
|