Code Cleanup™
This commit is contained in:
@@ -40,68 +40,69 @@
|
||||
$: availableBranches = $branches.map((branch) => ({
|
||||
name: branch,
|
||||
value: branch
|
||||
}))
|
||||
}));
|
||||
|
||||
async function createBranch() {
|
||||
const name = prompt("Branch name:")
|
||||
const name = prompt("Branch name:");
|
||||
if (name) {
|
||||
selected = null
|
||||
await $pageRepo.createBranch(name)
|
||||
selected = null;
|
||||
await $pageRepo.createBranch(name);
|
||||
let inter = setInterval(() => {
|
||||
branches.reload()
|
||||
branches.reload();
|
||||
if ($branches.includes(name)) {
|
||||
selectedBranch = name
|
||||
searchValue = ""
|
||||
clearInterval(inter)
|
||||
selectedBranch = name;
|
||||
searchValue = "";
|
||||
clearInterval(inter);
|
||||
}
|
||||
}, 1000)
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function changePage(id: number) {
|
||||
if (dirty) {
|
||||
if (confirm("You have unsaved changes. Are you sure you want to change the page?")) {
|
||||
selected = id
|
||||
dirty = false
|
||||
selected = id;
|
||||
dirty = false;
|
||||
}
|
||||
} else {
|
||||
selected = id
|
||||
selected = id;
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteBranch(con: boolean) {
|
||||
if (selectedBranch !== "master") {
|
||||
let conf = con || confirm("Are you sure you want to delete this branch?")
|
||||
if(conf) {
|
||||
await $pageRepo.deleteBranch(selectedBranch)
|
||||
let conf = con || confirm("Are you sure you want to delete this branch?");
|
||||
if (conf) {
|
||||
await $pageRepo.deleteBranch(selectedBranch);
|
||||
let inter = setInterval(() => {
|
||||
branches.reload()
|
||||
branches.reload();
|
||||
if (!$branches.includes(selectedBranch)) {
|
||||
selectedBranch = "master"
|
||||
searchValue = ""
|
||||
clearInterval(inter)
|
||||
selectedBranch = "master";
|
||||
searchValue = "";
|
||||
clearInterval(inter);
|
||||
}
|
||||
}, 1000)
|
||||
}, 1000);
|
||||
}
|
||||
} else {
|
||||
alert("You can't delete the master branch")
|
||||
alert("You can't delete the master branch");
|
||||
}
|
||||
}
|
||||
|
||||
async function createFile() {
|
||||
let name = prompt("File name:", "[Name].md")
|
||||
let name = prompt("File name:", "[Name].md");
|
||||
if (name) {
|
||||
await $pageRepo.createFile(`${selectedPath}${name}`, selectedBranch)
|
||||
reload()
|
||||
await $pageRepo.createFile(`${selectedPath}${name}`, selectedBranch);
|
||||
reload();
|
||||
}
|
||||
}
|
||||
|
||||
function reload() {
|
||||
const w = selectedBranch
|
||||
selectedBranch = "###!"
|
||||
selectedBranch = w
|
||||
const w = selectedBranch;
|
||||
selectedBranch = "###!";
|
||||
selectedBranch = w;
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="flex flex-col h-screen overflow-scroll">
|
||||
<Navbar>
|
||||
<NavBrand href="#">
|
||||
@@ -115,17 +116,20 @@
|
||||
<div class="grid md:grid-cols-3 grid-cols-1 h-full gap-8">
|
||||
<Card class="h-full flex flex-col !max-w-full">
|
||||
{#await pagesFuture}
|
||||
<Spinner />
|
||||
<Spinner/>
|
||||
{:then pages}
|
||||
{@const pagesMap = mapToMap(pages)}
|
||||
<div class="border-b border-b-gray-600 pb-2 flex justify-between">
|
||||
<div>
|
||||
<TypeAheadSearch items={availableBranches} bind:selected={selectedBranch} bind:searchValue />
|
||||
<TypeAheadSearch items={Array.from(pagesMap.keys()).map(value => ({value, name: value}))} bind:selected={selectedPath} bind:searchValue={pathSearchValue} maxItems={Number.MAX_VALUE} leftText={true} />
|
||||
<TypeAheadSearch items={availableBranches} bind:selected={selectedBranch} bind:searchValue/>
|
||||
<TypeAheadSearch items={Array.from(pagesMap.keys()).map(value => ({value, name: value}))}
|
||||
bind:selected={selectedPath} bind:searchValue={pathSearchValue}
|
||||
maxItems={Number.MAX_VALUE} leftText={true}/>
|
||||
</div>
|
||||
<div>
|
||||
{#if selectedBranch !== "master"}
|
||||
<Button on:click={createFile} color="alternative" disabled={!selectedPath}>Create File</Button>
|
||||
<Button on:click={createFile} color="alternative" disabled={!selectedPath}>Create File
|
||||
</Button>
|
||||
<Button on:click={() => deleteBranch(false)} color="none">Delete Branch</Button>
|
||||
{:else}
|
||||
<Button on:click={createBranch}>Create Branch</Button>
|
||||
@@ -140,8 +144,12 @@
|
||||
{@const match = nameRegexExec ? nameRegexExec[0] : ""}
|
||||
{@const startIndex = page.path.indexOf(match)}
|
||||
{@const endIndex = startIndex + match.length}
|
||||
<li class="p-4 transition-colors hover:bg-gray-700 cursor-pointer" on:click|preventDefault={() => changePage(page.id)}>
|
||||
<span class:text-orange-600={selected === page.id}>{page.path.substring(0, startIndex)}</span><span class="text-white" class:!text-orange-500={selected === page.id}>{match}</span><span class:text-orange-600={selected === page.id}>{page.path.substring(endIndex, page.path.length)}</span>
|
||||
<li class="p-4 transition-colors hover:bg-gray-700 cursor-pointer"
|
||||
on:click|preventDefault={() => changePage(page.id)}>
|
||||
<span class:text-orange-600={selected === page.id}>{page.path.substring(0, startIndex)}</span><span
|
||||
class="text-white"
|
||||
class:!text-orange-500={selected === page.id}>{match}</span><span
|
||||
class:text-orange-600={selected === page.id}>{page.path.substring(endIndex, page.path.length)}</span>
|
||||
</li>
|
||||
{/each}
|
||||
{/if}
|
||||
@@ -152,7 +160,7 @@
|
||||
</Card>
|
||||
<Card class="!max-w-full" style="grid-column: 2/4">
|
||||
{#if selected}
|
||||
<Editor pageId={selected} branch={selectedBranch} on:reload={reload} bind:dirty />
|
||||
<Editor pageId={selected} bind:branch={selectedBranch} on:reload={reload} bind:dirty/>
|
||||
{/if}
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user