diff --git a/src/components/Comment.svelte b/src/components/Comment.svelte index 976edb92c..a1c6dc40d 100644 --- a/src/components/Comment.svelte +++ b/src/components/Comment.svelte @@ -29,8 +29,7 @@ // TODO: Remove flag once `radicle-httpd` fixes embed editing export let disableEdit: boolean = false; - let editInProgress = false; - let submitInProgress = false; + let state: "read" | "edit" | "submit" = "read"; export let editComment: | ((body: string, embeds: Embed[]) => Promise) @@ -126,11 +125,9 @@ {caption}
- {#if id && editComment && !editInProgress && !disableEdit} + {#if id && editComment && state === "read" && !disableEdit}
- (editInProgress = true)}> + (state = "edit")}>
@@ -143,26 +140,26 @@
- {#if editComment && editInProgress} + {#if editComment && state !== "read"} {@const editComment_ = editComment} { - submitInProgress = true; + state = "submit"; try { await editComment_(comment, embeds); } finally { - submitInProgress = false; + state = "read"; } }} on:close={async () => { body = body; await tick(); - editInProgress = false; + state = "read"; }} /> {:else if body.trim() === ""} No description diff --git a/src/components/CommentToggleInput.svelte b/src/components/CommentToggleInput.svelte index 549ca976c..8f4bdf024 100644 --- a/src/components/CommentToggleInput.svelte +++ b/src/components/CommentToggleInput.svelte @@ -11,8 +11,7 @@ export let focus: boolean = false; export let submit: (comment: string, embeds: Embed[]) => Promise; - let submitInProgress: boolean = false; - let active: boolean = false; + let state: "collapsed" | "expanded" | "submit" = "collapsed"; -{#if active} +{#if state !== "collapsed"} (active = false)} + on:close={() => (state = "collapsed")} on:submit={async ({ detail: { comment, embeds } }) => { try { - submitInProgress = true; + state = "submit"; await submit(comment, embeds); } finally { - submitInProgress = false; - active = false; + state = "collapsed"; } }} /> {:else} @@ -55,7 +53,7 @@ class="inactive" role="button" tabindex="0" - on:click={() => (active = true)}> + on:click={() => (state = "expanded")}> {placeholder}
{/if} diff --git a/src/views/projects/Cob/CobHeader.svelte b/src/views/projects/Cob/CobHeader.svelte index 1af48385f..d767e3482 100644 --- a/src/views/projects/Cob/CobHeader.svelte +++ b/src/views/projects/Cob/CobHeader.svelte @@ -16,17 +16,17 @@ async function handleTitleEdit() { if (editTitle) { mode = "readOnly"; - editingTitle = true; + submitNewTitle = true; try { await editTitle(title); } finally { - editingTitle = false; + submitNewTitle = false; } } } const oldTitle = title; - let editingTitle = false; + let submitNewTitle = false;