Guest User

Tried

a guest
Dec 10th, 2025
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. // Composable : useWhitelabel.ts:
  2. export interface WhitelabelConfig {
  3. tenantName: string
  4. logo: {
  5. light: string
  6. dark: string
  7. }
  8. favicon: string
  9.  
  10. primaryColor: string
  11. neutralColor: string
  12.  
  13. features: {
  14. showThemeCustomizer: boolean
  15. showTemplatesMenu: boolean
  16. showDocumentation: boolean
  17. customMenuItems?: Array<{
  18. label: string
  19. icon: string
  20. to: string
  21. target?: string
  22. }>
  23. }
  24. }
  25.  
  26. export function useWhitelabel() {
  27. const config = useState<WhitelabelConfig | null>('whitelabel-config', () => null)
  28. const appConfig = useAppConfig()
  29.  
  30. async function loadWhitelabelConfig() {
  31. try {
  32. const { data } = await useFetch<WhitelabelConfig>('/api/whitelabel')
  33.  
  34. if (data.value) {
  35. config.value = data.value
  36.  
  37. if (data.value.primaryColor) {
  38. appConfig.ui.colors.primary = data.value.primaryColor
  39. }
  40. if (data.value.neutralColor) {
  41. appConfig.ui.colors.neutral = data.value.neutralColor
  42. }
  43. }
  44. } catch (error) {
  45. console.error('Failed to load whitelabel config:', error)
  46. }
  47. }
  48.  
  49. return {
  50. config: readonly(config),
  51. loadWhitelabelConfig
  52. }
  53. }
  54.  
  55.  
  56. ////////////////////////////////////////////////////////////////////////
  57.  
  58. // Plugin : whitelabel.client.ts:
  59. export default defineNuxtPlugin(async () => {
  60. const { loadWhitelabelConfig } = useWhitelabel()
  61.  
  62. await loadWhitelabelConfig()
  63. })
  64.  
  65.  
Advertisement
Add Comment
Please, Sign In to add comment