| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | 
							- 'use client'
 
- import type { FC } from 'react'
 
- import React from 'react'
 
- import { useTranslation } from 'react-i18next'
 
- import { RiArrowRightUpLine, RiCloseLine } from '@remixicon/react'
 
- import ActionButton from '@/app/components/base/action-button'
 
- import Button from '@/app/components/base/button'
 
- import Drawer from '@/app/components/base/drawer'
 
- import Form from '@/app/components/header/account-setting/model-provider-page/model-modal/Form'
 
- import Toast from '@/app/components/base/toast'
 
- import { useRenderI18nObject } from '@/hooks/use-i18n'
 
- import cn from '@/utils/classnames'
 
- type Props = {
 
-   formSchemas: any
 
-   defaultValues?: any
 
-   onCancel: () => void
 
-   onSaved: (value: Record<string, any>) => void
 
- }
 
- const EndpointModal: FC<Props> = ({
 
-   formSchemas,
 
-   defaultValues = {},
 
-   onCancel,
 
-   onSaved,
 
- }) => {
 
-   const getValueFromI18nObject = useRenderI18nObject()
 
-   const { t } = useTranslation()
 
-   const [tempCredential, setTempCredential] = React.useState<any>(defaultValues)
 
-   const handleSave = () => {
 
-     for (const field of formSchemas) {
 
-       if (field.required && !tempCredential[field.name]) {
 
-         Toast.notify({ type: 'error', message: t('common.errorMsg.fieldRequired', { field: getValueFromI18nObject(field.label) }) })
 
-         return
 
-       }
 
-     }
 
-     onSaved(tempCredential)
 
-   }
 
-   return (
 
-     <Drawer
 
-       isOpen
 
-       clickOutsideNotOpen={false}
 
-       onClose={onCancel}
 
-       footer={null}
 
-       mask
 
-       positionCenter={false}
 
-       panelClassname={cn('justify-start mt-[64px] mr-2 mb-2 !w-[420px] !max-w-[420px] !p-0 !bg-components-panel-bg rounded-2xl border-[0.5px] border-components-panel-border shadow-xl')}
 
-     >
 
-       <>
 
-         <div className='p-4 pb-2'>
 
-           <div className='flex items-center justify-between'>
 
-             <div className='text-text-primary system-xl-semibold'>{t('plugin.detailPanel.endpointModalTitle')}</div>
 
-             <ActionButton onClick={onCancel}>
 
-               <RiCloseLine className='w-4 h-4' />
 
-             </ActionButton>
 
-           </div>
 
-           <div className='mt-0.5 text-text-tertiary system-xs-regular'>{t('plugin.detailPanel.endpointModalDesc')}</div>
 
-         </div>
 
-         <div className='grow overflow-y-auto'>
 
-           <div className='px-4 py-2'>
 
-             <Form
 
-               value={tempCredential}
 
-               onChange={(v) => {
 
-                 setTempCredential(v)
 
-               }}
 
-               formSchemas={formSchemas}
 
-               isEditMode={true}
 
-               showOnVariableMap={{}}
 
-               validating={false}
 
-               inputClassName='bg-components-input-bg-normal hover:bg-components-input-bg-hover'
 
-               fieldMoreInfo={item => item.url
 
-                 ? (<a
 
-                   href={item.url}
 
-                   target='_blank' rel='noopener noreferrer'
 
-                   className='inline-flex items-center body-xs-regular text-text-accent-secondary'
 
-                 >
 
-                   {t('tools.howToGet')}
 
-                   <RiArrowRightUpLine className='ml-1 w-3 h-3' />
 
-                 </a>)
 
-                 : null}
 
-             />
 
-           </div>
 
-           <div className={cn('p-4 pt-0 flex justify-end')} >
 
-             <div className='flex gap-2'>
 
-               <Button onClick={onCancel}>{t('common.operation.cancel')}</Button>
 
-               <Button variant='primary' onClick={handleSave}>{t('common.operation.save')}</Button>
 
-             </div>
 
-           </div>
 
-         </div>
 
-       </>
 
-     </Drawer>
 
-   )
 
- }
 
- export default React.memo(EndpointModal)
 
 
  |