import React from 'react';
import { List, Tooltip, Select, Switch } from 'antd';
import type { ProSettings } from '../../defaultSettings';
import defaultSettings from '../../defaultSettings';
import type { SettingItemProps } from './index';
import { getFormatMessage } from './index';
export const renderLayoutSettingItem = (item: SettingItemProps) => {
const action = React.cloneElement(item.action, {
disabled: item.disabled,
});
return (
{item.title}
);
};
const LayoutSetting: React.FC<{
settings: Partial;
changeSetting: (key: string, value: any, hideLoading?: boolean) => void;
}> = ({ settings = {}, changeSetting }) => {
const formatMessage = getFormatMessage();
const { contentWidth, splitMenus, fixedHeader, layout, fixSiderbar } =
settings || defaultSettings;
return (
value={contentWidth || 'Fixed'}
size="small"
className="content-width"
onSelect={(value) => {
changeSetting('contentWidth', value);
}}
style={{ width: 80 }}
>
{layout === 'side' ? null : (
{formatMessage({
id: 'app.setting.content-width.fixed',
defaultMessage: 'Fixed',
})}
)}
{formatMessage({
id: 'app.setting.content-width.fluid',
defaultMessage: 'Fluid',
})}
),
},
{
title: formatMessage({
id: 'app.setting.fixedheader',
defaultMessage: 'Fixed Header',
}),
action: (
{
changeSetting('fixedHeader', checked);
}}
/>
),
},
{
title: formatMessage({
id: 'app.setting.fixedsidebar',
defaultMessage: 'Fixed Sidebar',
}),
disabled: layout === 'top',
disabledReason: formatMessage({
id: 'app.setting.fixedsidebar.hint',
defaultMessage: 'Works on Side Menu Layout',
}),
action: (
changeSetting('fixSiderbar', checked)}
/>
),
},
{
title: formatMessage({ id: 'app.setting.splitMenus' }),
disabled: layout !== 'mix',
action: (
{
changeSetting('splitMenus', checked);
}}
/>
),
},
]}
renderItem={renderLayoutSettingItem}
/>
);
};
export default LayoutSetting;