Files
eosphoros-ai--db-gpt/web/components/MenuModal/index.tsx
T
wehub-resource-sync d13100ebf3
Update draft releases / main (push) Has been cancelled
Build and push docs image / build-image (push) Has been cancelled
Build Web Application / build-web (macos-latest) (push) Has been cancelled
Build Web Application / build-web (ubuntu-latest) (push) Has been cancelled
Python Code Quality Checks / build (push) Has been cancelled
Test Python / test-python (macos-latest, 3.10) (push) Has been cancelled
Test Python / test-python (macos-latest, 3.11) (push) Has been cancelled
Test Python / test-python (ubuntu-latest, 3.10) (push) Has been cancelled
Test Python / test-python (ubuntu-latest, 3.11) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:27:08 +08:00

42 lines
1.1 KiB
TypeScript

import { Menu, Modal, ModalProps } from 'antd';
import React, { useState } from 'react';
type Props = {
items: Array<{
key: string;
label: string;
onClick?: () => void;
children?: React.ReactNode;
}>;
modal: ModalProps;
};
function MenuModal({ items, modal }: Props) {
const [currentMenuKey, setCurrentMenuKey] = useState('edit');
return (
<Modal {...modal}>
<div className='flex justify-between gap-4'>
<div className='w-1/6'>
<Menu
className='h-full'
selectedKeys={[currentMenuKey]}
mode='inline'
onSelect={info => {
setCurrentMenuKey(info.key);
}}
inlineCollapsed={false}
items={items.map(item => ({ key: item.key, label: item.label }))}
/>
</div>
<div className='w-5/6'>
{items.map(item => {
if (item.key === currentMenuKey) {
return <React.Fragment key={item.key}>{item.children}</React.Fragment>;
}
})}
</div>
</div>
</Modal>
);
}
export default MenuModal;