Files
boursecu_landing/src/themeConfig.ts
T

53 lines
1.6 KiB
TypeScript

import colors from './baseColor.json'
import { getConfigApp } from '@/utils/config'
const prefixCls = 'noname'
const baseButtonIconSize = '24'
function readCachedTenantField(key: string): string {
if (!import.meta.client) return ''
try {
const cookie = document.cookie.split('; ').find((row) => row.startsWith('APP_CONFIG_CACHE='))
if (!cookie) return ''
const payload = JSON.parse(decodeURIComponent(cookie.slice('APP_CONFIG_CACHE='.length)))
const user = payload?.config?.user
const value = user?.[key]
return value != null ? String(value) : ''
} catch {
return ''
}
}
export function resolveProjectBase(): string {
return getConfigApp('node_server') || readCachedTenantField('node_server') || ''
}
/** fallback خالی — useAxios در هر درخواست node_server را از config می‌گیرد */
export const baseURL = ''
export function getAvatarUploadURL(): string {
const base = resolveProjectBase().replace(/\/$/, '')
return base ? `${base}/customer/avatar` : '/customer/avatar'
}
/** کلید ثابت — وقتی config پاک می‌شود (به‌روزرسانی نسخه) توکن گم نشود */
export const SESSION_AUTH_KEY = 'customer_session_token'
export const LEGACY_TOKEN_SUFFIX = '_app_token'
export function getTokenName(): string {
const name = readCachedTenantField('name') || getConfigApp('name') || 'app'
return `${name}${LEGACY_TOKEN_SUFFIX}`
}
/** @deprecated از getTokenName() استفاده کن */
export const tokenName = 'app_app_token'
export {
prefixCls,
colors,
baseButtonIconSize,
}