mirror of https://github.com/halo-dev/halo
refactor: delay navigation to console until plugins are ready in initial data page (#4901)
Signed-off-by: Ryan Wang <i@ryanc.cc>pull/4878/head^2
parent
080fd4306d
commit
03a9fc5080
|
@ -24,7 +24,7 @@ import { useUserStore } from "@/stores/user";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const globalInfoStore = useGlobalInfoStore();
|
const globalInfoStore = useGlobalInfoStore();
|
||||||
|
|
||||||
const { mutate: pluginInstallMutate } = useMutation({
|
const { mutateAsync: pluginInstallMutate } = useMutation({
|
||||||
mutationKey: ["plugin-install"],
|
mutationKey: ["plugin-install"],
|
||||||
mutationFn: async (plugin: Plugin) => {
|
mutationFn: async (plugin: Plugin) => {
|
||||||
const { data } = await apiClient.plugin.installPlugin(
|
const { data } = await apiClient.plugin.installPlugin(
|
||||||
|
@ -40,20 +40,23 @@ const { mutate: pluginInstallMutate } = useMutation({
|
||||||
},
|
},
|
||||||
retry: 3,
|
retry: 3,
|
||||||
retryDelay: 1000,
|
retryDelay: 1000,
|
||||||
onSuccess(data) {
|
async onSuccess(data) {
|
||||||
pluginStartMutate(data);
|
await pluginStartMutate(data);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const { mutate: pluginStartMutate } = useMutation({
|
const { mutateAsync: pluginStartMutate } = useMutation({
|
||||||
mutationKey: ["plugin-start"],
|
mutationKey: ["plugin-start"],
|
||||||
mutationFn: async (plugin: Plugin) => {
|
mutationFn: async (plugin: Plugin) => {
|
||||||
return await apiClient.plugin.changePluginRunningState({
|
return await apiClient.plugin.changePluginRunningState(
|
||||||
name: plugin.metadata.name,
|
{
|
||||||
pluginRunningStateRequest: {
|
name: plugin.metadata.name,
|
||||||
enable: true,
|
pluginRunningStateRequest: {
|
||||||
|
enable: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
{ mute: true }
|
||||||
|
);
|
||||||
},
|
},
|
||||||
retry: 3,
|
retry: 3,
|
||||||
retryDelay: 1000,
|
retryDelay: 1000,
|
||||||
|
@ -101,7 +104,12 @@ async function setupInitialData() {
|
||||||
const { data: presetPlugins } = await apiClient.plugin.listPluginPresets();
|
const { data: presetPlugins } = await apiClient.plugin.listPluginPresets();
|
||||||
|
|
||||||
for (let i = 0; i < presetPlugins.length; i++) {
|
for (let i = 0; i < presetPlugins.length; i++) {
|
||||||
pluginInstallMutate(presetPlugins[i]);
|
const presetPlugin = presetPlugins[i];
|
||||||
|
try {
|
||||||
|
await pluginInstallMutate(presetPlugin);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Failed to install plugin: ", presetPlugin.metadata.name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
@ -123,7 +131,8 @@ async function setupInitialData() {
|
||||||
|
|
||||||
await globalInfoStore.fetchGlobalInfo();
|
await globalInfoStore.fetchGlobalInfo();
|
||||||
|
|
||||||
router.push({ name: "Dashboard" });
|
// Reload page to fetch plugin's bundle files
|
||||||
|
window.location.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
|
|
Loading…
Reference in New Issue