From 607adcf7379e0e44bad6547830814664bc6499a0 Mon Sep 17 00:00:00 2001 From: rift <117926989+Riftriot@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:00:45 -0500 Subject: [PATCH] the hell of finishing the inventory system --- public/classic_theme.png | Bin 0 -> 17869 bytes src/components/catalog/InstalledThemes.svelte | 144 ++++++++++++++++++ src/pages/[lang]/settings/appearance.astro | 30 ++-- 3 files changed, 156 insertions(+), 18 deletions(-) create mode 100644 public/classic_theme.png create mode 100644 src/components/catalog/InstalledThemes.svelte diff --git a/public/classic_theme.png b/public/classic_theme.png new file mode 100644 index 0000000000000000000000000000000000000000..a52677d9f69213b2fb4e99ca16a48fb3e3583593 GIT binary patch literal 17869 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 F{|3+*r + let assetPromise = get_all_assets(); + async function logItem(item) { + // hell + try { + const response = await fetch(`/api/packages/${item}`); + const data = await response.json(); + + return { + ...data, + package_name: item, + }; + } catch (error) { + console.error("error: failed to fetch", error); + return null; + } + } + + async function get_all_assets() { + let items = JSON.parse(localStorage.getItem("installed_themes")) || []; + const promises = items.map(logItem); + const dataArray = await Promise.all(promises); + + const accumulatedData = dataArray.filter((data) => data !== null); + console.log(JSON.stringify(accumulatedData)); + return accumulatedData; + } + + function install(assets_json, package_name) { + if (assets_json.background_video) { + localStorage.setItem("background_video", assets_json.background_video); + } else { + localStorage.removeItem("video"); + } + if (assets_json.background_image) { + localStorage.setItem("background_image", assets_json.background_image); + } else { + localStorage.removeItem("background_image"); + } + if (assets_json.type == "theme") { + localStorage.setItem("stylesheet", "/styles/" + assets_json.payload); + } + location.reload(); + } + + function reset_theme() { + localStorage.removeItem("background_video"); + localStorage.removeItem("background_image"); + localStorage.removeItem("stylesheet"); + location.reload(); + } + + function delete_theme(key) { + let items = JSON.parse(localStorage.getItem("installed_themes")) || []; + + const index = items.indexOf(key); + + items.splice(index, 1); + + localStorage.setItem("installed_themes", JSON.stringify(items)); + + reset_theme(); + } + + +{#await assetPromise} + Loading assets... +{:then assets} + + + {#each Object.entries(assets) as [key, asset]} + + +
+
install(asset, key)}> + Theme +
+
+
{asset.title}
+
+
delete_theme(key)} + > + + + +
+ + + + + +
+
+
+ {/each} + + +
reset_theme()} + > +
+ Theme +
+
+ Classic Nebula +
+
+{:catch someError} + System error: {someError.message}. +{/await} diff --git a/src/pages/[lang]/settings/appearance.astro b/src/pages/[lang]/settings/appearance.astro index 23e12b4..0452645 100644 --- a/src/pages/[lang]/settings/appearance.astro +++ b/src/pages/[lang]/settings/appearance.astro @@ -7,6 +7,7 @@ import ThemeCard from "../../../components/settings/ThemeCard.astro"; import { Icon } from "astro-icon/components"; import fortnite from "../../../assets/fortnite.jpg"; import ClassicNebula from "../../../assets/classic_theme.png"; +import InstalledThemes from "../../../components/catalog/InstalledThemes.svelte"; const lang = getLangFromUrl(Astro.url); const t = useTranslations(lang); export function getStaticPaths() { @@ -25,27 +26,20 @@ export const prerender = true; title="Theme" subtitle="Choose a theme so your eyes don't hate us." > -
-
- -
-
-
- -
-
- Get more themes in the Nebula Catalog! +
+
+ +
+
+ +
+
+ Get more themes in the Nebula Catalog! +
+
-