Spaces:
Build error
Build error
Workflow-Engine
/
web
/app
/components
/base
/features
/new-feature-panel
/text-to-speech
/voice-settings.tsx
'use client' | |
import { memo } from 'react' | |
import { | |
PortalToFollowElem, | |
PortalToFollowElemContent, | |
PortalToFollowElemTrigger, | |
} from '@/app/components/base/portal-to-follow-elem' | |
import ParamConfigContent from '@/app/components/base/features/new-feature-panel/text-to-speech/param-config-content' | |
import type { OnFeaturesChange } from '@/app/components/base/features/types' | |
type VoiceSettingsProps = { | |
open: boolean | |
onOpen: (state: any) => void | |
onChange?: OnFeaturesChange | |
disabled?: boolean | |
children?: React.ReactNode | |
placementLeft?: boolean | |
} | |
const VoiceSettings = ({ | |
open, | |
onOpen, | |
onChange, | |
disabled, | |
children, | |
placementLeft = true, | |
}: VoiceSettingsProps) => { | |
return ( | |
<PortalToFollowElem | |
open={open} | |
onOpenChange={onOpen} | |
placement={placementLeft ? 'left' : 'top'} | |
offset={{ | |
mainAxis: placementLeft ? 32 : 4, | |
}} | |
> | |
<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'> | |
<ParamConfigContent onClose={() => onOpen(false)} onChange={onChange} /> | |
</div> | |
</PortalToFollowElemContent> | |
</PortalToFollowElem> | |
) | |
} | |
export default memo(VoiceSettings) | |