28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
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 }
|
||
|
|
}
|