mirror of https://github.com/halo-dev/halo-admin
fix: ui is not updated after the theme is activated in the production (#746)
#### What type of PR is this? /kind bug /milestone 2.0.1 #### What this PR does / why we need it: 修复在生产环境,激活主题之后,界面数据没有更新的问题。 #### Which issue(s) this PR fixes: Fixes https://github.com/halo-dev/halo/issues/2850 #### Special notes for your reviewer: 测试方式: 1. 使用 `pnpm build` 构建此 PR。 2. 在 Halo 配置 `halo.console.location` 为 Console 项目的 dist 目录,比如:`file:/Users/ryanwang/Workspace/github/ruibaby/halo-console/dist/` 3. 安装若干主题,激活其中一个,检查页面 UI 元素是否更新。 #### Does this PR introduce a user-facing change? ```release-note 修复 Console 端激活主题之后页面没有更新数据的问题。 ```pull/750/head^2
parent
7bbad8bd73
commit
26ed1ecf04
|
@ -1,46 +1,41 @@
|
||||||
import { apiClient } from "@/utils/api-client";
|
import { apiClient } from "@/utils/api-client";
|
||||||
import type { Theme } from "@halo-dev/api-client";
|
import type { Theme } from "@halo-dev/api-client";
|
||||||
import { defineStore } from "pinia";
|
import { defineStore } from "pinia";
|
||||||
|
import { ref } from "vue";
|
||||||
|
|
||||||
interface ThemeStoreState {
|
export const useThemeStore = defineStore("theme", () => {
|
||||||
activatedTheme?: Theme;
|
const activatedTheme = ref<Theme>();
|
||||||
}
|
|
||||||
|
|
||||||
export const useThemeStore = defineStore("theme", {
|
async function fetchActivatedTheme() {
|
||||||
state: (): ThemeStoreState => ({
|
try {
|
||||||
activatedTheme: undefined,
|
const { data } = await apiClient.extension.configMap.getv1alpha1ConfigMap(
|
||||||
}),
|
{
|
||||||
actions: {
|
name: "system",
|
||||||
async fetchActivatedTheme() {
|
},
|
||||||
try {
|
{ mute: true }
|
||||||
const { data } =
|
);
|
||||||
await apiClient.extension.configMap.getv1alpha1ConfigMap(
|
|
||||||
{
|
|
||||||
name: "system",
|
|
||||||
},
|
|
||||||
{ mute: true }
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!data.data?.theme) {
|
if (!data.data?.theme) {
|
||||||
return;
|
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);
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
},
|
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 };
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue