diff --git a/apps/web/src/common/reminders.js b/apps/web/src/common/reminders.js index 5b5838253..93996dd2b 100644 --- a/apps/web/src/common/reminders.js +++ b/apps/web/src/common/reminders.js @@ -69,7 +69,8 @@ export const Reminders = { }; export async function resetReminders() { - appStore.set((state) => (state.reminders = [])); + const reminders = []; + if (await shouldAddBackupReminder()) { if (isDesktop()) { const { data, filename, ext } = await createBackup(false); @@ -79,16 +80,17 @@ export async function resetReminders() { ); saveFile(`${directory}/${filename}.${ext}`, data); } else { - appStore.addReminder("backup", "high"); + reminders.push({ type: "backup", priority: "high" }); } } if (await shouldAddLoginReminder()) { - appStore.addReminder("login", "low"); + reminders.push({ type: "login", priority: "low" }); } if (await shouldAddConfirmEmailReminder()) { - appStore.addReminder("email", "high"); + reminders.push({ type: "email", priority: "high" }); } if (await shouldAddRecoveryKeyBackupReminder()) { - appStore.addReminder("recoverykey", "high"); + reminders.push({ type: "recoverykey", priority: "high" }); } + appStore.get().setReminders(...reminders); } diff --git a/apps/web/src/components/icons/index.js b/apps/web/src/components/icons/index.js index ad2aad80b..d1ce92f49 100644 --- a/apps/web/src/components/icons/index.js +++ b/apps/web/src/components/icons/index.js @@ -177,3 +177,5 @@ export const MailCheck = createIcon(Icons.mdiEmailCheckOutline); export const Discord = createIcon(Icons.mdiDiscord); export const Twitter = createIcon(Icons.mdiTwitter); export const Reddit = createIcon(Icons.mdiReddit); + +export const Dismiss = createIcon(Icons.mdiClose); diff --git a/apps/web/src/components/list-container/index.js b/apps/web/src/components/list-container/index.js index 3740a1c3f..4af847c5c 100644 --- a/apps/web/src/components/list-container/index.js +++ b/apps/web/src/components/list-container/index.js @@ -66,16 +66,6 @@ function ListContainer(props) { ) : ( ), - Footer: () => ( - - — End reached — - - ), }} itemContent={(index, item) => { if (!item) return null; diff --git a/apps/web/src/components/note/index.js b/apps/web/src/components/note/index.js index b7f3641ab..81244620c 100644 --- a/apps/web/src/components/note/index.js +++ b/apps/web/src/components/note/index.js @@ -80,6 +80,7 @@ function Note(props) { if (!tagItem) return null; return ( { diff --git a/apps/web/src/components/reminder-bar/index.js b/apps/web/src/components/reminder-bar/index.js index 9fa08b26d..b889c0abe 100644 --- a/apps/web/src/components/reminder-bar/index.js +++ b/apps/web/src/components/reminder-bar/index.js @@ -1,11 +1,12 @@ import React, { useMemo } from "react"; -import { Flex, Text } from "rebass"; +import { Button, Flex, Text } from "rebass"; import { useStore as useAppStore } from "../../stores/app-store"; import { Reminders } from "../../common/reminders"; import * as Icon from "../icons"; function ReminderBar() { const reminders = useAppStore((store) => store.reminders); + const dismissReminders = useAppStore((store) => store.dismissReminders); const reminder = useMemo(() => { if (!reminders) return null; @@ -14,21 +15,21 @@ function ReminderBar() { if (!reminder) return; return Reminders[reminder.type]; }, [reminders]); + if (!reminder) return null; return ( - + - + ); } diff --git a/apps/web/src/stores/app-store.js b/apps/web/src/stores/app-store.js index b86924f6d..09fa6006e 100644 --- a/apps/web/src/stores/app-store.js +++ b/apps/web/src/stores/app-store.js @@ -77,13 +77,25 @@ class AppStore extends BaseStore { * @param {string} detail * @param {"high"|"medium"|"low"} priority */ - addReminder = (type, priority) => { - this.set((state) => - state.reminders.push({ - type, - priority: priority === "high" ? 1 : priority === "medium" ? 2 : 1, - }) - ); + setReminders = (...reminders) => { + this.set((state) => { + state.reminders = []; + for (let reminder of reminders) { + const { priority, type } = reminder; + state.reminders.push({ + type, + priority: priority === "high" ? 1 : priority === "medium" ? 2 : 1, + }); + } + }); + }; + + dismissReminders = (...reminders) => { + this.set((state) => { + for (let reminder of reminders) { + state.reminders.splice(state.reminders.indexOf(reminder), 1); + } + }); }; pinItemToMenu = async (item) => { diff --git a/apps/web/yarn.lock b/apps/web/yarn.lock index a96e4c4e8..b4d9a2a81 100644 --- a/apps/web/yarn.lock +++ b/apps/web/yarn.lock @@ -8731,7 +8731,7 @@ normalize-url@^3.0.0: "notes-core@git+https://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:x-oauth-basic@github.com/streetwriters/notesnook-core.git": version "6.8.4" - resolved "git+https://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:x-oauth-basic@github.com/streetwriters/notesnook-core.git#9573ab115600117146f9d53b7fefba0ca89d03d8" + resolved "git+https://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:x-oauth-basic@github.com/streetwriters/notesnook-core.git#18b05fecdcab12278eb4e2e83e20e1f2d2cc97d0" dependencies: "@stablelib/blake2s" "^1.0.1" dayjs "^1.10.6"