// export function getNameByLangCode(
//   text: Record<string, string> | null | undefined,
//   lang: string = 'en'
// ): string {

//   if (!text) return ''

//   const code = lang === 'km' ? 'kh' : lang   // normalize if needed

//   return text[code] ?? text.en ?? Object.values(text)[0] ?? ''
// }
export function getNameByLangCode(
  text: Record<string, string> | string | null | undefined,
  lang: string = 'en'
): string {

  if (!text) return ''

  let parsed: Record<string, string> | null = null

  // Case 1: Already object
  if (typeof text === 'object') {
    parsed = text
  }

  // Case 2: JSON string
  else if (typeof text === 'string') {
    try {
      const maybeObject = JSON.parse(text)
      if (typeof maybeObject === 'object') {
        parsed = maybeObject
      } else {
        return text // normal string fallback
      }
    } catch {
      return text // not JSON, return as-is
    }
  }

  if (!parsed) return ''

  const code = lang === 'km' ? 'kh' : lang

  return parsed[code] ?? parsed.en ?? Object.values(parsed)[0] ?? ''
}