Add new config format

This commit is contained in:
Meierschlumpf
2022-12-04 17:36:30 +01:00
parent b2f5149527
commit d5a3b3f3ba
76 changed files with 2461 additions and 1034 deletions

61
src/types/settings.ts Normal file
View File

@@ -0,0 +1,61 @@
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'];
}