Allow saving without file open (Save as... prompt)

This commit is contained in:
2026-05-22 20:05:21 +02:00
parent 73144d4ef1
commit a3e4a08281
+17 -3
View File
@@ -58,8 +58,8 @@
<button @click="exportHTML" title="Export HTML">HTML</button>
<button @click="exportMD" title="Download .md">MD</button>
</div>
<button class="save-btn" :class="{dirty: isDirty}" @click="saveFile">
{{ isDirty ? 'Save*' : 'Saved' }}
<button class="save-btn" :class="{dirty: isDirty || (!currentFile && content)}" @click="saveFile">
{{ !currentFile && content ? 'Save as...' : isDirty ? 'Save*' : 'Saved' }}
</button>
</div>
</div>
@@ -308,7 +308,21 @@ async function openFile(path) {
}
async function saveFile() {
if (!currentFile.value) return
if (!currentFile.value) {
// No file open — prompt to create one
const name = prompt('Save as (e.g. notes.md):')
if (!name) return
let path = name
if (!path.endsWith('.md') && !path.endsWith('.txt')) {
path += '.md'
}
await api('/api/files/create', { path, content: content.value })
currentFile.value = path
isDirty.value = false
await loadFiles()
setTimeout(checkGitStatus, 1000)
return
}
await api('/api/files/write', { path: currentFile.value, content: content.value })
isDirty.value = false
setTimeout(checkGitStatus, 1000)