From a140bf02e0a300e6482a11e47899bc181eabc0cc Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Fri, 4 Oct 2024 12:21:38 +1000 Subject: [PATCH] feat(ThemeCreator): add image uploading --- src/svelte-interface/components/Switch.svelte | 2 +- .../pages/themeCreator.svelte | 88 ++++++++++--------- 2 files changed, 49 insertions(+), 41 deletions(-) diff --git a/src/svelte-interface/components/Switch.svelte b/src/svelte-interface/components/Switch.svelte index b7d959d7..6345d011 100644 --- a/src/svelte-interface/components/Switch.svelte +++ b/src/svelte-interface/components/Switch.svelte @@ -29,7 +29,7 @@
onChange(!state)} onkeydown={(e) => e.key === "Enter" && onChange(!state)} diff --git a/src/svelte-interface/pages/themeCreator.svelte b/src/svelte-interface/pages/themeCreator.svelte index 7ac4b59f..dff4ce44 100644 --- a/src/svelte-interface/pages/themeCreator.svelte +++ b/src/svelte-interface/pages/themeCreator.svelte @@ -64,7 +64,7 @@ }) - type SettingType = 'switch' | 'button' | 'slider' | 'colourPicker' | 'select' | 'codeEditor'; + type SettingType = 'switch' | 'button' | 'slider' | 'colourPicker' | 'select' | 'codeEditor' | 'imageUpload'; type SwitchProps = { state: boolean; onChange: (value: boolean) => void }; type ButtonProps = { onClick: () => void; text: string }; @@ -100,6 +100,30 @@ {:else if item.type === 'codeEditor'} + {:else if item.type === 'imageUpload'} + {#each theme.CustomImages as image (image.id)} +
+
+ {image.variableName} +
+ onImageVariableChange(image.id, e.currentTarget.value)} + placeholder="CSS Variable Name" + class="flex-grow flex-[3] w-full p-2 transition-all duration-300 rounded-lg focus:outline-none ring-0 focus:ring-1 ring-zinc-100 dark:ring-zinc-700 dark:bg-zinc-800/50 dark:text-white" + /> + +
+ {/each} + +
+ {'\uec60'} + Add image + +
{/if}
{/snippet} @@ -137,6 +161,23 @@ +
+
+ {'\uec60'} +
+ {theme.coverImage ? 'Change' : 'Add'} cover image + + {#if !theme.hideThemeName && theme.coverImage} +
{theme.name}
+ {/if} + {#if theme.coverImage} +
+ Cover + {/if} +
+ + + {#each [ { type: 'switch', @@ -166,6 +207,12 @@ customOnChange: (color: string) => theme = { ...theme, defaultColour: color } } }, + { + type: 'imageUpload', + title: 'Custom Images', + description: 'Add custom images to your theme', + direction: 'vertical', + }, { type: 'codeEditor', title: 'Custom CSS', @@ -179,44 +226,5 @@ ] as SettingItem[] as setting} {@render settingItem(setting)} {/each} - -
-
- {'\ueb44'} -
- {theme.coverImage ? 'Change' : 'Add'} cover image - - {#if !theme.hideThemeName && theme.coverImage} -
{theme.name}
- {/if} - {#if theme.coverImage} -
- Cover - {/if} -
- - {#each theme.CustomImages as image (image.id)} -
-
- {image.variableName} -
- onImageVariableChange(image.id, e.currentTarget.value)} - placeholder="CSS Variable Name" - class="flex-grow flex-[3] w-full p-2 transition-all duration-300 rounded-lg focus:outline-none ring-0 focus:ring-1 ring-zinc-100 dark:ring-zinc-700 dark:bg-zinc-800/50 dark:text-white" - /> - -
- {/each} - -
- - Add image - -