diff --git a/src/store/settingsStore.ts b/src/store/settingsStore.ts index 7a80678..28cc5ad 100644 --- a/src/store/settingsStore.ts +++ b/src/store/settingsStore.ts @@ -24,6 +24,14 @@ export const useSettingsStore = defineStore('settings', () => { return item?.value ?? null } + function isSettingTruthy(key: string) { + const value = getSettingByKey(key) + if (value == null) { + return false + } + return value === true || String(value).toLowerCase() === 'true' + } + function mergeSettings(items?: AppSetting[] | null) { if (!items?.length) { return @@ -73,6 +81,7 @@ export const useSettingsStore = defineStore('settings', () => { fetchSettings, mergeSettings, getSettingByKey, + isSettingTruthy, metalTypeSettingValue, metalTypeLabel, meltedGoldLabel, diff --git a/src/views/base/home/composables/useHomePage.ts b/src/views/base/home/composables/useHomePage.ts index 1a645d3..b9ecf97 100644 --- a/src/views/base/home/composables/useHomePage.ts +++ b/src/views/base/home/composables/useHomePage.ts @@ -12,6 +12,7 @@ import { resolveAssetsRialValue, } from '@/utils/productAssets' import { useConfigStore } from '@/store/configStore' +import { useSettingsStore } from '@/store/settingsStore' import { getTradeBuyPrice, lastPrice, stopLastPricePolling } from '@/utils/price' import { getStoreClosedMessage, isStoreClosed } from '@/utils/storeHours' import { message, Modal } from 'ant-design-vue' @@ -30,6 +31,7 @@ import { resetProductsPageData } from '../../products/composables/useProductsPag export interface HomePageContext { homePageLoading: ReturnType['homePageLoading'] isGaroosi: ReturnType> + bannerEnabled: ReturnType> limitedPrice: ReturnType showClosedMessage: ReturnType> closedMessage: ReturnType @@ -57,6 +59,7 @@ export function useHomePage() { const userStore = useUserStore() const walletStore = useWalletStore() const configStore = useConfigStore() + const settingsStore = useSettingsStore() const { assetsSummary, clearWalletAssets } = useWalletAssets() const showLogoutConfirm = ref(false) @@ -77,6 +80,7 @@ export function useHomePage() { const isBoursecuHomeLayout = computed(() => getHomeLayoutId() === 'boursecu') const isGaroosi = computed(() => configStore.config?.name === 'garoosi') + const bannerEnabled = computed(() => settingsStore.isSettingTruthy('banner_enabled')) const closedMessage = computed(() => userStore.getValueByKey('closed_message')) const marketClosedText = computed(() => { if (!isStoreClosed()) return '' @@ -227,6 +231,7 @@ export function useHomePage() { const context: HomePageContext = { homePageLoading, isGaroosi, + bannerEnabled, limitedPrice, showClosedMessage, closedMessage: marketClosedText, diff --git a/src/views/base/home/desktop/components/DesktopBannersPanel.vue b/src/views/base/home/desktop/components/DesktopBannersPanel.vue index 07bc24a..9d476b7 100644 --- a/src/views/base/home/desktop/components/DesktopBannersPanel.vue +++ b/src/views/base/home/desktop/components/DesktopBannersPanel.vue @@ -9,7 +9,7 @@ const ctx = inject(HOME_PAGE_CONTEXT_KEY)!