import LineChart from '@/components/line-chart'; import { useFetchNextStats } from '@/hooks/chat-hooks'; import { useSetModalState, useTranslate } from '@/hooks/common-hooks'; import { IModalProps } from '@/interfaces/common'; import { IStats } from '@/interfaces/database/chat'; import { formatDate } from '@/utils/date'; import { Button, Card, DatePicker, Flex, Modal, Space, Typography } from 'antd'; import { RangePickerProps } from 'antd/es/date-picker'; import dayjs from 'dayjs'; import camelCase from 'lodash/camelCase'; import ChatApiKeyModal from '../chat-api-key-modal'; import EmbedModal from '../embed-modal'; import { usePreviewChat, useSelectChartStatsList, useShowEmbedModal, } from '../hooks'; import styles from './index.less'; const { Paragraph } = Typography; const { RangePicker } = DatePicker; const StatsLineChart = ({ statsType }: { statsType: keyof IStats }) => { const { t } = useTranslate('chat'); const chartList = useSelectChartStatsList(); const list = chartList[statsType]?.map((x) => ({ ...x, xAxis: formatDate(x.xAxis), })) ?? []; return (
{t(camelCase(statsType))}
); }; const ChatOverviewModal = ({ visible, hideModal, id, name = '', idKey, }: IModalProps & { id: string; name?: string; idKey: string }) => { const { t } = useTranslate('chat'); const { visible: apiKeyVisible, hideModal: hideApiKeyModal, showModal: showApiKeyModal, } = useSetModalState(); const { embedVisible, hideEmbedModal, showEmbedModal, embedToken, errorContextHolder, } = useShowEmbedModal(id, idKey); const { pickerValue, setPickerValue } = useFetchNextStats(); const disabledDate: RangePickerProps['disabledDate'] = (current) => { return current && current > dayjs().endOf('day'); }; const { handlePreview, contextHolder } = usePreviewChat(id, idKey); return ( <> {t('serviceApiEndpoint')} {location.origin} /v1/api/ {t('dateRange')}
{apiKeyVisible && ( )} {contextHolder} {errorContextHolder}
); }; export default ChatOverviewModal;