From 2c2ee926eb4c527e2fc7b6c65608f946064c68a5 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Mon, 26 Feb 2024 16:38:19 +0000 Subject: [PATCH] feat: intelligently load repo events choose repo events based from earliest_unique_commit and indentifier based on: - number of mentions (issues and root patches) - most recent created_at identify repo events for the same repository based on identical identifiers and use of earliest_unique_commit use stores for collections of repo events --- src/lib/components/RepoSummaryCard.svelte | 4 +- src/lib/components/ReposSummaryList.svelte | 4 +- .../proposals/ProposalsListItem.svelte | 3 + .../proposals/StatusSelector.svelte | 14 +- src/lib/components/repo/RepoDetails.svelte | 11 +- src/lib/components/repo/RepoHeader.svelte | 12 +- src/lib/components/repo/type.ts | 38 ++- src/lib/components/repo/utils.spec.ts | 161 +++++++++ src/lib/components/repo/utils.ts | 17 + src/lib/components/repo/vectors.ts | 34 +- src/lib/stores/Proposal.ts | 29 +- src/lib/stores/Proposals.ts | 41 ++- src/lib/stores/ndk.ts | 2 +- src/lib/stores/repo.ts | 156 +++------ src/lib/stores/repos.ts | 313 ++++++++++++++++++ src/lib/wrappers/Compose.svelte | 17 +- src/lib/wrappers/RecentProposals.svelte | 0 src/lib/wrappers/RepoDetails.svelte | 9 +- src/lib/wrappers/ReposRecent.svelte | 151 ++++----- src/routes/repo/[repo_id]/+page.svelte | 20 +- .../proposal/[proposal_id]/+page.svelte | 14 +- .../proposal/[proposal_id]/page.svelte | 121 ------- 22 files changed, 769 insertions(+), 402 deletions(-) create mode 100644 src/lib/components/repo/utils.spec.ts create mode 100644 src/lib/components/repo/utils.ts create mode 100644 src/lib/stores/repos.ts create mode 100644 src/lib/wrappers/RecentProposals.svelte delete mode 100644 src/routes/repo/[repo_id]/proposal/[proposal_id]/page.svelte diff --git a/src/lib/components/RepoSummaryCard.svelte b/src/lib/components/RepoSummaryCard.svelte index 8b2b77e..9f0791b 100644 --- a/src/lib/components/RepoSummaryCard.svelte +++ b/src/lib/components/RepoSummaryCard.svelte @@ -2,7 +2,7 @@ import { summary_defaults } from './repo/type' import UserHeader from './users/UserHeader.svelte' - export let { name, description, repo_id, maintainers, loading } = + export let { name, description, identifier, maintainers, loading } = summary_defaults let short_name: string $: { @@ -24,7 +24,7 @@ {:else} {short_name}{short_name} {#if short_descrption.length > 0}

diff --git a/src/lib/components/ReposSummaryList.svelte b/src/lib/components/ReposSummaryList.svelte index 6e440e2..26b39ab 100644 --- a/src/lib/components/ReposSummaryList.svelte +++ b/src/lib/components/ReposSummaryList.svelte @@ -17,8 +17,8 @@

None

{:else}
- {#each repos as { name, description, repo_id, maintainers }} - + {#each repos as { name, description, identifier, maintainers }} + {/each} {#if loading} diff --git a/src/lib/components/proposals/ProposalsListItem.svelte b/src/lib/components/proposals/ProposalsListItem.svelte index e198ff8..fbdcb5a 100644 --- a/src/lib/components/proposals/ProposalsListItem.svelte +++ b/src/lib/components/proposals/ProposalsListItem.svelte @@ -17,10 +17,12 @@ dayjs.extend(relativeTime) export let { title, + descritpion, id, repo_id, comments, status, + status_date, author, created_at, loading, @@ -74,6 +76,7 @@ {#if loading}
diff --git a/src/lib/components/proposals/StatusSelector.svelte b/src/lib/components/proposals/StatusSelector.svelte index 315a4fa..2fd1f6c 100644 --- a/src/lib/components/proposals/StatusSelector.svelte +++ b/src/lib/components/proposals/StatusSelector.svelte @@ -13,7 +13,10 @@ statusKindtoText, } from '$lib/kinds' import { getUserRelays, logged_in_user } from '$lib/stores/users' - import { selected_repo } from '$lib/stores/repo' + import { + selected_repo_collection, + selected_repo_event, + } from '$lib/stores/repo' import Status from '$lib/components/proposals/Status.svelte' export let status: number | undefined = undefined @@ -25,7 +28,8 @@ let edit_mode = false $: { edit_mode = - $logged_in_user !== undefined && repo_id === $selected_repo.repo_id + $logged_in_user !== undefined && + repo_id === $selected_repo_collection.identifier } async function changeStatus(new_status_kind: number) { @@ -42,10 +46,10 @@ .forEach((revision) => { event.tags.push(['e', revision.id, 'mention']) }) - if ($selected_repo.unique_commit) - event.tags.push(['r', $selected_repo.unique_commit]) + if ($selected_repo_event.unique_commit) + event.tags.push(['r', $selected_repo_event.unique_commit]) loading = true - let relays = [...$selected_repo.relays] + let relays = [...$selected_repo_event.relays] try { event.sign() } catch { diff --git a/src/lib/components/repo/RepoDetails.svelte b/src/lib/components/repo/RepoDetails.svelte index 908fc02..4e9a452 100644 --- a/src/lib/components/repo/RepoDetails.svelte +++ b/src/lib/components/repo/RepoDetails.svelte @@ -1,17 +1,22 @@ diff --git a/src/lib/components/repo/RepoHeader.svelte b/src/lib/components/repo/RepoHeader.svelte index 33780ef..a523876 100644 --- a/src/lib/components/repo/RepoHeader.svelte +++ b/src/lib/components/repo/RepoHeader.svelte @@ -1,18 +1,22 @@ - + diff --git a/src/lib/wrappers/ReposRecent.svelte b/src/lib/wrappers/ReposRecent.svelte index 559634f..aab5f09 100644 --- a/src/lib/wrappers/ReposRecent.svelte +++ b/src/lib/wrappers/ReposRecent.svelte @@ -1,114 +1,85 @@ - + diff --git a/src/routes/repo/[repo_id]/+page.svelte b/src/routes/repo/[repo_id]/+page.svelte index c2cb105..b706efe 100644 --- a/src/routes/repo/[repo_id]/+page.svelte +++ b/src/routes/repo/[repo_id]/+page.svelte @@ -1,18 +1,24 @@ @@ -35,15 +41,15 @@
{:else} - +
- +
diff --git a/src/routes/repo/[repo_id]/proposal/[proposal_id]/+page.svelte b/src/routes/repo/[repo_id]/proposal/[proposal_id]/+page.svelte index 7a72908..35ee31f 100644 --- a/src/routes/repo/[repo_id]/proposal/[proposal_id]/+page.svelte +++ b/src/routes/repo/[repo_id]/proposal/[proposal_id]/+page.svelte @@ -1,5 +1,9 @@ {#if !repo_error} - + {/if} {#if proposal_error} diff --git a/src/routes/repo/[repo_id]/proposal/[proposal_id]/page.svelte b/src/routes/repo/[repo_id]/proposal/[proposal_id]/page.svelte deleted file mode 100644 index c41d904..0000000 --- a/src/routes/repo/[repo_id]/proposal/[proposal_id]/page.svelte +++ /dev/null @@ -1,121 +0,0 @@ - - -{#if !repo_error} - -{/if} - -{#if proposal_error} - - - -{:else} - - -
-
- -
- {#if $selected_proposal_full.proposal_event && $selected_proposal_full.proposal_event.kind === patch_kind} - - {:else} - - {/if} -
- {#each $selected_proposal_replies as event} - - {/each} -
- -
-
- -
- -{/if}