Radish alpha
r
rad:z4D5UCArafTzTQpDZNQRuqswh3ury
Radicle desktop app
Radicle
Git
Show inbox button in active state when showing inbox
Open rudolfs opened 1 year ago
3 files changed +36 -13 9231d3c6 c35b4a3d
modified src/components/Header.svelte
@@ -8,6 +8,8 @@
  import Icon from "./Icon.svelte";
  import NakedButton from "./NakedButton.svelte";

+
  const activeRouteStore = router.activeRouteStore;
+

  interface Props {
    publicKey: string;
    center?: Snippet;
@@ -94,6 +96,7 @@
        <NakedButton
          variant="ghost"
          stylePadding="0 4px"
+
          active={$activeRouteStore.resource === "inbox"}
          onclick={() => router.push({ resource: "inbox" })}>
          <Icon name="inbox" />
        </NakedButton>
modified src/components/NakedButton.svelte
@@ -9,6 +9,7 @@
    onclick?: (e: MouseEvent) => void;
    styleHeight?: string;
    stylePadding?: string;
+
    active?: boolean;
  }

  const {
@@ -19,6 +20,7 @@
    onclick,
    styleHeight = "2rem",
    stylePadding = "0 8px",
+
    active = false,
  }: Props = $props();

  const style = $derived(
@@ -147,46 +149,59 @@
    background-color: var(--button-color-1);
  }

-
  .container:active:not(.disabled) .p1-3 {
+
  .container:active:not(.disabled) .p1-3,
+
  .container.active:not(.disabled) .p1-3 {
    background-color: var(--button-color-1);
  }

-
  .container:active:not(.disabled) .p2-2 {
+
  .container:active:not(.disabled) .p2-2,
+
  .container.active:not(.disabled) .p2-2 {
    background-color: var(--button-color-1);
  }
-
  .container:active:not(.disabled) .p2-3 {
+
  .container:active:not(.disabled) .p2-3,
+
  .container.active:not(.disabled) .p2-3 {
    background-color: var(--button-color-3);
  }
-
  .container:active:not(.disabled) .p2-4 {
+
  .container:active:not(.disabled) .p2-4,
+
  .container.active:not(.disabled) .p2-4 {
    background-color: var(--button-color-1);
  }

-
  .container:active:not(.disabled) .p3-1 {
+
  .container:active:not(.disabled) .p3-1,
+
  .container.active:not(.disabled) .p3-1 {
    background-color: var(--button-color-1);
  }
-
  .container:active:not(.disabled) .p3-2 {
+
  .container:active:not(.disabled) .p3-2,
+
  .container.active:not(.disabled) .p3-2 {
    background-color: var(--button-color-3);
  }
-
  .container:active:not(.disabled) .p3-3 {
+
  .container:active:not(.disabled) .p3-3,
+
  .container.active:not(.disabled) .p3-3 {
    background-color: var(--button-color-1);
  }
-
  .container:active:not(.disabled) .p3-4 {
+
  .container:active:not(.disabled) .p3-4,
+
  .container.active:not(.disabled) .p3-4 {
    background-color: var(--button-color-2);
  }
-
  .container:active:not(.disabled) .p3-5 {
+
  .container:active:not(.disabled) .p3-5,
+
  .container.active:not(.disabled) .p3-5 {
    background-color: var(--button-color-1);
  }

-
  .container:active:not(.disabled) .p4-2 {
+
  .container:active:not(.disabled) .p4-2,
+
  .container.active:not(.disabled) .p4-2 {
    background-color: var(--button-color-1);
  }
-
  .container:active:not(.disabled) .p4-3 {
+
  .container:active:not(.disabled) .p4-3,
+
  .container.active:not(.disabled) .p4-3 {
    background-color: var(--button-color-2);
  }
-
  .container:active:not(.disabled) .p4-4 {
+
  .container:active:not(.disabled) .p4-4,
+
  .container.active:not(.disabled) .p4-4 {
    background-color: var(--button-color-1);
  }
-
  .container:active:not(.disabled) .p5-3 {
+
  .container:active:not(.disabled) .p5-3,
+
  .container.active:not(.disabled) .p5-3 {
    background-color: var(--button-color-1);
  }

@@ -221,6 +236,7 @@
<div
  class="container"
  class:disabled
+
  class:active
  onclick={!disabled ? onclick : undefined}
  {title}
  role="button"
modified src/lib/invoke.ts
@@ -13,6 +13,10 @@ export async function invoke<T = null>(
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(args),
    }).then(async response => {
+
      if (response.status === 404) {
+
        console.log("Got a 404 response:", response);
+
        return null;
+
      }
      const json = await response.json();
      if (!response.ok) {
        throw json;