* Revert "lafAccount add pat & re request when token invalid (#76)" (#77) This reverts commit 83d85dfe37adcaef4833385ea52ee79fd84720be. * perf: workflow ux * system config * Newflow (#89) * docs: Add doc for Xinference (#1266) Signed-off-by: Carson Yang <yangchuansheng33@gmail.com> * Revert "lafAccount add pat & re request when token invalid (#76)" (#77) This reverts commit 83d85dfe37adcaef4833385ea52ee79fd84720be. * perf: workflow ux * system config * Revert "lafAccount add pat & re request when token invalid (#76)" (#77) This reverts commit 83d85dfe37adcaef4833385ea52ee79fd84720be. * Revert "lafAccount add pat & re request when token invalid (#76)" (#77) This reverts commit 83d85dfe37adcaef4833385ea52ee79fd84720be. * Revert "lafAccount add pat & re request when token invalid (#76)" (#77) This reverts commit 83d85dfe37adcaef4833385ea52ee79fd84720be. * rename code * move code * update flow * input type selector * perf: workflow runtime * feat: node adapt newflow * feat: adapt plugin * feat: 360 connection * check workflow * perf: flow 性能 * change plugin input type (#81) * change plugin input type * plugin label mode * perf: nodecard * debug * perf: debug ui * connection ui * change workflow ui (#82) * feat: workflow debug * adapt openAPI for new workflow (#83) * adapt openAPI for new workflow * i18n * perf: plugin debug * plugin input ui * delete * perf: global variable select * fix rebase * perf: workflow performance * feat: input render type icon * input icon * adapt flow (#84) * adapt newflow * temp * temp * fix * feat: app schedule trigger * feat: app schedule trigger * perf: schedule ui * feat: ioslatevm run js code * perf: workflow varialbe table ui * feat: adapt simple mode * feat: adapt input params * output * feat: adapt tamplate * fix: ts * add if-else module (#86) * perf: worker * if else node * perf: tiktoken worker * fix: ts * perf: tiktoken * fix if-else node (#87) * fix if-else node * type * fix * perf: audio render * perf: Parallel worker * log * perf: if else node * adapt plugin * prompt * perf: reference ui * reference ui * handle ux * template ui and plugin tool * adapt v1 workflow * adapt v1 workflow completions * perf: time variables * feat: workflow keyboard shortcuts * adapt v1 workflow * update workflow example doc (#88) * fix: simple mode select tool --------- Signed-off-by: Carson Yang <yangchuansheng33@gmail.com> Co-authored-by: Carson Yang <yangchuansheng33@gmail.com> Co-authored-by: heheer <71265218+newfish-cmyk@users.noreply.github.com> * doc * perf: extract node * extra node field * update plugin version * doc * variable * change doc & fix prompt editor (#90) * fold workflow code * value type label --------- Signed-off-by: Carson Yang <yangchuansheng33@gmail.com> Co-authored-by: Carson Yang <yangchuansheng33@gmail.com> Co-authored-by: heheer <71265218+newfish-cmyk@users.noreply.github.com>
66 lines
1.7 KiB
TypeScript
66 lines
1.7 KiB
TypeScript
import React, { useMemo } from 'react';
|
|
import { useChatBox } from '@/components/ChatBox/hooks/useChatBox';
|
|
import type { ChatItemType } from '@fastgpt/global/core/chat/type.d';
|
|
import { Box, IconButton } from '@chakra-ui/react';
|
|
import { useTranslation } from 'next-i18next';
|
|
import MyIcon from '@fastgpt/web/components/common/Icon';
|
|
import { useRouter } from 'next/router';
|
|
import MyMenu from '@fastgpt/web/components/common/MyMenu';
|
|
|
|
const ToolMenu = ({ history }: { history: ChatItemType[] }) => {
|
|
const { t } = useTranslation();
|
|
const { onExportChat } = useChatBox();
|
|
const router = useRouter();
|
|
|
|
const menuList = useMemo(
|
|
() => [
|
|
{
|
|
icon: 'core/chat/chatLight',
|
|
label: t('core.chat.New Chat'),
|
|
onClick: () => {
|
|
router.replace({
|
|
query: {
|
|
...router.query,
|
|
chatId: ''
|
|
}
|
|
});
|
|
}
|
|
},
|
|
{
|
|
icon: 'core/app/appApiLight',
|
|
label: `HTML ${t('Export')}`,
|
|
onClick: () => onExportChat({ type: 'html', history })
|
|
},
|
|
{
|
|
icon: 'file/markdown',
|
|
label: `Markdown ${t('Export')}`,
|
|
onClick: () => onExportChat({ type: 'md', history })
|
|
},
|
|
{
|
|
icon: 'file/pdf',
|
|
label: `PDF ${t('Export')}`,
|
|
onClick: () => onExportChat({ type: 'pdf', history })
|
|
}
|
|
],
|
|
[history, onExportChat, router, t]
|
|
);
|
|
|
|
return history.length > 0 ? (
|
|
<MyMenu
|
|
Button={
|
|
<IconButton
|
|
icon={<MyIcon name={'more'} w={'14px'} p={2} />}
|
|
aria-label={''}
|
|
size={'sm'}
|
|
variant={'whitePrimary'}
|
|
/>
|
|
}
|
|
menuList={menuList}
|
|
/>
|
|
) : (
|
|
<Box w={'28px'} h={'28px'} />
|
|
);
|
|
};
|
|
|
|
export default ToolMenu;
|