mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-16 08:01:18 +00:00

* feat: workflow catch error (#5220) * feat: error catch * feat: workflow catch error * perf: add catch error to node * feat: system tool error catch * catch error * fix: ts * update doc * perf: training queue code (#5232) * doc * perf: training queue code * Feat: 优化错误提示与重试逻辑 (#5192) * feat: 批量重试异常数据 & 报错信息国际化 - 新增“全部重试”按钮,支持批量重试所有训练异常数据 - 报错信息支持国际化,常见错误自动映射为 i18n key - 相关文档和 i18n 资源已同步更新 * feat: enhance error message and retry mechanism * feat: enhance error message and retry mechanism * feat: add retry_failed i18n key * feat: enhance error message and retry mechanism * feat: enhance error message and retry mechanism * feat: enhance error message and retry mechanism : 5 * feat: enhance error message and retry mechanism : 6 * feat: enhance error message and retry mechanism : 7 * feat: enhance error message and retry mechanism : 8 * perf: catch chat error * perf: copy hook (#5246) * perf: copy hook * doc * doc * add app evaluation (#5083) * add app evaluation * fix * usage * variables * editing condition * var ui * isplus filter * migrate code * remove utils * name * update type * build * fix * fix * fix * delete comment * fix * perf: eval code * eval code * eval code * feat: ttfb time in model log * Refactor chat page (#5253) * feat: update side bar layout; add login and logout logic at chat page * refactor: encapsulate login logic and reuse it in `LoginModal` and `Login` page * chore: improve some logics and comments * chore: improve some logics * chore: remove redundant side effect; add translations --------- Co-authored-by: Archer <545436317@qq.com> * perf: chat page code * doc * perf: provider redirect * chore: ui improvement (#5266) * Fix: SSE * Fix: SSE * eval pagination (#5264) * eval scroll pagination * change eval list to manual pagination * number * fix build * fix * version doc (#5267) * version doc * version doc * doc * feat: eval model select * config eval model * perf: eval detail modal ui * doc * doc * fix: chat store reload * doc --------- Co-authored-by: colnii <1286949794@qq.com> Co-authored-by: heheer <heheer@sealos.io> Co-authored-by: 酒川户 <76519998+chuanhu9@users.noreply.github.com>
76 lines
1.8 KiB
TypeScript
76 lines
1.8 KiB
TypeScript
import { useTranslation } from 'next-i18next';
|
|
import { useToast } from './useToast';
|
|
import { useCallback } from 'react';
|
|
import MyModal from '../components/common/MyModal';
|
|
import React from 'react';
|
|
import { Box, ModalBody } from '@chakra-ui/react';
|
|
import Tag from '../components/common/Tag';
|
|
import { useCommonStore } from '../store/useCommonStore';
|
|
|
|
/**
|
|
* copy text data
|
|
*/
|
|
export const useCopyData = () => {
|
|
const { t } = useTranslation();
|
|
const { toast } = useToast();
|
|
const { setCopyContent } = useCommonStore();
|
|
|
|
const copyData = useCallback(
|
|
async (
|
|
data: string,
|
|
title: string | null | undefined = t('common:copy_successful'),
|
|
duration = 1000
|
|
) => {
|
|
data = data.trim();
|
|
|
|
try {
|
|
if (navigator.clipboard && window.isSecureContext) {
|
|
await navigator.clipboard.writeText(data);
|
|
if (title) {
|
|
toast({
|
|
title,
|
|
status: 'success',
|
|
duration
|
|
});
|
|
}
|
|
} else {
|
|
throw new Error('Clipboard is not supported');
|
|
}
|
|
} catch (error) {
|
|
setCopyContent(data);
|
|
}
|
|
},
|
|
[setCopyContent, t, toast]
|
|
);
|
|
|
|
return {
|
|
copyData
|
|
};
|
|
};
|
|
|
|
export const ManualCopyModal = () => {
|
|
const { t } = useTranslation();
|
|
const { copyContent, setCopyContent } = useCommonStore();
|
|
|
|
return (
|
|
<MyModal
|
|
isOpen={!!copyContent}
|
|
iconSrc="copy"
|
|
iconColor="primary.600"
|
|
title={t('common:Copy')}
|
|
maxW={['90vw', '500px']}
|
|
w={'100%'}
|
|
onClose={() => setCopyContent(undefined)}
|
|
>
|
|
<ModalBody>
|
|
<Tag w={'100%'} colorSchema="blue">
|
|
{t('common:can_copy_content_tip')}
|
|
</Tag>
|
|
<Box mt={3} borderRadius={'md'} p={3} border={'base'} userSelect={'all'}>
|
|
{copyContent}
|
|
</Box>
|
|
</ModalBody>
|
|
</MyModal>
|
|
);
|
|
};
|