Collect owner FA/EN names and clarify SSL status labels in super-admin.

Create business now requires both locales, and the businesses list shows FA and EN owner names when available.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-03 09:21:07 +03:30
co-authored by Cursor
parent 672091d1f5
commit 76d1cb7001
4 changed files with 68 additions and 15 deletions
+53 -10
View File
@@ -217,6 +217,8 @@ export function BusinessesPage() {
const [createCategoryIds, setCreateCategoryIds] = useState<number[]>([])
const [createOwnerFirstName, setCreateOwnerFirstName] = useState('')
const [createOwnerLastName, setCreateOwnerLastName] = useState('')
const [createOwnerFirstNameEn, setCreateOwnerFirstNameEn] = useState('')
const [createOwnerLastNameEn, setCreateOwnerLastNameEn] = useState('')
const [createOwnerCell, setCreateOwnerCell] = useState('')
const [createOwnerPassword, setCreateOwnerPassword] = useState('')
const [createSubmitting, setCreateSubmitting] = useState(false)
@@ -695,6 +697,8 @@ export function BusinessesPage() {
setCreateCategoryIds([])
setCreateOwnerFirstName('')
setCreateOwnerLastName('')
setCreateOwnerFirstNameEn('')
setCreateOwnerLastNameEn('')
setCreateOwnerCell('')
setCreateOwnerPassword('')
setCreateError('')
@@ -719,6 +723,8 @@ export function BusinessesPage() {
categoryIds: createCategoryIds,
ownerFirstName: createOwnerFirstName.trim(),
ownerLastName: createOwnerLastName.trim(),
ownerFirstNameEn: createOwnerFirstNameEn.trim(),
ownerLastNameEn: createOwnerLastNameEn.trim(),
ownerCellNumber,
ownerPassword: createOwnerPassword,
})
@@ -782,6 +788,8 @@ export function BusinessesPage() {
createCategoryIds.length > 0 &&
createOwnerFirstName.trim().length >= 2 &&
createOwnerLastName.trim().length >= 2 &&
createOwnerFirstNameEn.trim().length >= 2 &&
createOwnerLastNameEn.trim().length >= 2 &&
toE164CellNumber(createOwnerCell.trim()).length > 0 &&
createOwnerPassword.length >= 8
@@ -929,16 +937,16 @@ export function BusinessesPage() {
{b.sslEnabled ? (
<span
className={styles.sslIcon}
title="SSL enabled"
aria-label="SSL enabled"
title="SSL certificate valid"
aria-label="SSL certificate valid"
>
<Lock size={16} className={styles.sslOk} aria-hidden="true" />
</span>
) : (
<span
className={styles.sslIcon}
title="SSL not enabled"
aria-label="SSL not enabled"
title="SSL certificate missing or invalid"
aria-label="SSL certificate missing or invalid"
>
<AlertTriangle
size={16}
@@ -954,7 +962,12 @@ export function BusinessesPage() {
</td>
<td className={styles.td}>
<div className={styles.ownerCell}>
<div className={styles.ownerName}>{b.ownerName ?? '—'}</div>
<div className={`${styles.ownerName} faText`} dir="rtl" lang="fa">
{b.ownerName ?? '—'}
</div>
{b.ownerNameEn ? (
<div className={styles.ownerNameEn}>{b.ownerNameEn}</div>
) : null}
<div className={styles.ownerPhone}>
{b.ownerCellNumber ? formatCellForDisplay(b.ownerCellNumber) : '—'}
</div>
@@ -1488,21 +1501,51 @@ export function BusinessesPage() {
</div>
<div className={styles.field}>
<label htmlFor="create-owner-first-name">First name</label>
<label htmlFor="create-owner-first-name-en">First name (EN)</label>
<input
id="create-owner-first-name"
value={createOwnerFirstName}
onChange={(e) => setCreateOwnerFirstName(e.target.value)}
id="create-owner-first-name-en"
value={createOwnerFirstNameEn}
onChange={(e) => setCreateOwnerFirstNameEn(e.target.value)}
placeholder="First name"
disabled={createSubmitting}
/>
</div>
<div className={styles.field}>
<label htmlFor="create-owner-last-name">Last name</label>
<label htmlFor="create-owner-last-name-en">Last name (EN)</label>
<input
id="create-owner-last-name-en"
value={createOwnerLastNameEn}
onChange={(e) => setCreateOwnerLastNameEn(e.target.value)}
placeholder="Last name"
disabled={createSubmitting}
/>
</div>
<div className={styles.field}>
<label htmlFor="create-owner-first-name">First name (FA)</label>
<input
id="create-owner-first-name"
className="faText"
value={createOwnerFirstName}
onChange={(e) => setCreateOwnerFirstName(e.target.value)}
placeholder="نام"
dir="rtl"
lang="fa"
disabled={createSubmitting}
/>
</div>
<div className={styles.field}>
<label htmlFor="create-owner-last-name">Last name (FA)</label>
<input
id="create-owner-last-name"
className="faText"
value={createOwnerLastName}
onChange={(e) => setCreateOwnerLastName(e.target.value)}
placeholder="نام خانوادگی"
dir="rtl"
lang="fa"
disabled={createSubmitting}
/>
</div>