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 @@
+
+
+ {{ setting.title }}
+
+
+
+
+
+
+
+
+ Not
+ implemented
+
+
+
+
+
+
+ {{
+ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 => {