Files
simple-qr/utils/settings.ts
2024-10-10 19:30:46 +02:00

62 lines
1.0 KiB
TypeScript

import { z } from "zod";
// TODO: might be better to load these dynamically lol
export const LOGOS = [
"bereal",
"bitcoinsv",
"buymeacoffee",
"diaspora",
"discord",
"dropbox",
"ello",
"facebook",
"flickr",
"github",
"googlemaps",
"googlemeet",
"googlemessages",
"imessage",
"instagram",
"kik",
"line",
"linkedin",
"litecoin",
"mastodon",
"medium",
"messenger",
"monero",
"onlyfans",
"patreon",
"paypal",
"peertube",
"pinterest",
"reddit",
"session",
"signal",
"snapchat",
"spotify",
"substack",
"telegram",
"threema",
"twitch",
"venmo",
"viber",
"wechat",
"whatsapp",
"x",
"youtube",
"zoom",
] as const;
export const IMAGE_FORMATS = ["png", "jpeg", "webp"] as const;
export type ImageFormat = (typeof IMAGE_FORMATS)[number];
export const settingsSchema = z.object({
format: z.enum(IMAGE_FORMATS).default("png"),
logo: z.enum(LOGOS),
content: z.string().min(1, "Required"),
});
export type Settings = z.infer<typeof settingsSchema>;