mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 07:09:02 +08:00
chore: show credit help link (#2393)
This commit is contained in:
parent
714ff3c663
commit
5e145c1c22
@ -98,6 +98,7 @@ export type CredentialFormSchemaBase = {
|
|||||||
default?: string
|
default?: string
|
||||||
tooltip?: TypeWithI18N
|
tooltip?: TypeWithI18N
|
||||||
show_on: FormShowOnObject[]
|
show_on: FormShowOnObject[]
|
||||||
|
url?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CredentialFormSchemaTextInput = CredentialFormSchemaBase & { max_length?: number; placeholder?: TypeWithI18N }
|
export type CredentialFormSchemaTextInput = CredentialFormSchemaBase & { max_length?: number; placeholder?: TypeWithI18N }
|
||||||
|
@ -28,6 +28,7 @@ type FormProps = {
|
|||||||
readonly?: boolean
|
readonly?: boolean
|
||||||
inputClassName?: string
|
inputClassName?: string
|
||||||
isShowDefaultValue?: boolean
|
isShowDefaultValue?: boolean
|
||||||
|
fieldMoreInfo?: (payload: CredentialFormSchema) => JSX.Element | null
|
||||||
}
|
}
|
||||||
|
|
||||||
const Form: FC<FormProps> = ({
|
const Form: FC<FormProps> = ({
|
||||||
@ -41,6 +42,7 @@ const Form: FC<FormProps> = ({
|
|||||||
readonly,
|
readonly,
|
||||||
inputClassName,
|
inputClassName,
|
||||||
isShowDefaultValue = false,
|
isShowDefaultValue = false,
|
||||||
|
fieldMoreInfo,
|
||||||
}) => {
|
}) => {
|
||||||
const language = useLanguage()
|
const language = useLanguage()
|
||||||
const [changeKey, setChangeKey] = useState('')
|
const [changeKey, setChangeKey] = useState('')
|
||||||
@ -106,6 +108,7 @@ const Form: FC<FormProps> = ({
|
|||||||
type={formSchema.type === FormTypeEnum.textNumber ? 'number' : 'text'}
|
type={formSchema.type === FormTypeEnum.textNumber ? 'number' : 'text'}
|
||||||
{...(formSchema.type === FormTypeEnum.textNumber ? { min: (formSchema as CredentialFormSchemaNumberInput).min, max: (formSchema as CredentialFormSchemaNumberInput).max } : {})}
|
{...(formSchema.type === FormTypeEnum.textNumber ? { min: (formSchema as CredentialFormSchemaNumberInput).min, max: (formSchema as CredentialFormSchemaNumberInput).max } : {})}
|
||||||
/>
|
/>
|
||||||
|
{fieldMoreInfo?.(formSchema)}
|
||||||
{validating && changeKey === variable && <ValidatingTip />}
|
{validating && changeKey === variable && <ValidatingTip />}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@ -162,6 +165,7 @@ const Form: FC<FormProps> = ({
|
|||||||
))
|
))
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
{fieldMoreInfo?.(formSchema)}
|
||||||
{validating && changeKey === variable && <ValidatingTip />}
|
{validating && changeKey === variable && <ValidatingTip />}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@ -205,6 +209,7 @@ const Form: FC<FormProps> = ({
|
|||||||
onSelect={item => handleFormChange(variable, item.value as string)}
|
onSelect={item => handleFormChange(variable, item.value as string)}
|
||||||
placeholder={placeholder?.[language]}
|
placeholder={placeholder?.[language]}
|
||||||
/>
|
/>
|
||||||
|
{fieldMoreInfo?.(formSchema)}
|
||||||
{validating && changeKey === variable && <ValidatingTip />}
|
{validating && changeKey === variable && <ValidatingTip />}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
@ -10,6 +10,7 @@ import Button from '@/app/components/base/button'
|
|||||||
import { fetchBuiltInToolCredentialSchema } from '@/service/tools'
|
import { fetchBuiltInToolCredentialSchema } from '@/service/tools'
|
||||||
import Loading from '@/app/components/base/loading'
|
import Loading from '@/app/components/base/loading'
|
||||||
import Form from '@/app/components/header/account-setting/model-provider-page/model-modal/Form'
|
import Form from '@/app/components/header/account-setting/model-provider-page/model-modal/Form'
|
||||||
|
import { LinkExternal02 } from '@/app/components/base/icons/src/vender/line/general'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
collection: Collection
|
collection: Collection
|
||||||
@ -62,6 +63,16 @@ const ConfigCredential: FC<Props> = ({
|
|||||||
showOnVariableMap={{}}
|
showOnVariableMap={{}}
|
||||||
validating={false}
|
validating={false}
|
||||||
inputClassName='!bg-gray-50'
|
inputClassName='!bg-gray-50'
|
||||||
|
fieldMoreInfo={item => item.url
|
||||||
|
? (<a
|
||||||
|
href={item.url}
|
||||||
|
target='_blank' rel='noopener noreferrer'
|
||||||
|
className='inline-flex items-center text-xs text-primary-600'
|
||||||
|
>
|
||||||
|
{t('tools.howToGet')}
|
||||||
|
<LinkExternal02 className='ml-1 w-3 h-3' />
|
||||||
|
</a>)
|
||||||
|
: null}
|
||||||
/>
|
/>
|
||||||
<div className={cn(collection.is_team_authorization ? 'justify-between' : 'justify-end', 'mt-2 flex ')} >
|
<div className={cn(collection.is_team_authorization ? 'justify-between' : 'justify-end', 'mt-2 flex ')} >
|
||||||
{
|
{
|
||||||
|
@ -98,6 +98,7 @@ const translation = {
|
|||||||
builtInPromptTitle: 'Prompt',
|
builtInPromptTitle: 'Prompt',
|
||||||
toolRemoved: 'Tool removed',
|
toolRemoved: 'Tool removed',
|
||||||
notAuthorized: 'Tool not authorized',
|
notAuthorized: 'Tool not authorized',
|
||||||
|
howToGet: 'How to get',
|
||||||
}
|
}
|
||||||
|
|
||||||
export default translation
|
export default translation
|
||||||
|
@ -97,6 +97,7 @@ const translation = {
|
|||||||
},
|
},
|
||||||
builtInPromptTitle: 'Prompt',
|
builtInPromptTitle: 'Prompt',
|
||||||
toolRemoved: 'Ferramenta removida',
|
toolRemoved: 'Ferramenta removida',
|
||||||
|
howToGet: 'Como conseguir',
|
||||||
}
|
}
|
||||||
|
|
||||||
export default translation
|
export default translation
|
||||||
|
@ -90,6 +90,7 @@ const translation = {
|
|||||||
builtInPromptTitle: '提示词',
|
builtInPromptTitle: '提示词',
|
||||||
toolRemoved: '工具已被移除',
|
toolRemoved: '工具已被移除',
|
||||||
notAuthorized: '工具未授权',
|
notAuthorized: '工具未授权',
|
||||||
|
howToGet: '如何获取',
|
||||||
}
|
}
|
||||||
|
|
||||||
export default translation
|
export default translation
|
||||||
|
Loading…
x
Reference in New Issue
Block a user