owncast/web/interfaces/client-config.model.ts
Gabe Kangas 813f8692f0
Support color customization from the admin (#2338)
* Add user-customizable theming. Closes #1915

* Prettified Code!

* Add user-customizable theming. Closes #1915

* Add explicit color for page content background

* Prettified Code!

Co-authored-by: gabek <gabek@users.noreply.github.com>
2022-11-12 20:26:55 -08:00

80 lines
1.5 KiB
TypeScript

export interface ClientConfig {
name: string;
title?: string;
summary: string;
offlineMessage?: string;
logo: string;
tags: string[];
version: string;
nsfw: boolean;
extraPageContent: string;
socialHandles: SocialHandle[];
chatDisabled: boolean;
externalActions: any[];
customStyles: string;
appearanceVariables: Map<string, string>;
maxSocketPayloadSize: number;
federation: Federation;
notifications: Notifications;
authentication: Authentication;
socketHostOverride?: string;
}
interface Authentication {
indieAuthEnabled: boolean;
}
interface Federation {
enabled: boolean;
account: string;
followerCount: number;
}
interface Notifications {
browser: Browser;
}
interface Browser {
enabled: boolean;
publicKey: string;
}
interface SocialHandle {
platform: string;
url: string;
icon: string;
}
export function makeEmptyClientConfig(): ClientConfig {
return {
name: '',
summary: '',
offlineMessage: '',
logo: '',
tags: [],
version: '',
nsfw: false,
extraPageContent: '',
socialHandles: [],
chatDisabled: false,
externalActions: [],
customStyles: '',
appearanceVariables: new Map(),
maxSocketPayloadSize: 0,
federation: {
enabled: false,
account: '',
followerCount: 0,
},
notifications: {
browser: {
enabled: false,
publicKey: '',
},
},
authentication: {
indieAuthEnabled: false,
},
};
}