mirror of
https://github.com/ajnart/homarr.git
synced 2026-01-17 04:52:15 +01:00
75 lines
1.8 KiB
TypeScript
75 lines
1.8 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;
|
|
gridstack?: GridstackSettingsType;
|
|
accessibility: AccessibilitySettings;
|
|
}
|
|
|
|
export interface AccessibilitySettings {
|
|
disablePingPulse: boolean;
|
|
replacePingDotsWithIcons: boolean;
|
|
}
|
|
|
|
export interface GridstackSettingsType {
|
|
columnCountSmall: number; // default: 3
|
|
columnCountMedium: number; // default: 6
|
|
columnCountLarge: number; // default: 12
|
|
}
|
|
|
|
interface LayoutCustomizationSettingsType {
|
|
enabledLeftSidebar: boolean;
|
|
enabledRightSidebar: boolean;
|
|
enabledDocker: boolean;
|
|
enabledPing: boolean;
|
|
enabledSearchbar: boolean;
|
|
}
|
|
|
|
interface ColorsCustomizationSettingsType {
|
|
primary?: MantineTheme['primaryColor'];
|
|
secondary?: MantineTheme['primaryColor'];
|
|
shade?: MantineTheme['primaryShade'];
|
|
}
|