Files
Homarr/src/types/settings.ts
2022-12-04 17:37:28 +01:00

62 lines
1.5 KiB
TypeScript

import { MantineTheme } from '@mantine/core';
export interface SettingsType {
common: CommonSettingsType;
customization: CustomizationSettingsType;
}
export interface CommonSettingsType {
searchEngine: SearchEngineCommonSettingsType;
defaultConfig: string;
}
export type SearchEngineCommonSettingsType =
| CommonSearchEngineCommonSettingsType
| CustomSearchEngineCommonSettingsType;
export interface CommonSearchEngineCommonSettingsType extends BaseSearchEngineType {
type: 'google' | 'duckDuckGo' | 'bing';
}
interface CustomSearchEngineCommonSettingsType extends BaseSearchEngineType {
type: 'custom';
properties: {
template: string;
openInNewTab: boolean;
enabled: boolean;
};
}
interface BaseSearchEngineType {
properties: {
openInNewTab: boolean;
enabled: boolean;
};
}
export interface CustomizationSettingsType {
layout: LayoutCustomizationSettingsType;
pageTitle?: string;
metaTitle?: string;
logoImageUrl?: string;
faviconUrl?: string;
backgroundImageUrl?: string;
customCss?: string;
colors: ColorsCustomizationSettingsType;
appOpacity?: number;
}
interface LayoutCustomizationSettingsType {
enabledLeftSidebar: boolean;
enabledRightSidebar: boolean;
enabledDocker: boolean;
enabledPing: boolean;
enabledSearchbar: boolean;
}
interface ColorsCustomizationSettingsType {
primary?: MantineTheme['primaryColor'];
secondary?: MantineTheme['primaryColor'];
shade?: MantineTheme['primaryShade'];
}