added some text handling 3

This commit is contained in:
2026-07-08 18:24:55 +03:30
parent 89e2643dff
commit 01437afa84
19 changed files with 683 additions and 168 deletions
+40
View File
@@ -0,0 +1,40 @@
/** ساختار متن راهنما — توضیح + فرمول اختیاری در کادر جدا */
export type AdminHelpContent = {
description: string
formula?: string
}
const FORMULA_MARKER = '\n\n__FORMULA__\n'
export function adminHelp(description: string, formula?: string): string {
const body = description.trim()
if (!formula?.trim()) return body
return `${body}${FORMULA_MARKER}${formula.trim()}`
}
export function parseAdminHelp(input: string | AdminHelpContent | undefined | null): AdminHelpContent {
if (!input) return { description: '' }
if (typeof input !== 'string') {
return {
description: input.description?.trim() ?? '',
formula: input.formula?.trim() || undefined,
}
}
const marked = input.split(FORMULA_MARKER)
if (marked.length === 2) {
return {
description: marked[0].trim(),
formula: marked[1].trim() || undefined,
}
}
return { description: input.trim() }
}
export function adminHelpPlainText(content: AdminHelpContent): string {
const parts = [content.description].filter(Boolean)
if (content.formula) parts.push(content.formula)
return parts.join('\n\n')
}