import * as React from 'react'; import { CnDialog, CnMenu, CnMenuItem, CnBadge } from '@cainiaofe/cn-ui'; import type { CnActionSheetProps } from '@cainiaofe/cn-ui-m'; import { getDataSource } from './utils'; const propsRender = (props: CnActionSheetProps) => { const { message, options, disabledIndexes, onClick, ...rest } = props; const dataSource = getDataSource(options); const disabledIndexesSet = new Set(disabledIndexes); return { title: message, footer: false, closeMode: ['mask', 'close', 'esc'], ...rest, content: (
{dataSource.map((item, index) => ( onClick(item.originalItem, index, e)} disabled={disabledIndexesSet.has(index)} {...item} > {item.text} {item.badge && ( {item.badge} )} ))}
), }; }; export const CnActionSheet = (props: CnActionSheetProps) => { const dialogProps = propsRender(props); dialogProps.children = dialogProps.content; return ; }; CnActionSheet.show = (props) => { const dialogProps = propsRender(props); dialogProps.children = dialogProps.content; return CnDialog.show(dialogProps); };