mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-15 14:48:17 +08:00
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
'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)
|