12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 'use client'
- import type { FC } from 'react'
- import React, { useCallback } from 'react'
- import { useBoolean } from 'ahooks'
- import cn from 'classnames'
- import { Generator } from '@/app/components/base/icons/src/vender/other'
- import { ActionButton } from '@/app/components/base/action-button'
- import GetAutomaticResModal from '@/app/components/app/configuration/config/automatic/get-automatic-res'
- import { AppType } from '@/types/app'
- import type { AutomaticRes } from '@/service/debug'
- import type { ModelConfig } from '@/app/components/workflow/types'
- import type { Model } from '@/types/app'
- type Props = {
- className?: string
- onGenerated?: (prompt: string) => void
- modelConfig?: ModelConfig
- }
- const PromptGeneratorBtn: FC<Props> = ({
- className,
- onGenerated,
- modelConfig,
- }) => {
- const [showAutomatic, { setTrue: showAutomaticTrue, setFalse: showAutomaticFalse }] = useBoolean(false)
- const handleAutomaticRes = useCallback((res: AutomaticRes) => {
- onGenerated?.(res.prompt)
- showAutomaticFalse()
- }, [onGenerated, showAutomaticFalse])
- return (
- <div className={cn(className)}>
- <ActionButton
- className='hover:bg-[#155EFF]/8'
- onClick={showAutomaticTrue}>
- <Generator className='w-4 h-4 text-primary-600' />
- </ActionButton>
- {showAutomatic && (
- <GetAutomaticResModal
- mode={AppType.chat}
- isShow={showAutomatic}
- onClose={showAutomaticFalse}
- onFinished={handleAutomaticRes}
- model={modelConfig as Model}
- isInLLMNode
- />
- )}
- </div>
- )
- }
- export default React.memo(PromptGeneratorBtn)
|