import colors from './baseColor.json' import { getConfigApp } from '@/utils/config' const prefixCls = 'noname' const baseButtonIconSize = '24' function readCachedTenantField(key: string): string { 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, }