12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 'use client'
- import type { FC, ReactNode } from 'react'
- import React from 'react'
- import cn from 'classnames'
- import { useTranslation } from 'react-i18next'
- import s from './style.module.css'
- import { StarIcon } from '@/app/components/share/chatbot/welcome/massive-component'
- import Button from '@/app/components/base/button'
- export type ITemplateVarPanelProps = {
- className?: string
- header: ReactNode
- children?: ReactNode | null
- isFold: boolean
- }
- const TemplateVarPanel: FC<ITemplateVarPanelProps> = ({
- className,
- header,
- children,
- isFold,
- }) => {
- return (
- <div className={cn(isFold ? 'border border-indigo-100' : s.boxShodow, className, 'rounded-xl ')}>
- {/* header */}
- <div
- className={cn(isFold && 'rounded-b-xl', 'rounded-t-xl px-6 py-4 bg-indigo-25 text-xs')}
- >
- {header}
- </div>
- {/* body */}
- {!isFold && children && (
- <div className='rounded-b-xl p-6'>
- {children}
- </div>
- )}
- </div>
- )
- }
- export const PanelTitle: FC<{ title: string; className?: string }> = ({
- title,
- className,
- }) => {
- return (
- <div className={cn(className, 'flex items-center space-x-1 text-indigo-600')}>
- <StarIcon />
- <span className='text-xs'>{title}</span>
- </div>
- )
- }
- export const VarOpBtnGroup: FC<{ className?: string; onConfirm: () => void; onCancel: () => void }> = ({
- className,
- onConfirm,
- onCancel,
- }) => {
- const { t } = useTranslation()
- return (
- <div className={cn(className, 'flex mt-3 space-x-2 mobile:ml-0 tablet:ml-[128px] text-sm')}>
- <Button
- className='text-sm'
- type='primary'
- onClick={onConfirm}
- >
- {t('common.operation.save')}
- </Button>
- <Button
- className='text-sm'
- onClick={onCancel}
- >
- {t('common.operation.cancel')}
- </Button>
- </div >
- )
- }
- export default React.memo(TemplateVarPanel)
|