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;