Skip to content

Commit 2b508c6

Browse files
authored
Merge pull request #4836 from gitbutlerapp/style-fix-delete-page
fix: Project Not Found page
2 parents a380045 + bde8c52 commit 2b508c6

File tree

2 files changed

+29
-22
lines changed

2 files changed

+29
-22
lines changed

apps/desktop/src/lib/backend/projects.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ export class ProjectService {
9797
}
9898

9999
async deleteProject(id: string) {
100-
return await invoke('delete_project', { id });
100+
await invoke('delete_project', { id });
101+
await this.reload();
101102
}
102103

103104
async promptForDirectory(): Promise<string | undefined> {

apps/desktop/src/lib/components/ProjectNotFound.svelte

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import RemoveProjectButton from './RemoveProjectButton.svelte';
55
import notFoundSvg from '$lib/assets/illustrations/not-found.svg?raw';
66
import { ProjectService } from '$lib/backend/projects';
7-
import InfoMessage from '$lib/shared/InfoMessage.svelte';
7+
import InfoMessage, { type MessageStyle } from '$lib/shared/InfoMessage.svelte';
88
import Spacer from '$lib/shared/Spacer.svelte';
99
import { getContext } from '$lib/utils/context';
1010
import Button from '@gitbutler/ui/Button.svelte';
@@ -36,17 +36,22 @@
3636
await projectService.relocateProject(id);
3737
}
3838
39-
function getDeletionStatusMessage(repoName: string) {
40-
if (deleteSucceeded === undefined) return null;
41-
if (deleteSucceeded) return `Project "${repoName}" successfully deleted`;
42-
return `Failed to delete "${repoName}" project`;
39+
interface DeletionStatus {
40+
message: string;
41+
style: MessageStyle;
42+
}
43+
44+
function getDeletionStatus(repoName: string, deleteSucceeded: boolean): DeletionStatus {
45+
return deleteSucceeded
46+
? { message: `Project "${repoName}" successfully deleted`, style: 'success' }
47+
: { message: `Failed to delete "${repoName}" project`, style: 'error' };
4348
}
4449
</script>
4550

4651
<DecorativeSplitView img={notFoundSvg}>
4752
<div class="container" data-tauri-drag-region>
48-
{#if deleteSucceeded === undefined}
49-
{#await projectPromise then project}
53+
{#await projectPromise then project}
54+
{#if deleteSucceeded === undefined}
5055
<div class="text-content">
5156
<h2 class="title-text text-18 text-body text-bold" data-tauri-drag-region>
5257
Can’t find "{project.title}"
@@ -76,20 +81,21 @@
7681
onDeleteClicked={async () => await stopTracking(project.id)}
7782
/>
7883
</div>
79-
80-
{#if deleteSucceeded !== undefined}
81-
<InfoMessage filled outlined={false} style="success" icon="info">
82-
<svelte:fragment slot="content"
83-
>{getDeletionStatusMessage(project.title)}</svelte:fragment
84-
>
85-
</InfoMessage>
86-
{/if}
87-
{:catch}
88-
<div class="text-content">
89-
<h2 class="title-text text-18 text-body text-bold">Can’t find project</h2>
90-
</div>
91-
{/await}
92-
{/if}
84+
{/if}
85+
86+
{#if deleteSucceeded !== undefined}
87+
{@const deletionStatus = getDeletionStatus(project.title, deleteSucceeded)}
88+
<InfoMessage filled outlined={false} style={deletionStatus.style} icon="info">
89+
<svelte:fragment slot="content">
90+
{deletionStatus.message}
91+
</svelte:fragment>
92+
</InfoMessage>
93+
{/if}
94+
{:catch}
95+
<div class="text-content">
96+
<h2 class="title-text text-18 text-body text-bold">Can’t find project</h2>
97+
</div>
98+
{/await}
9399

94100
<Spacer dotted margin={0} />
95101
<ProjectSwitcher />

0 commit comments

Comments
 (0)