diff --git a/ui/console-src/modules/system/plugins/components/PluginListItem.vue b/ui/console-src/modules/system/plugins/components/PluginListItem.vue index 3fefcab8d8..3c84705a22 100644 --- a/ui/console-src/modules/system/plugins/components/PluginListItem.vue +++ b/ui/console-src/modules/system/plugins/components/PluginListItem.vue @@ -10,7 +10,7 @@ import { import type { Ref } from "vue"; import { computed, inject, markRaw, ref, toRefs } from "vue"; import { usePluginLifeCycle } from "../composables/use-plugin"; -import { PluginStatusPhaseEnum, type Plugin } from "@halo-dev/api-client"; +import { type Plugin, PluginStatusPhaseEnum } from "@halo-dev/api-client"; import { formatDatetime } from "@/utils/date"; import { usePermission } from "@/utils/permission"; import { apiClient } from "@/utils/api-client"; @@ -43,7 +43,7 @@ const { plugin } = toRefs(props); const selectedNames = inject>("selectedNames", ref([])); -const { getFailedMessage, uninstall } = usePluginLifeCycle(plugin); +const { getStatusMessage, uninstall } = usePluginLifeCycle(plugin); const pluginUpgradeModalVisible = ref(false); @@ -153,12 +153,6 @@ const { startFields, endFields } = useEntityFieldItemExtensionPoint( const shouldHideStatusDot = !enabled || (enabled && phase === PluginStatusPhaseEnum.Started); - const statusDotText = - enabled && - phase !== (PluginStatusPhaseEnum.Started || PluginStatusPhaseEnum.Failed) - ? t("core.common.status.starting_up") - : undefined; - const getStatusDotState = () => { if ( enabled && @@ -197,10 +191,9 @@ const { startFields, endFields } = useEntityFieldItemExtensionPoint( priority: 10, component: markRaw(StatusDotField), props: { - tooltip: getFailedMessage(), + tooltip: getStatusMessage(), state: getStatusDotState(), animate: true, - text: statusDotText, }, hidden: shouldHideStatusDot, }, diff --git a/ui/console-src/modules/system/plugins/composables/use-plugin.ts b/ui/console-src/modules/system/plugins/composables/use-plugin.ts index 2020f4a354..6391f1b512 100644 --- a/ui/console-src/modules/system/plugins/composables/use-plugin.ts +++ b/ui/console-src/modules/system/plugins/composables/use-plugin.ts @@ -1,6 +1,6 @@ import type { ComputedRef, Ref } from "vue"; import { computed } from "vue"; -import { PluginStatusPhaseEnum, type Plugin } from "@halo-dev/api-client"; +import { type Plugin, PluginStatusPhaseEnum } from "@halo-dev/api-client"; import { cloneDeep } from "lodash-es"; import { apiClient } from "@/utils/api-client"; import { Dialog, Toast } from "@halo-dev/components"; @@ -9,7 +9,7 @@ import { useMutation } from "@tanstack/vue-query"; interface usePluginLifeCycleReturn { isStarted: ComputedRef; - getFailedMessage: () => string | undefined; + getStatusMessage: () => string | undefined; changeStatus: () => void; changingStatus: Ref; uninstall: (deleteExtensions?: boolean) => void; @@ -27,9 +27,21 @@ export function usePluginLifeCycle( ); }); - const getFailedMessage = () => { + const getStatusMessage = () => { if (!plugin?.value) return; + const { enabled } = plugin.value.spec || {}; + const { phase } = plugin.value.status || {}; + + // Starting up + if ( + enabled && + phase !== (PluginStatusPhaseEnum.Started || PluginStatusPhaseEnum.Failed) + ) { + return t("core.common.status.starting_up"); + } + + // Starting failed if (!isStarted.value) { const lastCondition = plugin.value.status?.conditions?.[0]; @@ -141,7 +153,7 @@ export function usePluginLifeCycle( return { isStarted, - getFailedMessage, + getStatusMessage, changeStatus, changingStatus, uninstall,