Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Show all repos if there are no pinned repos
Merged Defelo opened 7 months ago
1 file changed +29 -7 b0b6d166 29b952a3
modified src/views/nodes/ReposView.svelte
@@ -13,9 +13,16 @@
  export let baseUrl: BaseUrl;
  export let stats: NodeStats;

-
  let listState: "pinned" | "all" = "pinned";
+
  let listState: "pinned" | "all";
+
  let page: number;
+
  let hasPinnedRepos: boolean;
+

+
  $: (() => {
+
    listState = "pinned";
+
    page = 0;
+
    hasPinnedRepos = true;
+
  })(baseUrl);

-
  let page = 0;
  $: perPage = listState === "pinned" ? stats.repos.total : 24;
  $: totalPages = Math.ceil(stats.repos.total / perPage);

@@ -26,6 +33,18 @@
  function showAll() {
    listState = "all";
  }
+

+
  async function fetchRepos(show, perPage, page) {
+
    const repos = await fetchRepoInfos(baseUrl, { show, perPage, page })
+

+
    if (hasPinnedRepos && show === "pinned" && perPage > 0 && page === 0 && repos.length === 0) {
+
      hasPinnedRepos = false;
+
      showAll();
+
      return [];
+
    }
+

+
    return repos;
+
  }
</script>

<style>
@@ -93,7 +112,7 @@
</style>

<div class="repos">
-
  {#await fetchRepoInfos(baseUrl, { show: listState, perPage, page })}
+
  {#await fetchRepos(listState, perPage, page)}
    <div style:height="35vh">
      <Loading small center />
    </div>
@@ -114,10 +133,13 @@
        {:else}
          <div class="subtitle">
            {stats.repos.total.toLocaleString()}
-
            seeded {stats.repos.total === 1 ? "repository" : "repositories"} ·
-
            <button class="text-button" on:click={showPinned}>
-
              See pinned
-
            </button>
+
            seeded {stats.repos.total === 1 ? "repository" : "repositories"}
+
            {#if hasPinnedRepos}
+
              ·
+
              <button class="text-button" on:click={showPinned}>
+
                See pinned
+
              </button>
+
            {/if}
          </div>

          <div class="pagination">