feat(get-user): emit brand_chrome for Hamkar brandManaged opt-in
Expose brand_chrome so apps apply header/menu/body colors only after SuperAdmin color save. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -207,11 +207,13 @@ async function main() {
|
|||||||
|
|
||||||
if (tenant.product === 'hamkar') {
|
if (tenant.product === 'hamkar') {
|
||||||
const managed = existingUi?.kind === 'hamkar' && existingUi?.settingsManaged === true
|
const managed = existingUi?.kind === 'hamkar' && existingUi?.settingsManaged === true
|
||||||
|
const brandManaged = existingUi?.kind === 'hamkar' && existingUi?.brandManaged === true
|
||||||
const built = buildHamkarUiFromBrand({
|
const built = buildHamkarUiFromBrand({
|
||||||
primaryColor: primary,
|
primaryColor: primary,
|
||||||
secondaryColor: secondary,
|
secondaryColor: secondary,
|
||||||
backgroundColor: background,
|
backgroundColor: background,
|
||||||
settingsManaged: managed,
|
settingsManaged: managed,
|
||||||
|
brandManaged,
|
||||||
registryMode: registryMode || existingUi?.registryMode || 'dynamicMode',
|
registryMode: registryMode || existingUi?.registryMode || 'dynamicMode',
|
||||||
settings: managed ? existingUi.settings : undefined,
|
settings: managed ? existingUi.settings : undefined,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ export function buildHamkarUiFromBrand(input: {
|
|||||||
secondaryColor?: string | null
|
secondaryColor?: string | null
|
||||||
backgroundColor?: string | null
|
backgroundColor?: string | null
|
||||||
settingsManaged?: boolean
|
settingsManaged?: boolean
|
||||||
|
brandManaged?: boolean
|
||||||
registryMode?: string | null
|
registryMode?: string | null
|
||||||
settings?: {
|
settings?: {
|
||||||
pricing_box_theme?: string
|
pricing_box_theme?: string
|
||||||
@@ -57,6 +58,7 @@ export function buildHamkarUiFromBrand(input: {
|
|||||||
const base = {
|
const base = {
|
||||||
kind: 'hamkar' as const,
|
kind: 'hamkar' as const,
|
||||||
settingsManaged: Boolean(input.settingsManaged),
|
settingsManaged: Boolean(input.settingsManaged),
|
||||||
|
brandManaged: Boolean(input.brandManaged),
|
||||||
registryMode: input.registryMode || 'dynamicMode',
|
registryMode: input.registryMode || 'dynamicMode',
|
||||||
brand: {
|
brand: {
|
||||||
// Keep nulls — do NOT invent #1d4ed8 (causes wrong accent vs live registry)
|
// Keep nulls — do NOT invent #1d4ed8 (causes wrong accent vs live registry)
|
||||||
|
|||||||
@@ -171,6 +171,7 @@ async function main() {
|
|||||||
? keepSnapshot.brand?.backgroundColor
|
? keepSnapshot.brand?.backgroundColor
|
||||||
: existing?.brand?.backgroundColor ?? brandBackground,
|
: existing?.brand?.backgroundColor ?? brandBackground,
|
||||||
settingsManaged: Boolean(existing?.settingsManaged),
|
settingsManaged: Boolean(existing?.settingsManaged),
|
||||||
|
brandManaged: Boolean(existing?.brandManaged),
|
||||||
registryMode: restore
|
registryMode: restore
|
||||||
? keepSnapshot.registryMode
|
? keepSnapshot.registryMode
|
||||||
: existing?.registryMode || registryMode,
|
: existing?.registryMode || registryMode,
|
||||||
|
|||||||
@@ -122,6 +122,12 @@ export class GetUserService {
|
|||||||
: undefined,
|
: undefined,
|
||||||
/** Laravel-compatible overlay; Hamkar merges only when present */
|
/** Laravel-compatible overlay; Hamkar merges only when present */
|
||||||
ui_settings: uiSettings.length ? uiSettings : undefined,
|
ui_settings: uiSettings.length ? uiSettings : undefined,
|
||||||
|
/**
|
||||||
|
* Hamkar only: when true, apply brand colors to mobile header+menu and page body
|
||||||
|
* (including theme-two). Absent/false → keep factory chrome (no visual jump).
|
||||||
|
*/
|
||||||
|
brand_chrome:
|
||||||
|
isHamkarUi && ui?.brandManaged === true ? true : undefined,
|
||||||
/** Admin expiry modals — near/expired server, plugin, support */
|
/** Admin expiry modals — near/expired server, plugin, support */
|
||||||
subscription_alerts,
|
subscription_alerts,
|
||||||
plugin_store_enabled: isKhanegi
|
plugin_store_enabled: isKhanegi
|
||||||
|
|||||||
Reference in New Issue
Block a user