Files
boursecu_user/src/utils/config.ts
T

242 lines
6.8 KiB
TypeScript
Raw Normal View History

import boursecuLogo from '@/assets/img/boursemes_logofull.png'
import boursecuSplashLogo from '@/assets/img/boursemes-splash.png'
import boursecuLoginLogo from '@/assets/img/boursemes-login.png'
2026-06-16 17:01:35 +03:30
import boursecuTransactionsIcon from '@/assets/img/boursecu-transactions-icon.png'
import boursecuPhysicalReceiveIcon from '@/assets/img/boursecu-physical-receive-icon.png'
import boursecuConvertIcon from '@/assets/img/boursecu-convert-icon.png'
import boursecuWalletIcon from '@/assets/img/boursecu-wallet-icon.png'
import boursecuBuySellIcon from '@/assets/img/boursecu-buy-sell-icon.png'
import boursecuAssetsIcon from '@/assets/img/boursecu-assets-icon.png'
import bazretalaLoginLogo from '@/assets/img/bazretala-login-logo.png'
import bazretalaNavLogo from '@/assets/img/bazretala-nav-logo.png'
import bazretalaFundBg from '@/assets/img/bazretala-fund-bg.png'
import bazretalaEmptyFund from '@/assets/img/bazretala-empty-fund.png'
2026-01-21 19:38:50 +03:30
export function getConfigApp(key: string) {
const config = window.__APP_CONFIG__ ? window.__APP_CONFIG__.user:{}
if (config) {
return config[key]
}
return null
}
export function isBoursecuProject() {
return getConfigApp('name') === 'boursecu'
}
export function isBazretalaProject() {
return getConfigApp('name') === 'bazretala'
}
2026-06-16 17:01:35 +03:30
export function getBoursecuTransactionsIcon() {
return boursecuTransactionsIcon
}
export function getBoursecuPhysicalReceiveIcon() {
return boursecuPhysicalReceiveIcon
}
export function getBoursecuConvertIcon() {
return boursecuConvertIcon
}
export function getBoursecuWalletIcon() {
return boursecuWalletIcon
}
export function getBoursecuBuySellIcon() {
return boursecuBuySellIcon
}
export function getBoursecuAssetsIcon() {
return boursecuAssetsIcon
}
export function getBoursecuActionIconSrc(actionId: string): string | undefined {
const icons: Record<string, string> = {
buySell: boursecuBuySellIcon,
wallet: boursecuWalletIcon,
assets: boursecuAssetsIcon,
transactions: boursecuTransactionsIcon,
physicalReceive: boursecuPhysicalReceiveIcon,
convert: boursecuConvertIcon,
}
return icons[actionId]
}
export function hasCustomLoginLogoLayout() {
return isBoursecuProject() || isBazretalaProject()
}
2026-06-01 09:48:39 +03:30
export const BOURSECU_BRAND_RED = '#bc3c3b'
export const BOURSECU_BRAND_NAV = '#133050'
export function getProjectBrandRed() {
return isBoursecuProject() ? BOURSECU_BRAND_RED : null
}
export function resolveProjectColor(color?: string | null) {
if (!color || !isBoursecuProject()) {
return color
}
if (color === 'red' || color.startsWith('red-')) {
return BOURSECU_BRAND_RED
}
return color
}
export function getProjectLoginLogo(avatar?: string | null) {
if (isBoursecuProject()) {
return boursecuLoginLogo
}
if (isBazretalaProject()) {
return bazretalaLoginLogo
}
return avatar ?? getConfigApp('avatar')
}
/** لوگوی صفحه لودینگ اولیه — جدا از لوگوی لاگین/ناوبری */
export function getProjectSplashLogo(avatar?: string | null) {
if (isBoursecuProject()) {
return boursecuSplashLogo
}
return getProjectLoginLogo(avatar)
}
export function getProjectNavLogo(avatar?: string | null) {
if (isBazretalaProject()) {
return bazretalaNavLogo
}
if (isBoursecuProject()) {
return boursecuLogo
}
return avatar ?? getConfigApp('avatar')
}
/** لوگوی ناوبری موبایل — boursecu همان لوگوی لاگین (پس‌زمینه سفید) */
export function getProjectMobileNavLogo(avatar?: string | null) {
if (isBoursecuProject()) {
return boursecuLoginLogo
}
return getProjectNavLogo(avatar)
}
export const BAZRETALA_SUPPORT_PHONE = '09121784258'
export function getProjectSupportPhone() {
if (isBazretalaProject()) {
return BAZRETALA_SUPPORT_PHONE
}
return ''
}
export function getProjectSupportPhoneLink() {
const phone = getProjectSupportPhone()
return phone ? `tel:${phone}` : 'tel:'
}
export const BAZRETALA_BALE_ID = 'bazretala'
export function getProjectBaleLink() {
if (isBazretalaProject()) {
return `https://ble.ir/${BAZRETALA_BALE_ID}`
}
return 'https://ble.ir/'
}
2026-06-17 16:04:01 +03:30
export function getProjectBaleContactLink() {
2026-06-18 20:48:22 +03:30
// if (getConfigApp('name') === 'garoosi') {
// return 'https://ble.ir/garoosigallery'
// }
2026-06-17 16:04:01 +03:30
return getProjectBaleLink()
}
/** لینک دکمه «تماس با پشتیبانی» — bazretala به بله، garoosi تماس، بقیه تلفن پشتیبانی */
export function getProjectSupportContactLink() {
if (isBazretalaProject()) {
return getProjectBaleLink()
}
if (getConfigApp('name') === 'garoosi') {
return 'tel:09031265925'
}
return getProjectSupportPhoneLink()
}
export function getProjectFundHeaderBackground(defaultBackground: string) {
if (isBazretalaProject()) {
return bazretalaFundBg
}
return defaultBackground
}
export function getProjectFundEmptyImage(defaultImage: string) {
if (isBazretalaProject()) {
return bazretalaEmptyFund
}
return defaultImage
}
export function getProjectFundEmptyText() {
if (isBazretalaProject()) {
return 'یک بذر جدید بکار!'
}
return 'یک گنج جدید بساز!'
}
export function getProjectLoginTaglineLines() {
if (!isBoursecuProject()) {
return null
}
return [
'مرجع هوشمند معاملات',
2026-06-01 09:48:39 +03:30
' و سرمایه‌گذاری در صنعت مس',
]
}
export function getProjectSplashBackground() {
2026-06-01 09:48:39 +03:30
return isBoursecuProject() ? BOURSECU_BRAND_NAV : '#ffffff'
}
/** Reset splash-time inline backgrounds so mobile overscroll shows white again. */
export function resetAppSurfaceBackground() {
const background = '#ffffff'
document.documentElement.style.backgroundColor = background
document.body.style.backgroundColor = background
const metaTheme = document.querySelector('meta[name="theme-color"]')
if (metaTheme) {
metaTheme.setAttribute('content', background)
}
}
export function getProjectFontFamily() {
return getConfigApp('name') === 'boursecu' ? "'dana', sans-serif" : "'iran-sans', sans-serif"
}
export function applyProjectFont() {
document.documentElement.style.setProperty('--App-font-family', getProjectFontFamily())
if (getConfigApp('name') === 'boursecu') {
document.documentElement.classList.add('font-dana')
}
}
2026-06-01 09:48:39 +03:30
export function applyProjectTheme() {
applyProjectFont()
if (!isBoursecuProject()) {
return
}
document.documentElement.classList.add('project-boursecu')
document.documentElement.style.setProperty('--App-brand-nav', BOURSECU_BRAND_NAV)
2026-06-01 09:48:39 +03:30
document.documentElement.style.setProperty('--App-brand-red', BOURSECU_BRAND_RED)
document.documentElement.style.setProperty('--App-brand-red-50', '#f8ecec')
document.documentElement.style.setProperty('--App-brand-red-100', '#f0d8d8')
document.documentElement.style.setProperty('--App-brand-red-700', '#963130')
}