Skip to content

Commit c088565

Browse files
Merge pull request #107 from bhagatsaurabh/feature/prototyping
bugfixes
2 parents 0c89343 + 1aecd68 commit c088565

3 files changed

Lines changed: 14 additions & 3 deletions

File tree

src/store/notifications.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import {
1414
storePersistentNotification,
1515
} from "@/utils/driver";
1616
import { auth } from "@/config/firebase";
17-
import { persistentNtfnsTypes } from "@/utils/constants";
1817
import { getDetails } from "@/services/user";
18+
import { isNotificationPersistent } from "@/utils";
1919

2020
type NotificationsState = {
2121
pending: UserNotificationPayload[];
@@ -156,7 +156,7 @@ export const notify = createAsyncThunk<void, InternalNotificationPayload | UserN
156156
const process = createAsyncThunk<UserNotificationPayload, UserNotificationPayload>(
157157
"notifications/process",
158158
async (notification) => {
159-
if (persistentNtfnsTypes.includes(notification.type)) {
159+
if (isNotificationPersistent(notification)) {
160160
notification.isPersistent = true;
161161
}
162162
if (notification.type === "workspace-invite") {

src/utils/constants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,6 @@ export const errorMap: Record<string, UserError> = {
6262
},
6363
};
6464

65-
export const persistentNtfnsTypes: NotificationType[] = ["workspace-invite", "workspace-access-code"];
65+
export const persistentNtfnTypes: NotificationType[] = ["workspace-invite", "workspace-access-code"];
6666

6767
export const fsIgnoreList = ["lost+found"];

src/utils/index.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { Location } from "react-router";
33
import iconMapping from "@/assets/icon-map.json";
44
import { FNode } from "@/models/filesystem";
55
import { Area } from "react-easy-crop";
6+
import { NotificationType, UserNotificationPayload, WorkspaceAccessRequest } from "@/models/notification";
7+
import { persistentNtfnTypes } from "./constants";
68

79
type IconMap = {
810
fileNames: Record<string, string>;
@@ -267,3 +269,12 @@ export const getCroppedImg = async (
267269
}, "image/png");
268270
});
269271
};
272+
273+
export const persistentNtfnTypesChecks: Partial<
274+
Record<NotificationType, (ntfn: UserNotificationPayload) => boolean>
275+
> = {
276+
"workspace-access-code": (ntfn: UserNotificationPayload) => (ntfn as WorkspaceAccessRequest).success,
277+
};
278+
export const isNotificationPersistent = (ntfn: UserNotificationPayload) => {
279+
return persistentNtfnTypes.includes(ntfn.type) && (persistentNtfnTypesChecks[ntfn.type]?.(ntfn) ?? true);
280+
};

0 commit comments

Comments
 (0)