diff --git a/components/settings/renderer.vue b/components/settings/renderer.vue index eff16e0..1283357 100644 --- a/components/settings/renderer.vue +++ b/components/settings/renderer.vue @@ -4,6 +4,7 @@ + @@ -13,6 +14,7 @@ import { type SettingIds, SettingType } from "~/settings"; import SettingBoolean from "./types/Boolean.vue"; import SettingCode from "./types/Code.vue"; +import SettingEnum from "./types/Enum.vue"; import SettingOther from "./types/Other.vue"; const props = defineProps<{ diff --git a/components/settings/types/Enum.vue b/components/settings/types/Enum.vue new file mode 100644 index 0000000..38be709 --- /dev/null +++ b/components/settings/types/Enum.vue @@ -0,0 +1,63 @@ + + + \ No newline at end of file diff --git a/settings.ts b/settings.ts index b10102f..c860df3 100644 --- a/settings.ts +++ b/settings.ts @@ -29,7 +29,11 @@ export type BooleanSetting = Setting & { export type EnumSetting = Setting & { type: SettingType.Enum; value: string; - options: string[]; + options: { + value: string; + label: string; + icon?: string; + }[]; }; export type FloatSetting = Setting & { @@ -73,6 +77,7 @@ export enum SettingIds { ConfirmFollow = "confirm-follow", ConfirmReblog = "confirm-reblog", ConfirmFavourite = "confirm-favourite", + EmojiTheme = "emoji-theme", } export const settings: Record = { @@ -97,8 +102,22 @@ export const settings: Record = { description: "UI theme", type: SettingType.Enum, value: "dark", - options: ["light", "dark"], + options: [ + { + value: "dark", + label: "Dark", + }, + { + value: "light", + label: "Light", + }, + { + value: "system", + label: "System", + }, + ], page: SettingPages.Appearance, + notImplemented: true, } as EnumSetting, [SettingIds.CustomEmojis]: { title: "Render Custom Emojis", @@ -161,6 +180,28 @@ export const settings: Record = { page: SettingPages.Behaviour, notImplemented: true, } as BooleanSetting, + [SettingIds.EmojiTheme]: { + title: "Emoji Theme", + description: "Theme used for rendering emojis", + type: SettingType.Enum, + value: "native", + options: [ + { + value: "native", + label: "Operating System", + }, + { + value: "twemoji", + label: "Twitter emoji set", + }, + { + value: "noto", + label: "Noto Emoji", + }, + ], + page: SettingPages.Appearance, + notImplemented: true, + } as EnumSetting, }; export const getSettingsForPage = (page: SettingPages): Partial => {