Files
boursecu_admin/src/utils/adminHelpFormat.ts
T
2026-07-08 18:24:55 +03:30

41 lines
1.1 KiB
TypeScript

/** ساختار متن راهنما — توضیح + فرمول اختیاری در کادر جدا */
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')
}