/**
 * 当 File System Access「另存为」不可用时（典型：HTTP 公网域名），
 * 用浏览器下载代替，避免保存流程完全失败。
 */
export function downloadTextFile(fileName: string, content: string): void {
  const safe = fileName.replace(/[/\\<>|:*?"\u0000-\u001f]/g, '_').trim() || '未命名.md'
  const blob = new Blob([content], { type: 'text/markdown;charset=utf-8' })
  const url = URL.createObjectURL(blob)
  const a = document.createElement('a')
  a.href = url
  a.download = safe
  a.style.display = 'none'
  document.body.appendChild(a)
  a.click()
  a.remove()
  URL.revokeObjectURL(url)
}

/** 当前页面不在「安全上下文」时（如 http://域名，非 localhost），FSA 不可用。 */
export function lacksFileSystemAccessContext(): boolean {
  return typeof globalThis.isSecureContext === 'boolean' && !globalThis.isSecureContext
}

export function fileNameFromPath(filePath: string | null): string {
  if (!filePath) return '未命名.md'
  const base = filePath.replace(/\\/g, '/').split('/').pop()?.trim() || '未命名.md'
  return base || '未命名.md'
}
