diff --git a/icons/mgc/time_cute_re copy.svg b/icons/mgc/time_cute_re copy.svg new file mode 100644 index 000000000..fcab9f21e --- /dev/null +++ b/icons/mgc/time_cute_re copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/renderer/src/components/ui/markdown/components/TimeStamp.tsx b/src/renderer/src/components/ui/markdown/components/TimeStamp.tsx index 46279de79..cfa1818ee 100644 --- a/src/renderer/src/components/ui/markdown/components/TimeStamp.tsx +++ b/src/renderer/src/components/ui/markdown/components/TimeStamp.tsx @@ -21,6 +21,7 @@ export const TimeStamp = (props: { time: string }) => { nextFrame(() => AudioPlayer.seek(timeStringToSeconds(props.time) || 0)) }} > + {props.time} ) diff --git a/src/renderer/src/modules/settings/control.tsx b/src/renderer/src/modules/settings/control.tsx index 2242ac62c..d1c0bb2ef 100644 --- a/src/renderer/src/modules/settings/control.tsx +++ b/src/renderer/src/modules/settings/control.tsx @@ -153,7 +153,7 @@ export const SettingActionItem = ({ className={cn("relative mb-3 mt-4 flex items-center justify-between gap-4")} >
{label}
- diff --git a/src/renderer/src/modules/settings/tabs/general.tsx b/src/renderer/src/modules/settings/tabs/general.tsx index 8ed5414bc..e919f2b06 100644 --- a/src/renderer/src/modules/settings/tabs/general.tsx +++ b/src/renderer/src/modules/settings/tabs/general.tsx @@ -8,6 +8,8 @@ import { setUISetting, useUISettingSelector, } from "@renderer/atoms/settings/ui" +import { Button } from "@renderer/components/ui/button" +import { useModalStack } from "@renderer/components/ui/modal" import { Select, SelectContent, @@ -40,6 +42,7 @@ export const SettingGeneral = () => { setGeneralSetting("appLaunchOnStartup", checked) }, []) + const { present } = useModalStack() return ( <> @@ -128,8 +131,31 @@ export const SettingGeneral = () => { { label: "Rebuild Database", action: async () => { - await clearLocalPersistStoreData() - window.location.reload() + present({ + title: "Rebuild Database", + clickOutsideToDismiss: true, + content: () => ( +
+

+ Rebuilding the database will clear all your local data. +

+

Are you sure you want to continue?

+ +
+ +
+
+ ), + }) }, description: "If you are experiencing rendering issues, rebuilding the database may solve them.", diff --git a/src/renderer/src/store/image/db.ts b/src/renderer/src/store/image/db.ts index 757451ded..5791c8d80 100644 --- a/src/renderer/src/store/image/db.ts +++ b/src/renderer/src/store/image/db.ts @@ -27,3 +27,8 @@ export const saveImageDimensionsToDb = async ( url: string, dimensions: StoreImageType, ) => await set(url, dimensions, db) + +export const clearImageDimensionsDb = async () => { + const store = await db("readwrite", (store) => store.clear()) + return store +} diff --git a/src/renderer/src/store/utils/clear.ts b/src/renderer/src/store/utils/clear.ts index 3525d2167..7c6b049b4 100644 --- a/src/renderer/src/store/utils/clear.ts +++ b/src/renderer/src/store/utils/clear.ts @@ -3,6 +3,7 @@ import { browserDB } from "@renderer/database" import { entryActions } from "../entry" import { feedActions } from "../feed" +import { clearImageDimensionsDb } from "../image/db" import { subscriptionActions } from "../subscription" import { feedUnreadActions } from "../unread" @@ -16,5 +17,6 @@ export const clearLocalPersistStoreData = async () => { clearUISettings() + await clearImageDimensionsDb() await browserDB.delete().catch(() => null) }