diff --git a/apps/super-admin/src/pages/BusinessesPage.tsx b/apps/super-admin/src/pages/BusinessesPage.tsx index 5a41324..266e01b 100644 --- a/apps/super-admin/src/pages/BusinessesPage.tsx +++ b/apps/super-admin/src/pages/BusinessesPage.tsx @@ -43,17 +43,13 @@ import { import { listBusinessCategories } from '../services/categoryService' import { Modal } from '../components/Modal' import { MultiSelectDropdown } from '../components/MultiSelectDropdown' -import { PrimaryColorPicker } from '../components/PrimaryColorPicker' import { PrimaryColorSwatchControl } from '../components/PrimaryColorSwatchControl' import { useToast } from '../context/ToastContext' import { - DEFAULT_BUSINESS_PRIMARY_COLOR_ID, normalizeBusinessPrimaryColorId, type BusinessPrimaryColorId, } from '../utils/businessPrimaryColors' import { - getBusinessSettings, - updateBusinessBranding, updateBusinessDefaultLocale, updateBusinessModules, updateBusinessPrimaryColor, @@ -215,11 +211,8 @@ export function BusinessesPage() { const [editOpen, setEditOpen] = useState(false) const [editBusiness, setEditBusiness] = useState(null) const [editName, setEditName] = useState('') - const [editPrimaryColor, setEditPrimaryColor] = useState( - DEFAULT_BUSINESS_PRIMARY_COLOR_ID, - ) - const [editDefaultLocale, setEditDefaultLocale] = useState(DEFAULT_LOCALE) - const [editLoadingSettings, setEditLoadingSettings] = useState(false) + const [editNameFa, setEditNameFa] = useState('') + const [editAbout, setEditAbout] = useState('') const [editSubmitting, setEditSubmitting] = useState(false) const [editError, setEditError] = useState('') @@ -370,25 +363,10 @@ export function BusinessesPage() { function openEdit(b: BusinessListItem) { setEditBusiness(b) setEditName(b.name) - setEditPrimaryColor(normalizeBusinessPrimaryColorId(b.primaryColor)) - setEditDefaultLocale(normalizeDefaultLocale(b.defaultLocale)) + setEditNameFa(b.nameFa ?? '') + setEditAbout(b.about ?? '') setEditError('') setEditOpen(true) - setEditLoadingSettings(true) - - const controller = new AbortController() - void getBusinessSettings(b.id, controller.signal) - .then((data) => { - setEditPrimaryColor(data.settings.branding.primaryColor) - setEditDefaultLocale(normalizeDefaultLocale(data.settings.branding.defaultLocale)) - }) - .catch((err) => { - if (isAbortError(err)) return - setEditError(err instanceof ApiError ? err.message : 'Unable to load business theme.') - }) - .finally(() => { - if (!controller.signal.aborted) setEditLoadingSettings(false) - }) } function goToBusinessUsers(b: BusinessListItem, membership: 'staff' | 'all') { @@ -557,13 +535,17 @@ export function BusinessesPage() { async function submitEdit() { if (!editBusiness) return + const name = editName.trim() + const nameFa = editNameFa.trim() + if (!name || !nameFa) return + setEditSubmitting(true) setEditError('') try { - await updateBusiness(editBusiness.id, { name: editName }) - await updateBusinessBranding(editBusiness.id, { - primaryColor: editPrimaryColor, - defaultLocale: editDefaultLocale, + await updateBusiness(editBusiness.id, { + name, + nameFa, + about: editAbout.trim(), }) setData((prev) => { if (!prev) return prev @@ -573,9 +555,9 @@ export function BusinessesPage() { item.id === editBusiness.id ? { ...item, - name: editName.trim(), - primaryColor: editPrimaryColor, - defaultLocale: editDefaultLocale, + name, + nameFa, + about: editAbout.trim() || null, } : item, ), @@ -596,7 +578,7 @@ export function BusinessesPage() { setDomainBusiness(b) setDomainId(b.domainId) setDomainHost(b.domain ?? '') - setDomainGitRepoUrl('') + setDomainGitRepoUrl(b.gitRepoUrl ?? '') setDomainError('') setDomainOpen(true) } @@ -736,7 +718,15 @@ export function BusinessesPage() { setDomainError('') try { if (domainId) { - await updateBusinessDomain(domainBusiness.id, domainId, { host }) + const updated = (await updateBusinessDomain(domainBusiness.id, domainId, { + host, + ...(gitRepoUrl ? { gitRepoUrl } : {}), + })) as { + id: number + host: string + deploySlug?: string | null + provisionError?: string | null + } setData((prev) => { if (!prev) return prev return { @@ -746,7 +736,17 @@ export function BusinessesPage() { ), } }) - showToast(`Domain updated to "${host}".`, 'success') + if (updated.provisionError) { + showToast(`Domain updated to "${host}", but storefront setup failed.`, 'error') + showToast(updated.provisionError, 'error') + } else if (gitRepoUrl && updated.deploySlug) { + showToast( + `Domain updated. Storefront deploy is ready on Websites.`, + 'success', + ) + } else { + showToast(`Domain updated to "${host}".`, 'success') + } } else { const created = (await addBusinessDomain(domainBusiness.id, { host, @@ -1231,45 +1231,37 @@ export function BusinessesPage() {

) : null}
- + setEditName(e.target.value)} + placeholder="Business name" disabled={editSubmitting} />
- - {editLoadingSettings ? ( -

Loading theme...

- ) : ( - - )} + + setEditNameFa(e.target.value)} + placeholder="نام فارسی" + dir="rtl" + lang="fa" + disabled={editSubmitting} + />
- - {editLoadingSettings ? ( -

Loading language...

- ) : ( - - )} -

- Business and customer dashboards open in this language. -

+ +