24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
import type { CanvasFolderTheme } from "@/types/canvas";
|
|
|
|
export const CANVAS_FOLDER_THEME_OPTIONS: ReadonlyArray<{
|
|
key: CanvasFolderTheme;
|
|
label: string;
|
|
cover: string;
|
|
}> = [
|
|
{ key: "aurora", label: "赤蓝流光", cover: "/images/canvas/folder-default-cover.png" },
|
|
{ key: "obsidian", label: "曜石银蓝", cover: "/images/canvas/folder-theme-obsidian.png" },
|
|
{ key: "ember", label: "熔金赤焰", cover: "/images/canvas/folder-theme-ember.png" },
|
|
{ key: "pearl", label: "珍珠薄雾", cover: "/images/canvas/folder-theme-pearl.png" },
|
|
];
|
|
|
|
export function resolveCanvasFolderTheme(value?: string): CanvasFolderTheme {
|
|
return CANVAS_FOLDER_THEME_OPTIONS.some((theme) => theme.key === value) ? (value as CanvasFolderTheme) : "aurora";
|
|
}
|
|
|
|
export function resolveCanvasFolderThemeCover(theme?: string, customCover?: string) {
|
|
const custom = customCover?.trim();
|
|
if (custom) return custom;
|
|
const resolved = resolveCanvasFolderTheme(theme);
|
|
return CANVAS_FOLDER_THEME_OPTIONS.find((item) => item.key === resolved)!.cover;
|
|
}
|