| import type { FC } from 'react' | |
| import React from 'react' | |
| import { RiRefreshLine } from '@remixicon/react' | |
| import { useTranslation } from 'react-i18next' | |
| import type { Theme } from './theme/theme-context' | |
| import { CssTransform } from './theme/utils' | |
| import Tooltip from '@/app/components/base/tooltip' | |
| export type IHeaderProps = { | |
| isMobile?: boolean | |
| customerIcon?: React.ReactNode | |
| title: string | |
| theme?: Theme | |
| onCreateNewChat?: () => void | |
| } | |
| const Header: FC<IHeaderProps> = ({ | |
| isMobile, | |
| customerIcon, | |
| title, | |
| theme, | |
| onCreateNewChat, | |
| }) => { | |
| const { t } = useTranslation() | |
| if (!isMobile) | |
| return null | |
| return ( | |
| <div | |
| className={` | |
| shrink-0 flex items-center justify-between h-14 px-4 | |
| `} | |
| style={Object.assign({}, CssTransform(theme?.backgroundHeaderColorStyle ?? ''), CssTransform(theme?.headerBorderBottomStyle ?? '')) } | |
| > | |
| <div className="flex items-center space-x-2"> | |
| {customerIcon} | |
| <div | |
| className={'text-sm font-bold text-white'} | |
| style={CssTransform(theme?.colorFontOnHeaderStyle ?? '')} | |
| > | |
| {title} | |
| </div> | |
| </div> | |
| <Tooltip | |
| popupContent={t('share.chat.resetChat')} | |
| > | |
| <div className='flex cursor-pointer hover:rounded-lg hover:bg-black/5 w-8 h-8 items-center justify-center' onClick={() => { | |
| onCreateNewChat?.() | |
| }}> | |
| <RiRefreshLine className="h-4 w-4 text-sm font-bold text-white" color={theme?.colorPathOnHeader}/> | |
| </div> | |
| </Tooltip> | |
| </div> | |
| ) | |
| } | |
| export default React.memo(Header) | |