{#snippet Setting({ title, description, Component, props }: SettingsList) }

{title}

{description}

{/snippet}
{#each [ { title: "Transparency Effects", description: "Enables transparency effects on certain elements such as blur. (May impact battery life)", id: 1, Component: Switch, props: { state: $settingsState.transparencyEffects, onChange: (isOn: boolean) => settingsState.transparencyEffects = isOn } }, { title: "Custom Theme Colour", description: "Customise the overall theme colour of SEQTA Learn.", id: 4, Component: PickerSwatch, props: { onClick: showColourPicker } }, { title: "Edit Sidebar Layout", description: "Customise the sidebar layout.", id: 5, Component: Button, props: { onClick: () => browser.runtime.sendMessage({ type: 'currentTab', info: 'EditSidebar' }), text: "Edit" } }, { title: "Animations", description: "Enables animations on certain pages.", id: 6, Component: Switch, props: { state: $settingsState.animations, onChange: (isOn: boolean) => settingsState.animations = isOn } }, { title: "12 Hour Time", description: "Prefer 12 hour time format for SEQTA", id: 9, Component: Switch, props: { state: $settingsState.timeFormat === "12", onChange: (isOn: boolean) => settingsState.timeFormat = isOn ? "12" : "24" } }, { title: "Default Page", description: "The page to load when SEQTA Learn is opened.", id: 10, Component: Select, props: { state: $settingsState.defaultPage, onChange: (value: string) => settingsState.defaultPage = value, options: [ { value: 'home', label: 'Home' }, { value: 'dashboard', label: 'Dashboard' }, { value: 'timetable', label: 'Timetable' }, { value: 'welcome', label: 'Welcome' }, { value: 'messages', label: 'Messages' }, { value: 'documents', label: 'Documents' }, { value: 'reports', label: 'Reports' }, ] } }, { title: "News Feed Source", description: "Choose sources of your news feed.", id: 11, Component: Select, props: { state: $settingsState.newsSource, onChange: (value: string) => settingsState.newsSource = value, options: [ { value: "australia", label: "Australia" }, { value: "usa", label: "USA" }, { value: "taiwan", label: "Taiwan" }, { value: "hong_kong", label: "Hong Kong" }, { value: "panama", label: "Panama" }, { value: "canada", label: "Canada" }, { value: "singapore", label: "Singapore" }, { value: "uk", label: "UK" }, { value: "japan", label: "Japan" }, { value: "netherlands", label: "Netherlands" } ] } } ] as option} {@render Setting(option)} {/each} {#each pluginSettings as plugin}
{#if (plugin as any).disableToggle}

Enable {plugin.name} {#if plugin.beta} Beta {/if}

{plugin.description}

updatePluginSetting(plugin.pluginId, 'enabled', value)} />
{/if} {#if !((plugin as any).disableToggle) || (pluginSettingsValues[plugin.pluginId]?.enabled ?? true)} {#each Object.entries(plugin.settings) as [key, setting]} {#if key !== 'enabled'}

{setting.title || key}

{setting.description || ''}

{#if setting.type === 'boolean'} updatePluginSetting(plugin.pluginId, key, value)} /> {:else if setting.type === 'number'} updatePluginSetting(plugin.pluginId, key, value)} min={setting.min} max={setting.max} step={setting.step} /> {:else if setting.type === 'string'} updatePluginSetting(plugin.pluginId, key, e.currentTarget.value)} /> {:else if setting.type === 'select'}