Add business modules column and selectable home charts.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
a48a24e6f2
commit
0a2358b0c2
@@ -15,12 +15,22 @@ import { getBusinessDomain } from '../lib/config'
|
||||
import { BUSINESS_PROFILE_UPDATED_EVENT } from '../lib/businessContext'
|
||||
import { getBusinessProfile } from '../services/businessProfileService'
|
||||
import { resolveTenantByDomain } from '../services/tenantService'
|
||||
import {
|
||||
DEFAULT_ENABLED_BUSINESS_MODULES,
|
||||
DEFAULT_HOME_CHARTS,
|
||||
normalizeEnabledBusinessModules,
|
||||
normalizeHomeCharts,
|
||||
type BusinessModuleId,
|
||||
type HomeChartId,
|
||||
} from '../utils/businessModules'
|
||||
|
||||
interface TenantBrandingContextValue {
|
||||
businessName: string
|
||||
businessNameEn: string
|
||||
logoUrl: string | null
|
||||
faviconUrl: string | null
|
||||
enabledModules: BusinessModuleId[]
|
||||
homeCharts: [HomeChartId, HomeChartId]
|
||||
refreshBranding: () => void
|
||||
}
|
||||
|
||||
@@ -42,6 +52,12 @@ export function TenantBrandingProvider({ children }: { children: ReactNode }) {
|
||||
const [nameFa, setNameFa] = useState('')
|
||||
const [logoUrl, setLogoUrl] = useState<string | null>(null)
|
||||
const [faviconUrl, setFaviconUrl] = useState<string | null>(null)
|
||||
const [enabledModules, setEnabledModules] = useState<BusinessModuleId[]>(
|
||||
DEFAULT_ENABLED_BUSINESS_MODULES,
|
||||
)
|
||||
const [homeCharts, setHomeCharts] = useState<[HomeChartId, HomeChartId]>([
|
||||
...DEFAULT_HOME_CHARTS,
|
||||
])
|
||||
const [refreshToken, setRefreshToken] = useState(0)
|
||||
const defaultLocaleAppliedRef = useRef(false)
|
||||
|
||||
@@ -95,6 +111,8 @@ export function TenantBrandingProvider({ children }: { children: ReactNode }) {
|
||||
setNameFa(nextNameFa || nextNameEn || domain)
|
||||
setLogoUrl(nextLogo)
|
||||
setFaviconUrl(nextFavicon)
|
||||
setEnabledModules(normalizeEnabledBusinessModules(tenant.enabledModules))
|
||||
setHomeCharts(normalizeHomeCharts(tenant.homeCharts))
|
||||
applyDocumentFavicon(nextFavicon)
|
||||
if (!defaultLocaleAppliedRef.current) {
|
||||
defaultLocaleAppliedRef.current = true
|
||||
@@ -112,6 +130,8 @@ export function TenantBrandingProvider({ children }: { children: ReactNode }) {
|
||||
setNameFa(domain)
|
||||
setLogoUrl(null)
|
||||
setFaviconUrl(null)
|
||||
setEnabledModules([...DEFAULT_ENABLED_BUSINESS_MODULES])
|
||||
setHomeCharts([...DEFAULT_HOME_CHARTS])
|
||||
applyDocumentFavicon(null)
|
||||
}
|
||||
}
|
||||
@@ -142,8 +162,24 @@ export function TenantBrandingProvider({ children }: { children: ReactNode }) {
|
||||
)
|
||||
|
||||
const value = useMemo(
|
||||
() => ({ businessName, businessNameEn, logoUrl, faviconUrl, refreshBranding }),
|
||||
[businessName, businessNameEn, logoUrl, faviconUrl, refreshBranding],
|
||||
() => ({
|
||||
businessName,
|
||||
businessNameEn,
|
||||
logoUrl,
|
||||
faviconUrl,
|
||||
enabledModules,
|
||||
homeCharts,
|
||||
refreshBranding,
|
||||
}),
|
||||
[
|
||||
businessName,
|
||||
businessNameEn,
|
||||
logoUrl,
|
||||
faviconUrl,
|
||||
enabledModules,
|
||||
homeCharts,
|
||||
refreshBranding,
|
||||
],
|
||||
)
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user