| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | 
							- import { SharedFrom } from '@/constants/chat';
 - import {
 -   useCreateNextToken,
 -   useFetchTokenList,
 -   useRemoveNextToken,
 - } from '@/hooks/chat-hooks';
 - import {
 -   useSetModalState,
 -   useShowDeleteConfirm,
 -   useTranslate,
 - } from '@/hooks/common-hooks';
 - import { IStats } from '@/interfaces/database/chat';
 - import { useQueryClient } from '@tanstack/react-query';
 - import { message } from 'antd';
 - import { useCallback } from 'react';
 - 
 - export const useOperateApiKey = (dialogId: string, idKey: string) => {
 -   const { removeToken } = useRemoveNextToken();
 -   const { createToken, loading: creatingLoading } = useCreateNextToken();
 -   const { data: tokenList, loading: listLoading } = useFetchTokenList({
 -     [idKey]: dialogId,
 -   });
 - 
 -   const showDeleteConfirm = useShowDeleteConfirm();
 - 
 -   const onRemoveToken = (token: string, tenantId: string) => {
 -     showDeleteConfirm({
 -       onOk: () => removeToken({ dialogId, tokens: [token], tenantId }),
 -     });
 -   };
 - 
 -   const onCreateToken = useCallback(() => {
 -     createToken({ [idKey]: dialogId });
 -   }, [createToken, idKey, dialogId]);
 - 
 -   return {
 -     removeToken: onRemoveToken,
 -     createToken: onCreateToken,
 -     tokenList,
 -     creatingLoading,
 -     listLoading,
 -   };
 - };
 - 
 - type ChartStatsType = {
 -   [k in keyof IStats]: Array<{ xAxis: string; yAxis: number }>;
 - };
 - 
 - export const useSelectChartStatsList = (): ChartStatsType => {
 -   const queryClient = useQueryClient();
 -   const data = queryClient.getQueriesData({ queryKey: ['fetchStats'] });
 -   const stats: IStats = data[0][1] as IStats;
 - 
 -   return Object.keys(stats).reduce((pre, cur) => {
 -     const item = stats[cur as keyof IStats];
 -     if (item.length > 0) {
 -       pre[cur as keyof IStats] = item.map((x) => ({
 -         xAxis: x[0] as string,
 -         yAxis: x[1] as number,
 -       }));
 -     }
 -     return pre;
 -   }, {} as ChartStatsType);
 - };
 - 
 - export const useShowTokenEmptyError = () => {
 -   const { t } = useTranslate('chat');
 - 
 -   const showTokenEmptyError = useCallback(() => {
 -     message.error(t('tokenError'));
 -   }, [t]);
 -   return { showTokenEmptyError };
 - };
 - 
 - const getUrlWithToken = (token: string, from: string = 'chat') => {
 -   const { protocol, host } = window.location;
 -   return `${protocol}//${host}/chat/share?shared_id=${token}&from=${from}`;
 - };
 - 
 - const useFetchTokenListBeforeOtherStep = (dialogId: string, idKey: string) => {
 -   const { showTokenEmptyError } = useShowTokenEmptyError();
 - 
 -   const { data: tokenList, refetch } = useFetchTokenList({ [idKey]: dialogId });
 - 
 -   const token =
 -     Array.isArray(tokenList) && tokenList.length > 0 ? tokenList[0].token : '';
 - 
 -   const handleOperate = useCallback(async () => {
 -     const ret = await refetch();
 -     const list = ret.data;
 -     if (Array.isArray(list) && list.length > 0) {
 -       return list[0]?.token;
 -     } else {
 -       showTokenEmptyError();
 -       return false;
 -     }
 -   }, [showTokenEmptyError, refetch]);
 - 
 -   return {
 -     token,
 -     handleOperate,
 -   };
 - };
 - 
 - export const useShowEmbedModal = (dialogId: string, idKey: string) => {
 -   const {
 -     visible: embedVisible,
 -     hideModal: hideEmbedModal,
 -     showModal: showEmbedModal,
 -   } = useSetModalState();
 - 
 -   const { handleOperate, token } = useFetchTokenListBeforeOtherStep(
 -     dialogId,
 -     idKey,
 -   );
 - 
 -   const handleShowEmbedModal = useCallback(async () => {
 -     const succeed = await handleOperate();
 -     if (succeed) {
 -       showEmbedModal();
 -     }
 -   }, [handleOperate, showEmbedModal]);
 - 
 -   return {
 -     showEmbedModal: handleShowEmbedModal,
 -     hideEmbedModal,
 -     embedVisible,
 -     embedToken: token,
 -   };
 - };
 - 
 - export const usePreviewChat = (dialogId: string, idKey: string) => {
 -   const { handleOperate } = useFetchTokenListBeforeOtherStep(dialogId, idKey);
 - 
 -   const open = useCallback(
 -     (t: string) => {
 -       window.open(
 -         getUrlWithToken(
 -           t,
 -           idKey === 'canvasId' ? SharedFrom.Agent : SharedFrom.Chat,
 -         ),
 -         '_blank',
 -       );
 -     },
 -     [idKey],
 -   );
 - 
 -   const handlePreview = useCallback(async () => {
 -     const token = await handleOperate();
 -     if (token) {
 -       open(token);
 -     }
 -   }, [handleOperate, open]);
 - 
 -   return {
 -     handlePreview,
 -   };
 - };
 
 
  |