You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

edit-modal.tsx 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. 'use client'
  2. import type { FC } from 'react'
  3. import React, { useState } from 'react'
  4. import { useTranslation } from 'react-i18next'
  5. import Modal from '@/app/components/base/modal'
  6. import type { ConversationHistoriesRole } from '@/models/debug'
  7. import Button from '@/app/components/base/button'
  8. type Props = {
  9. isShow: boolean
  10. saveLoading: boolean
  11. data: ConversationHistoriesRole
  12. onClose: () => void
  13. onSave: (data: any) => void
  14. }
  15. const EditModal: FC<Props> = ({
  16. isShow,
  17. saveLoading,
  18. data,
  19. onClose,
  20. onSave,
  21. }) => {
  22. const { t } = useTranslation()
  23. const [tempData, setTempData] = useState(data)
  24. return (
  25. <Modal
  26. title={t('appDebug.feature.conversationHistory.editModal.title')}
  27. isShow={isShow}
  28. onClose={onClose}
  29. >
  30. <div className={'mt-6 text-sm font-medium leading-[21px] text-text-primary'}>{t('appDebug.feature.conversationHistory.editModal.userPrefix')}</div>
  31. <input className={'mt-2 box-border h-10 w-full rounded-lg bg-components-input-bg-normal px-3 text-sm leading-10'}
  32. value={tempData.user_prefix}
  33. onChange={e => setTempData({
  34. ...tempData,
  35. user_prefix: e.target.value,
  36. })}
  37. />
  38. <div className={'mt-6 text-sm font-medium leading-[21px] text-text-primary'}>{t('appDebug.feature.conversationHistory.editModal.assistantPrefix')}</div>
  39. <input className={'mt-2 box-border h-10 w-full rounded-lg bg-components-input-bg-normal px-3 text-sm leading-10'}
  40. value={tempData.assistant_prefix}
  41. onChange={e => setTempData({
  42. ...tempData,
  43. assistant_prefix: e.target.value,
  44. })}
  45. placeholder={t('common.chat.conversationNamePlaceholder') || ''}
  46. />
  47. <div className='mt-10 flex justify-end'>
  48. <Button className='mr-2 shrink-0' onClick={onClose}>{t('common.operation.cancel')}</Button>
  49. <Button variant='primary' className='shrink-0' onClick={() => onSave(tempData)} loading={saveLoading}>{t('common.operation.save')}</Button>
  50. </div>
  51. </Modal>
  52. )
  53. }
  54. export default React.memo(EditModal)