feat(user): about software page, enamad badge, and deal sheet UI polish
Add public about-software flow, login-only enamad, and deal buy/sell UI refinements for the store user app.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
export function getDefaultAboutSoftwareText(projectName: string) {
|
||||
const name = projectName.trim() || 'این نرمافزار'
|
||||
return `${name} بستری امن و آنلاین برای خرید و فروش طلا فراهم کرده تا کاربران بتوانند سرمایههای خود را بهسادگی مدیریت کنند.\n\nهدف ما ارائه تجربهای سریع، شفاف و کاربرپسند در معاملات طلا است.`
|
||||
}
|
||||
|
||||
function looksLikeHtml(value: string) {
|
||||
return /<\/?[a-z][\s\S]*>/i.test(value)
|
||||
}
|
||||
|
||||
export type AboutSoftwareBody =
|
||||
| { kind: 'html'; html: string }
|
||||
| { kind: 'text'; text: string }
|
||||
|
||||
/** اولویت با تنظیم about_software؛ در صورت خالی بودن، متن پیشفرض */
|
||||
export function resolveAboutSoftwareBody(
|
||||
raw: unknown,
|
||||
projectName: string,
|
||||
): AboutSoftwareBody {
|
||||
const value = String(raw ?? '').trim()
|
||||
if (!value) {
|
||||
return { kind: 'text', text: getDefaultAboutSoftwareText(projectName) }
|
||||
}
|
||||
if (looksLikeHtml(value)) {
|
||||
return { kind: 'html', html: value }
|
||||
}
|
||||
return { kind: 'text', text: value }
|
||||
}
|
||||
Reference in New Issue
Block a user