fix(lugin-workflow-tasks): only use the provider in admin layout (#6412)

This commit is contained in:
Junyi 2025-03-11 10:00:34 +08:00 committed by GitHub
parent 45bfc0649f
commit 7d14ebf06f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -22,6 +22,7 @@ import {
useApp, useApp,
useCompile, useCompile,
useDocumentTitle, useDocumentTitle,
useIsAdminPage,
usePlugin, usePlugin,
useRequest, useRequest,
useToken, useToken,
@ -321,7 +322,7 @@ function transform(detail) {
}, {}); }, {});
} }
export const TasksProvider = (props: any) => { function TasksCountsProvider(props: any) {
const app = useApp(); const app = useApp();
const [counts, setCounts] = useState<Record<string, number>>({}); const [counts, setCounts] = useState<Record<string, number>>({});
const onTaskUpdate = useCallback(({ detail = [] }: CustomEvent) => { const onTaskUpdate = useCallback(({ detail = [] }: CustomEvent) => {
@ -368,8 +369,13 @@ export const TasksProvider = (props: any) => {
const total = Object.values(counts).reduce((a, b) => a + b, 0) || 0; const total = Object.values(counts).reduce((a, b) => a + b, 0) || 0;
return ( return <TasksCountsContext.Provider value={{ total, counts }}>{props.children}</TasksCountsContext.Provider>;
<TasksCountsContext.Provider value={{ total, counts }}> }
export const TasksProvider = (props: any) => {
const isAdminPage = useIsAdminPage();
const content = (
<PinnedPluginListProvider <PinnedPluginListProvider
items={{ items={{
todo: { component: 'WorkflowTasksLink', pin: true, snippet: '*' }, todo: { component: 'WorkflowTasksLink', pin: true, snippet: '*' },
@ -383,6 +389,7 @@ export const TasksProvider = (props: any) => {
{props.children} {props.children}
</SchemaComponentOptions> </SchemaComponentOptions>
</PinnedPluginListProvider> </PinnedPluginListProvider>
</TasksCountsContext.Provider>
); );
return isAdminPage ? <TasksCountsProvider>{content}</TasksCountsProvider> : content;
}; };