import { List, Tooltip, Select, Switch } from 'ant-design-vue' import { defaultSettings } from '../../defaultSettings' import { getFormatMessage } from './index' import type { ProSettings } from '../../defaultSettings' import type { SettingItemProps } from './index' import type { FunctionalComponent } from 'vue' export const renderLayoutSettingItem = ({ item }: { item: SettingItemProps; index: number }) => { const action = item.action // const action = React.cloneElement(item.action, { // disabled: item.disabled // }) return ( {item.title} ) } const LayoutSetting: FunctionalComponent<{ settings: Partial changeSetting: (key: string, value: any, hideLoading?: boolean) => void }> = props => { const formatMessage = getFormatMessage() const { contentWidth, splitMenus, fixedHeader, layout, fixSiderbar } = props.settings || defaultSettings return ( { props.changeSetting('contentWidth', value) }} style={{ width: '80px' }} > {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: ( { props.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: ( props.changeSetting('fixSiderbar', checked)} /> ) }, { title: formatMessage({ id: 'app.setting.splitMenus' }), disabled: layout !== 'mix', action: ( { props.changeSetting('splitMenus', checked) }} /> ) } ]} renderItem={renderLayoutSettingItem} /> ) } export default LayoutSetting