From 6a03ccef2d41b54b1ffa6f9ee17560f4f0643fa7 Mon Sep 17 00:00:00 2001 From: Sebastian Martinez Date: Wed, 29 Mar 2023 22:38:52 +0200 Subject: [PATCH] Update patch state from proposed to open Signed-off-by: Sebastian Martinez --- src/lib/patch.ts | 16 +++++++++- src/lib/project.ts | 4 +-- src/views/projects/Header.svelte | 2 +- src/views/projects/Patch.svelte | 2 +- src/views/projects/Patch/PatchTeaser.svelte | 4 +-- src/views/projects/Patches.svelte | 34 +++++++++++++++++++-- src/views/projects/View.svelte | 2 +- 7 files changed, 54 insertions(+), 10 deletions(-) diff --git a/src/lib/patch.ts b/src/lib/patch.ts index aeec059f6..fa4e04297 100644 --- a/src/lib/patch.ts +++ b/src/lib/patch.ts @@ -58,9 +58,23 @@ export interface Merge { export type PatchState = | { status: "draft" } - | { status: "proposed" } + | { status: "open" } | { status: "archived" }; +export function groupPatches(patches: Patch[]): { + open: Patch[]; + draft: Patch[]; + archived: Patch[]; +} { + return patches.reduce( + (acc, patch) => { + acc[patch.state.status].push(patch); + return acc; + }, + { open: [] as Patch[], draft: [] as Patch[], archived: [] as Patch[] }, + ); +} + export class Patch { id: string; author: Author; diff --git a/src/lib/project.ts b/src/lib/project.ts index 711752405..941800cfe 100644 --- a/src/lib/project.ts +++ b/src/lib/project.ts @@ -28,7 +28,7 @@ export interface ProjectInfo { defaultBranch: string; delegates: string[]; patches: { - proposed: number; + open: number; draft: number; archived: number; }; @@ -134,7 +134,7 @@ export class Project implements ProjectInfo { peers: Peer[]; branches: Branches; patches: { - proposed: number; + open: number; draft: number; archived: number; }; diff --git a/src/views/projects/Header.svelte b/src/views/projects/Header.svelte index 276c218d9..ce13920b7 100644 --- a/src/views/projects/Header.svelte +++ b/src/views/projects/Header.svelte @@ -135,7 +135,7 @@ active={activeRoute.params.view.resource === "patches"} clickable on:click={() => toggleContent("patches", false)}> - {project.patches.proposed ?? 0} + {project.patches.open ?? 0} patch(es) diff --git a/src/views/projects/Patch.svelte b/src/views/projects/Patch.svelte index b532d3a18..7d8c4a6b5 100644 --- a/src/views/projects/Patch.svelte +++ b/src/views/projects/Patch.svelte @@ -233,7 +233,7 @@ {patch.state.status} - {:else if patch.state.status === "proposed"} + {:else if patch.state.status === "open"} {patch.state.status} diff --git a/src/views/projects/Patch/PatchTeaser.svelte b/src/views/projects/Patch/PatchTeaser.svelte index a35dfc166..716db9d64 100644 --- a/src/views/projects/Patch/PatchTeaser.svelte +++ b/src/views/projects/Patch/PatchTeaser.svelte @@ -91,7 +91,7 @@ .draft { background-color: var(--color-foreground-3); } - .proposed { + .open { background-color: var(--color-positive); } .archived { @@ -109,7 +109,7 @@
diff --git a/src/views/projects/Patches.svelte b/src/views/projects/Patches.svelte index 230e79f9a..02ae1da13 100644 --- a/src/views/projects/Patches.svelte +++ b/src/views/projects/Patches.svelte @@ -7,15 +7,36 @@
- {#if patches.length} +
+ + router.updateProjectRoute({ + search: `state=${e.detail}`, + })} + active={status} /> +
+ {#if filteredPatches.length}
- {#each patches as patch} + {#each sortedPatches as patch}
{ const project = await proj.Project.get(id, seed, peer);