diff --git a/AquaNet/.gitignore b/AquaNet/.gitignore index 3a9471ba..20ffbea5 100644 --- a/AquaNet/.gitignore +++ b/AquaNet/.gitignore @@ -31,3 +31,5 @@ dist-ssr !.yarn/releases !.yarn/sdks !.yarn/versions + +public/chu3 \ No newline at end of file diff --git a/AquaNet/src/components/settings/ChuniSettings.svelte b/AquaNet/src/components/settings/ChuniSettings.svelte index b57a0c8b..f1e84f3f 100644 --- a/AquaNet/src/components/settings/ChuniSettings.svelte +++ b/AquaNet/src/components/settings/ChuniSettings.svelte @@ -8,7 +8,7 @@ } from "../../libs/generalTypes"; import { DATA, USER, USERBOX } from "../../libs/sdk"; import { t, ts } from "../../libs/i18n"; - import { DATA_HOST, FADE_IN, FADE_OUT, HAS_USERBOX_ASSETS } from "../../libs/config"; + import { DATA_HOST, FADE_IN, FADE_OUT, USERBOX_DEFAULT_URL } from "../../libs/config"; import { fade, slide } from "svelte/transition"; import StatusOverlays from "../StatusOverlays.svelte"; import Icon from "@iconify/svelte"; @@ -97,9 +97,11 @@ let USERBOX_PROGRESS = 0; let USERBOX_SETUP_RUN = false; + let USERBOX_SETUP_MODE = false; let USERBOX_SETUP_TEXT = t("userbox.new.setup"); let USERBOX_ENABLED = useLocalStorage("userboxNew", false); + let USERBOX_PROFILE_ENABLED = useLocalStorage("userboxNewProfile", false); let USERBOX_INSTALLED = false; let USERBOX_SUPPORT = "webkitGetAsEntry" in DataTransferItem.prototype; @@ -117,12 +119,37 @@ }) ?? ""; } + let USERBOX_URL_STATE = useLocalStorage("userboxURL", USERBOX_DEFAULT_URL); + function userboxHandleInput(baseURL: string, isSetByServer: boolean = false) { + if (baseURL != "") + try { + // validate url + new URL(baseURL, location.href); + } catch(err) { + if (isSetByServer) + return; + return error = t("userbox.new.error.invalidUrl") + } + USERBOX_URL_STATE.value = baseURL; + USERBOX_ENABLED.value = true; + USERBOX_PROFILE_ENABLED.value = true; + location.reload(); + } + + if (USERBOX_DEFAULT_URL && !USERBOX_URL_STATE.value) + userboxHandleInput(USERBOX_DEFAULT_URL, true); + indexedDB.databases().then(async (dbi) => { let databaseExists = dbi.some(db => db.name == "userboxChusanDDS"); + if (USERBOX_URL_STATE.value && databaseExists) { + indexedDB.deleteDatabase("userboxChusanDDS") + } if (databaseExists) { await initializeDb(); + } + if (databaseExists || USERBOX_URL_STATE.value) { DDSreader = new DDS(ddsDB); - USERBOX_INSTALLED = databaseExists; + USERBOX_INSTALLED = databaseExists || USERBOX_URL_STATE.value != ""; } }) @@ -156,9 +183,9 @@ {:else}
- -
- {/if} - {#if !USERBOX_SUPPORT || !USERBOX_INSTALLED || !USERBOX_ENABLED.value} -{t("userbox.preview.notice")}
- - {#if preview} -+ +
{/if} -