| 'use client' |
| import { memo } from 'react' |
| import { |
| PortalToFollowElem, |
| PortalToFollowElemContent, |
| PortalToFollowElemTrigger, |
| } from '@/app/components/base/portal-to-follow-elem' |
| import SettingContent from '@/app/components/base/features/new-feature-panel/file-upload/setting-content' |
| import type { OnFeaturesChange } from '@/app/components/base/features/types' |
|
|
| type FileUploadSettingsProps = { |
| open: boolean |
| onOpen: (state: any) => void |
| onChange?: OnFeaturesChange |
| disabled?: boolean |
| children?: React.ReactNode |
| imageUpload?: boolean |
| } |
| const FileUploadSettings = ({ |
| open, |
| onOpen, |
| onChange, |
| disabled, |
| children, |
| imageUpload, |
| }: FileUploadSettingsProps) => { |
| return ( |
| <PortalToFollowElem |
| open={open} |
| onOpenChange={onOpen} |
| placement='left' |
| offset={{ |
| mainAxis: 32, |
| }} |
| > |
| <PortalToFollowElemTrigger className='flex' onClick={() => !disabled && onOpen((open: boolean) => !open)}> |
| {children} |
| </PortalToFollowElemTrigger> |
| <PortalToFollowElemContent style={{ zIndex: 50 }}> |
| <div className='w-[360px] p-4 bg-components-panel-bg rounded-2xl border-[0.5px] border-components-panel-border shadow-2xl'> |
| <SettingContent |
| imageUpload={imageUpload} |
| onClose={() => onOpen(false)} |
| onChange={(v) => { |
| onChange?.(v) |
| onOpen(false) |
| }} /> |
| </div> |
| </PortalToFollowElemContent> |
| </PortalToFollowElem> |
| ) |
| } |
| export default memo(FileUploadSettings) |
|
|