This commit is contained in:
2024-08-15 16:38:50 +02:00
parent 4afd833276
commit 22f24e92c3
19 changed files with 148 additions and 69 deletions

View File

@@ -42,20 +42,31 @@
value: branch
}));
async function createBranch() {
const name = prompt("Branch name:");
if (name) {
selected = null;
await $pageRepo.createBranch(name);
let inter = setInterval(() => {
branches.reload();
if ($branches.includes(name)) {
selectedBranch = name;
searchValue = "";
clearInterval(inter);
async function createBranch(name: string | null = null): Promise<string> {
return new Promise(async (resolve) => {
if (!name) {
name = prompt("Branch name:");
if (!name) {
resolve("");
return;
}
}, 1000);
}
}
if (name) {
selected = null;
await $pageRepo.createBranch(name);
let inter = setInterval(() => {
branches.reload();
if ($branches.includes(name!)) {
selectedBranch = name!;
searchValue = "";
clearInterval(inter);
resolve(name!);
}
}, 1000);
}
})
}
function changePage(id: number) {
@@ -101,6 +112,33 @@
selectedBranch = "###!";
selectedBranch = w;
}
async function newAnnouncement() {
const title = prompt("Title: ");
if (!title) {
return;
}
const slug = title.toLowerCase().replace(/ /g, "-");
const branch = await createBranch(slug)
selectedPath = "announcements/de/"
await $pageRepo.createFile(`${selectedPath}${slug}.md`, branch, slug, title);
reload();
const pages = await $pageRepo.listPages(branch);
const page = pages.find(page => page.path === `${selectedPath}${slug}.md`);
if (page) {
changePage(page.id);
} else {
alert("Error creating page");
}
}
</script>
<div class="flex flex-col h-screen overflow-scroll">
@@ -139,10 +177,6 @@
<ul>
{#if (selectedPath)}
{@const value = pagesMap.get(selectedPath) || []}
{#if value.length === 0}
<li class="p-4">No pages found</li>
<li class="p-4">Select a path on the top</li>
{/if}
{#each value as page}
{@const nameRegexExec = nameRegex.exec(page.path)}
{@const match = nameRegexExec ? nameRegexExec[0] : ""}
@@ -156,6 +190,8 @@
class:text-orange-600={selected === page.id}>{page.path.substring(endIndex, page.path.length)}</span>
</li>
{/each}
{:else}
<Button on:click={newAnnouncement}>Neue Ankündigung</Button>
{/if}
</ul>
{:catch error}