[release-2.0] fix: ui is not updated after the theme is activated in the production (#753)

This is an automated cherry-pick of #746

/assign ruibaby

```release-note
修复 Console 端激活主题之后页面没有更新数据的问题。
```
pull/755/head
Halo Dev Bot 2022-12-07 11:48:52 +08:00 committed by GitHub
parent 18012cd33b
commit c51a1e4a98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 33 additions and 38 deletions

View File

@ -1,46 +1,41 @@
import { apiClient } from "@/utils/api-client";
import type { Theme } from "@halo-dev/api-client";
import { defineStore } from "pinia";
import { ref } from "vue";
interface ThemeStoreState {
activatedTheme?: Theme;
}
export const useThemeStore = defineStore("theme", () => {
const activatedTheme = ref<Theme>();
export const useThemeStore = defineStore("theme", {
state: (): ThemeStoreState => ({
activatedTheme: undefined,
}),
actions: {
async fetchActivatedTheme() {
try {
const { data } =
await apiClient.extension.configMap.getv1alpha1ConfigMap(
{
name: "system",
},
{ mute: true }
);
async function fetchActivatedTheme() {
try {
const { data } = await apiClient.extension.configMap.getv1alpha1ConfigMap(
{
name: "system",
},
{ mute: true }
);
if (!data.data?.theme) {
return;
}
const themeConfig = JSON.parse(data.data.theme);
const { data: themeData } =
await apiClient.extension.theme.getthemeHaloRunV1alpha1Theme(
{
name: themeConfig.active,
},
{
mute: true,
}
);
this.activatedTheme = themeData;
} catch (e) {
console.error("Failed to fetch active theme", e);
if (!data.data?.theme) {
return;
}
},
},
const themeConfig = JSON.parse(data.data.theme);
const { data: themeData } =
await apiClient.extension.theme.getthemeHaloRunV1alpha1Theme(
{
name: themeConfig.active,
},
{
mute: true,
}
);
activatedTheme.value = themeData;
} catch (e) {
console.error("Failed to fetch active theme", e);
}
}
return { activatedTheme, fetchActivatedTheme };
});