28 lines
872 B
TypeScript
28 lines
872 B
TypeScript
![]() |
import { usePluginTasksStore } from './store'
|
||
|
import { TaskStatus } from '@/app/components/plugins/types'
|
||
|
import type { PluginStatus } from '@/app/components/plugins/types'
|
||
|
|
||
|
export const usePluginTaskStatus = () => {
|
||
|
const pluginTasks = usePluginTasksStore(s => s.pluginTasks)
|
||
|
const allPlugins = pluginTasks.map(task => task.plugins).flat()
|
||
|
const errorPlugins: PluginStatus[] = []
|
||
|
const successPlugins: PluginStatus[] = []
|
||
|
const runningPlugins: PluginStatus[] = []
|
||
|
|
||
|
allPlugins.forEach((plugin) => {
|
||
|
if (plugin.status === TaskStatus.running)
|
||
|
runningPlugins.push(plugin)
|
||
|
if (plugin.status === TaskStatus.failed)
|
||
|
errorPlugins.push(plugin)
|
||
|
if (plugin.status === TaskStatus.success)
|
||
|
successPlugins.push(plugin)
|
||
|
})
|
||
|
|
||
|
return {
|
||
|
errorPlugins,
|
||
|
successPlugins,
|
||
|
runningPlugins,
|
||
|
totalPluginsLength: allPlugins.length,
|
||
|
}
|
||
|
}
|