18 lines
605 B
TypeScript
18 lines
605 B
TypeScript
import { slugify } from './usePngExport'
|
|
|
|
/** Slugified, stable download name for a plan's TOML source. */
|
|
export function sourceFilename(title: string): string {
|
|
return `macroplan-${slugify(title) || 'plan'}.toml`
|
|
}
|
|
|
|
/** Download a plan's TOML source as a .toml file (client-side, no backend). */
|
|
export function downloadSource(source: string, filename: string): void {
|
|
const blob = new Blob([source], { type: 'text/plain;charset=utf-8' })
|
|
const url = URL.createObjectURL(blob)
|
|
const a = document.createElement('a')
|
|
a.href = url
|
|
a.download = filename
|
|
a.click()
|
|
URL.revokeObjectURL(url)
|
|
}
|