import { getThemeStore } from '@src/theme';
import { SettingField, SettingsTab, SettingsValues } from '@src/types';
export interface TextStyle {
backgroundColor: string;
borderColor: string;
}
export interface TextContentStyle {
text: string;
fontSize: number;
isBold: boolean;
isItalic: boolean;
textColor: string;
}
export type TextSettings = SettingsValues & TextStyle & TextContentStyle;
export function createDefaultSettings(): TextSettings {
const { colors } = getThemeStore();
return {
text: 'Текст',
fontSize: 14,
isBold: false,
isItalic: false,
textColor: colors.chartPriceLineText,
backgroundColor: '#00000000',
borderColor: '#00000000',
};
}
export function getTextSettingsTabs(settings: TextSettings): SettingsTab[] {
const styleFields: SettingField[] = [
{
key: 'backgroundColor',
label: 'Цвет фона',
type: 'color',
defaultValue: settings.backgroundColor,
},
{
key: 'borderColor',
label: 'Цвет границы',
type: 'color',
defaultValue: settings.borderColor,
},
];
const textFields: SettingField[] = [
{
key: 'text',
label: 'Текст',
type: 'textarea',
defaultValue: settings.text,
placeholder: 'Введите текст',
},
{
key: 'fontSize',
label: 'Размер шрифта',
type: 'number',
defaultValue: settings.fontSize,
min: 8,
max: 72,
},
{
key: 'isBold',
label: 'Жирный',
type: 'boolean',
defaultValue: settings.isBold,
},
{
key: 'isItalic',
label: 'Курсив',
type: 'boolean',
defaultValue: settings.isItalic,
},
{
key: 'textColor',
label: 'Цвет текста',
type: 'color',
defaultValue: settings.textColor,
},
];
return [
{ key: 'style', label: 'Стиль', fields: styleFields },
{ key: 'text', label: 'Текст', fields: textFields },
];
}