From aa320988b0da0dd88fa49f2fa40fa36b5be7da0e Mon Sep 17 00:00:00 2001 From: kwaroran Date: Tue, 13 Feb 2024 13:20:38 +0900 Subject: [PATCH] Add persistent storage feature --- src/lang/en.ts | 6 +++ src/lib/Setting/Pages/FilesSettings.svelte | 1 + src/lib/Setting/Pages/UserSettings.svelte | 19 ++++++- src/ts/storage/persistant.ts | 61 ++++++++++++++++++++++ 4 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 src/ts/storage/persistant.ts diff --git a/src/lang/en.ts b/src/lang/en.ts index 82d81391..fd683c40 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -530,4 +530,10 @@ export const languageEnglish = { enableGlobal: "Enable Globally", chatModulesInfo: "You can enable or disable modules for this chat.", sideMenuRerollButton: "Side Menu Reroll Button", + persistentStorage: "Persistent Storage", + persistentStorageSuccess: "Storage is successfully persisted", + persistentStorageFail: "Storage is not persisted. Did you deny the request?, or is the browser not supported?", + persistentStorageRecommended: "Persistent Storage Recommended", + persistentStorageDesc: "Your browser supports persistent storage. this is recommended for better performance and user experience.", + enable: "Enable", } \ No newline at end of file diff --git a/src/lib/Setting/Pages/FilesSettings.svelte b/src/lib/Setting/Pages/FilesSettings.svelte index a42bd890..03c87106 100644 --- a/src/lib/Setting/Pages/FilesSettings.svelte +++ b/src/lib/Setting/Pages/FilesSettings.svelte @@ -4,6 +4,7 @@ import { checkDriver } from "src/ts/drive/drive"; import { DataBase } from "src/ts/storage/database"; import { isNodeServer, isTauri } from "src/ts/storage/globalApi"; + import { persistantStorageRecommended } from "src/ts/storage/persistant"; diff --git a/src/lib/Setting/Pages/UserSettings.svelte b/src/lib/Setting/Pages/UserSettings.svelte index c237e482..936b3c8b 100644 --- a/src/lib/Setting/Pages/UserSettings.svelte +++ b/src/lib/Setting/Pages/UserSettings.svelte @@ -11,8 +11,9 @@ import { LoadLocalBackup, SaveLocalBackup } from "src/ts/drive/backuplocal"; import Button from "src/lib/UI/GUI/Button.svelte"; import { exportAsDataset } from "src/ts/storage/exportAsDataset"; - import { Capacitor } from "@capacitor/core"; - import { isNative } from "lodash"; + import { Capacitor } from "@capacitor/core"; + import { isNative } from "lodash"; + import { persistantStorageRecommended, requestPersistantStorage } from "src/ts/storage/persistant"; let openIframe = false let openIframeURL = '' let popup:Window = null @@ -40,7 +41,21 @@ } }}> +

{language.account} & {language.files}

+ +{#await persistantStorageRecommended() then a} + {#if a} + + {/if} +{/await} +