53 lines
1.6 KiB
TypeScript
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,
|
|
}
|