fixed back button and coloring
This commit is contained in:
@@ -3,11 +3,7 @@ import AdminLayout from '../../layouts/AdminLayout.astro';
|
||||
---
|
||||
|
||||
<AdminLayout title="Write Post">
|
||||
<!-- CodeMirror Assets -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/codemirror.min.css" slot="header-subtitle">
|
||||
<script is:inline src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/codemirror.min.js" slot="header-subtitle"></script>
|
||||
<script is:inline src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/mode/markdown/markdown.min.js" slot="header-subtitle"></script>
|
||||
<script is:inline src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/keymap/vim.min.js" slot="header-subtitle"></script>
|
||||
<p slot="header-subtitle" id="post-status" class="text-subtext1 mt-2 text-sm md:text-base">Create a new masterpiece.</p>
|
||||
|
||||
<div slot="header-actions" class="flex gap-4 w-full">
|
||||
<button id="delete-btn" class="hidden text-red hover:bg-red/10 px-6 py-3 rounded-lg transition-colors font-bold border border-red/20 w-full md:w-auto">
|
||||
@@ -19,6 +15,15 @@ import AdminLayout from '../../layouts/AdminLayout.astro';
|
||||
>
|
||||
Save Post
|
||||
</button>
|
||||
<a
|
||||
id="view-post-btn"
|
||||
href="#"
|
||||
target="_blank"
|
||||
class="hidden bg-blue text-crust font-bold py-3 px-8 rounded-lg hover:bg-sky transition-all transform hover:scale-105 w-full md:w-auto whitespace-nowrap items-center justify-center gap-2"
|
||||
>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" x2="14" y2="10" x2="21" y2="3"/></svg>
|
||||
View Post
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="alert" class="hidden p-4 rounded-lg mb-6"></div>
|
||||
@@ -123,6 +128,7 @@ import AdminLayout from '../../layouts/AdminLayout.astro';
|
||||
const fileInput = document.getElementById('file-upload') as HTMLInputElement;
|
||||
const saveBtn = document.getElementById('save-btn');
|
||||
const delBtn = document.getElementById('delete-btn');
|
||||
const viewPostBtn = document.getElementById('view-post-btn') as HTMLAnchorElement;
|
||||
const browseBtn = document.getElementById('browse-btn');
|
||||
const assetsModal = document.getElementById('assets-modal');
|
||||
const closeModal = document.getElementById('close-modal');
|
||||
@@ -150,8 +156,8 @@ import AdminLayout from '../../layouts/AdminLayout.astro';
|
||||
if (res.ok) {
|
||||
allAssets = await res.json();
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Failed to fetch assets", e);
|
||||
} catch (err) {
|
||||
console.error("Failed to fetch assets", err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,8 +278,8 @@ import AdminLayout from '../../layouts/AdminLayout.astro';
|
||||
autocomplete?.classList.add('hidden');
|
||||
}
|
||||
|
||||
window.addEventListener('click', (e) => {
|
||||
if (!autocomplete?.contains(e.target as Node)) {
|
||||
window.addEventListener('click', (ev) => {
|
||||
if (!autocomplete?.contains(ev.target as Node)) {
|
||||
hideAutocomplete();
|
||||
}
|
||||
});
|
||||
@@ -325,8 +331,16 @@ import AdminLayout from '../../layouts/AdminLayout.astro';
|
||||
},
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
if (res.ok) showAlert('Post saved!', 'success');
|
||||
else showAlert('Error saving post.', 'error');
|
||||
if (res.ok) {
|
||||
showAlert('Post saved!', 'success');
|
||||
if (viewPostBtn) {
|
||||
viewPostBtn.href = `/posts/${payload.slug}`;
|
||||
viewPostBtn.classList.remove('hidden');
|
||||
viewPostBtn.classList.add('inline-flex');
|
||||
}
|
||||
} else {
|
||||
showAlert('Error saving post.', 'error');
|
||||
}
|
||||
} catch (err) {
|
||||
showAlert('Failed to connect to server.', 'error');
|
||||
}
|
||||
@@ -353,6 +367,13 @@ import AdminLayout from '../../layouts/AdminLayout.astro';
|
||||
slugInput.value = editSlug;
|
||||
slugInput.disabled = true; // Protect slug on edit
|
||||
delBtn?.classList.remove('hidden');
|
||||
|
||||
if (viewPostBtn) {
|
||||
viewPostBtn.href = `/posts/${editSlug}`;
|
||||
viewPostBtn.classList.remove('hidden');
|
||||
viewPostBtn.classList.add('inline-flex');
|
||||
}
|
||||
|
||||
fetch(`/api/posts/${encodeURIComponent(editSlug)}`)
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
|
||||
Reference in New Issue
Block a user