12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 'use client'
- import React from 'react'
- import { useTranslation } from 'react-i18next'
- import { RiAddLine } from '@remixicon/react'
- import Button from '@/app/components/base/button'
- import VariableModal from '@/app/components/workflow/panel/env-panel/variable-modal'
- import {
- PortalToFollowElem,
- PortalToFollowElemContent,
- PortalToFollowElemTrigger,
- } from '@/app/components/base/portal-to-follow-elem'
- import type { EnvironmentVariable } from '@/app/components/workflow/types'
- type Props = {
- open: boolean
- setOpen: (value: React.SetStateAction<boolean>) => void
- env?: EnvironmentVariable
- onClose: () => void
- onSave: (env: EnvironmentVariable) => void
- }
- const VariableTrigger = ({
- open,
- setOpen,
- env,
- onClose,
- onSave,
- }: Props) => {
- const { t } = useTranslation()
- return (
- <PortalToFollowElem
- open={open}
- onOpenChange={() => {
- setOpen(v => !v)
- open && onClose()
- }}
- placement='left-start'
- offset={{
- mainAxis: 8,
- alignmentAxis: -104,
- }}
- >
- <PortalToFollowElemTrigger onClick={() => {
- setOpen(v => !v)
- open && onClose()
- }}>
- <Button variant='primary'>
- <RiAddLine className='mr-1 w-4 h-4' />
- <span className='system-sm-medium'>{t('workflow.env.envPanelButton')}</span>
- </Button>
- </PortalToFollowElemTrigger>
- <PortalToFollowElemContent className='z-[11]'>
- <VariableModal
- env={env}
- onSave={onSave}
- onClose={() => {
- onClose()
- setOpen(false)
- }}
- />
- </PortalToFollowElemContent>
- </PortalToFollowElem>
- )
- }
- export default VariableTrigger
|