From 9363de5fb40cf4f962f3085a8e81714da104bdb0 Mon Sep 17 00:00:00 2001 From: sethburkart123 Date: Fri, 6 Sep 2024 17:29:07 +1000 Subject: [PATCH] feat(settings): add working shortcuts and custom shortcuts --- package.json | 5 +- postcss.config.js | 6 + src/SEQTA.ts | 12 +- .../components/TabbedContainer.svelte | 65 ++++----- src/svelte-interface/index.css | 6 + src/svelte-interface/pages/settings.svelte | 25 ++-- .../pages/settings/general.svelte | 2 +- .../pages/settings/shortcuts.svelte | 127 ++++++++++++++++-- tailwind.config.js | 7 +- 9 files changed, 194 insertions(+), 61 deletions(-) create mode 100644 postcss.config.js diff --git a/package.json b/package.json index 94f2995c..0de7833e 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@uiw/codemirror-extensions-color": "^4.21.25", "@uiw/codemirror-theme-github": "^4.21.25", "@uiw/react-codemirror": "^4.21.25", - "autoprefixer": "^10.4.17", + "autoprefixer": "^10.4.20", "classnames": "^2.5.1", "color": "^4.2.3", "dompurify": "^3.0.8", @@ -80,6 +80,7 @@ "lodash": "^4.17.21", "million": "latest", "motion": "^10.18.0", + "postcss": "^8.4.45", "publish-browser-extension": "^2.2.1", "react": "^18.2.0", "react-best-gradient-color-picker": "3.0.5", @@ -93,7 +94,7 @@ "svelte-hash-router": "^1.0.1", "svelte-motion": "^0.12.2", "swiper": "latest", - "tailwindcss": "^3.4.1", + "tailwindcss": "^3.4.10", "ts-loader": "^9.5.1", "typescript": "^5.5.4", "uuid": "^9.0.1", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..2e7af2b7 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/SEQTA.ts b/src/SEQTA.ts index d147a86c..b8f54cff 100644 --- a/src/SEQTA.ts +++ b/src/SEQTA.ts @@ -48,7 +48,6 @@ var IsSEQTAPage = false const hasSEQTAText = document.childNodes[1].textContent?.includes('Copyright (c) SEQTA Software') init() - async function init() { CheckForMenuList() const hasSEQTATitle = document.title.includes('SEQTA Learn') @@ -66,6 +65,8 @@ async function init() { try { // wait until settingsState has been loaded from storage await initializeSettingsState(); + + console.log(settingsState.onoff) if (settingsState.onoff) { enableCurrentTheme() @@ -979,9 +980,12 @@ export function addExtensionSettings() { extensionPopup.appendChild(extensionIframe) */ // create shadow dom and render svelte app - const shadow = extensionPopup.attachShadow({ mode: 'open' }); - const svelteApp = initSvelteInterface(shadow); - console.log(svelteApp) + try { + const shadow = extensionPopup.attachShadow({ mode: 'open' }); + initSvelteInterface(shadow); + } catch (err) { + console.error(err) + } const container = document.getElementById('container') diff --git a/src/svelte-interface/components/TabbedContainer.svelte b/src/svelte-interface/components/TabbedContainer.svelte index 7b7f1a8d..ca25dc5c 100644 --- a/src/svelte-interface/components/TabbedContainer.svelte +++ b/src/svelte-interface/components/TabbedContainer.svelte @@ -46,37 +46,40 @@ }); -
-
- - {#each tabs as { title }, index} - - {/each} -
-
-
- -
- {#each tabs as { Content }, index} -
- -
+
+
+
+ + {#each tabs as { title }, index} + {/each}
- +
+
+ +
+ {#each tabs as { Content }, index} +
+ +
+ {/each} +
+
+
\ No newline at end of file diff --git a/src/svelte-interface/index.css b/src/svelte-interface/index.css index 51263b33..2dc861ee 100644 --- a/src/svelte-interface/index.css +++ b/src/svelte-interface/index.css @@ -18,4 +18,10 @@ .tab-width { width: var(--tab-width); +} + +input { + &:focus { + box-shadow: unset !important; + } } \ No newline at end of file diff --git a/src/svelte-interface/pages/settings.svelte b/src/svelte-interface/pages/settings.svelte index 71da4a30..ac0ffbf7 100644 --- a/src/svelte-interface/pages/settings.svelte +++ b/src/svelte-interface/pages/settings.svelte @@ -7,6 +7,7 @@ import { createStandalone } from '../utils/standalone.svelte'; import { onMount } from 'svelte' + import { settingsState } from '@/seqta/utils/listeners/SettingsState' const openChangelog = () => { browser.runtime.sendMessage({ type: 'currentTab', info: 'OpenChangelog' }); @@ -21,16 +22,18 @@ }); -
-
- Light logo - - -
+
+
+
+ Light logo + + +
- + +
\ No newline at end of file diff --git a/src/svelte-interface/pages/settings/general.svelte b/src/svelte-interface/pages/settings/general.svelte index 60043869..c4afd9ad 100644 --- a/src/svelte-interface/pages/settings/general.svelte +++ b/src/svelte-interface/pages/settings/general.svelte @@ -22,7 +22,7 @@
{/snippet} -
+
{#each [ { title: "Transparency Effects", diff --git a/src/svelte-interface/pages/settings/shortcuts.svelte b/src/svelte-interface/pages/settings/shortcuts.svelte index 14de4cdb..8bcb9934 100644 --- a/src/svelte-interface/pages/settings/shortcuts.svelte +++ b/src/svelte-interface/pages/settings/shortcuts.svelte @@ -1,25 +1,130 @@ - -{#snippet Shortcuts([string, Shortcut]) } +{#snippet Shortcuts([index, Shortcut]: [string, { name: string, enabled: boolean }]) }
-

{Shortcut.name}

-

{Shortcut.enabled}

+

{Shortcut.name}

+ switchChange(parseInt(index))} />
{/snippet} +
+
+ + {#if isFormVisible} +
+ + + + + + +
+ {/if} +
-
shortcuts tab
+ + + +
-
- {#each Object.entries(settingsState.shortcuts) as shortcut} - - {@render Shortcuts(shortcut)} - {/each} + {#each Object.entries($settingsState.shortcuts) as shortcut} + {@render Shortcuts(shortcut)} + {/each} + + + {#each $settingsState.customshortcuts as shortcut, index} +
+ {shortcut.name} + +
+ {/each}
\ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js index 562f78d1..bcd2bb97 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -5,7 +5,12 @@ const { /** @type {import('tailwindcss').Config} */ export default { content: [ - "./src/**/*.{js,ts,jsx,tsx,html}", + "./src/**/*.{js,ts,jsx,tsx,html,svelte}", + ], + safelist: [ + { + pattern: / */, + } ], darkMode: "class", theme: {