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"