Radish alpha
r
Radicle desktop app
Radicle
Git (anonymous pull)
Log in to clone via SSH
Refactor how we pass around DIDs
✓ CI success Rūdolfs Ošiņš committed 1 year ago
commit 9bed71d6071e91ff20eb39da54b8310d629edba7
parent 835b3f754b8f6a8edbbfbbebc7fd167d7bf9bf99
1 passed (1 total) View logs
11 files changed +44 -28
modified src/components/Avatar.svelte
@@ -1,7 +1,7 @@
<script lang="ts">
  import { createIcon } from "@app/lib/blockies";

-
  export let nodeId: string;
+
  export let publicKey: string;

  function createContainer(source: string) {
    const seed = source.toLowerCase();
@@ -27,4 +27,8 @@
  }
</style>

-
<img title={nodeId} src={createContainer(nodeId)} class="avatar" alt="avatar" />
+
<img
+
  title={publicKey}
+
  src={createContainer(publicKey)}
+
  class="avatar"
+
  alt="avatar" />
modified src/components/IssueTeaser.svelte
@@ -2,6 +2,7 @@
  import type { Issue } from "@bindings/Issue";

  import {
+
    authorForNodeId,
    formatOid,
    formatTimestamp,
    issueStatusBackgroundColor,
@@ -68,9 +69,7 @@
      style:align-items="flex-start">
      <InlineTitle content={issue.title} />
      <div class="global-flex txt-small">
-
        <NodeId
-
          nodeId={issue.author.did.replace("did:key:", "")}
-
          alias={issue.author.alias} />
+
        <NodeId {...authorForNodeId(issue.author)} />
        opened
        <div class="global-oid">{formatOid(issue.id)}</div>
        {formatTimestamp(issue.timestamp)}
modified src/components/NodeId.svelte
@@ -3,8 +3,9 @@

  import Avatar from "./Avatar.svelte";

-
  export let nodeId: string;
+
  export let publicKey: string;
  export let alias: string | undefined = undefined;
+

  export let styleFontSize: string | undefined = "var(--font-size-small)";
  export let styleFontFamily: string | undefined =
    "var(--font-family-monospace)";
@@ -26,14 +27,14 @@
  class="avatar-alias"
  style:font-size={styleFontSize}
  style:font-family={styleFontFamily}>
-
  <Avatar {nodeId} />
+
  <Avatar {publicKey} />
  {#if alias}
    <span class="txt-overflow">
      {alias}
    </span>
  {:else}
    <span class="no-alias">
-
      {truncateId(nodeId)}
+
      {truncateId(publicKey)}
    </span>
  {/if}
</div>
modified src/components/PatchTeaser.svelte
@@ -3,6 +3,7 @@
  import type { Stats } from "@bindings/Stats";

  import {
+
    authorForNodeId,
    formatOid,
    formatTimestamp,
    patchStatusBackgroundColor,
@@ -82,9 +83,7 @@
      style:align-items="flex-start">
      <InlineTitle content={patch.title} />
      <div class="global-flex txt-small">
-
        <NodeId
-
          nodeId={patch.author.did.replace("did:key:", "")}
-
          alias={patch.author.alias} />
+
        <NodeId {...authorForNodeId(patch.author)} />
        opened
        <div class="global-oid">{formatOid(patch.id)}</div>
        {formatTimestamp(patch.timestamp)}
modified src/lib/utils.ts
@@ -1,9 +1,14 @@
+
import type { ComponentProps } from "svelte";
+

+
import type { Author } from "@bindings/Author";
import type { Issue } from "@bindings/Issue";
import type { Patch } from "@bindings/Patch";

import bs58 from "bs58";
import twemojiModule from "twemoji";

+
import NodeId from "@app/components/NodeId.svelte";
+

export const unreachable = (value: never): never => {
  throw new Error(`Unreachable code: ${value}`);
};
@@ -39,7 +44,11 @@ export function truncateId(pubkey: string): string {
}

export function truncateDid(did: string): string {
-
  return `did:key:${truncateId(did.replace("did:key:", ""))}`;
+
  return `did:key:${truncateId(publicKeyFromDid(did))}`;
+
}
+

+
export function publicKeyFromDid(did: string) {
+
  return did.replace("did:key:", "");
}

export function isCommit(input: string): boolean {
@@ -141,3 +150,7 @@ export const patchStatusBackgroundColor: Record<
  archived: "var(--color-fill-private)",
  merged: "var(--color-fill-delegate)",
};
+

+
export function authorForNodeId(author: Author): ComponentProps<NodeId> {
+
  return { publicKey: publicKeyFromDid(author.did), alias: author.alias };
+
}
modified src/views/Home.svelte
@@ -42,7 +42,7 @@
      </svelte:fragment>
      <svelte:fragment slot="breadcrumbs">
        <NodeId
-
          nodeId={config.publicKey}
+
          publicKey={config.publicKey}
          alias={config.alias}
          styleFontFamily="var(--font-family-sans-serif)"
          styleFontSize="var(--font-size-tiny)" />
modified src/views/repo/CreateIssue.svelte
@@ -84,7 +84,7 @@
  <svelte:fragment slot="breadcrumbs">
    <Link route={{ resource: "home" }}>
      <NodeId
-
        nodeId={config.publicKey}
+
        publicKey={config.publicKey}
        alias={config.alias}
        styleFontFamily="var(--font-family-sans-serif)"
        styleFontSize="var(--font-size-tiny)" />
modified src/views/repo/Issue.svelte
@@ -6,6 +6,7 @@
  import capitalize from "lodash/capitalize";

  import {
+
    authorForNodeId,
    formatOid,
    formatTimestamp,
    issueStatusColor,
@@ -83,7 +84,7 @@
  <svelte:fragment slot="breadcrumbs">
    <Link route={{ resource: "home" }}>
      <NodeId
-
        nodeId={config.publicKey}
+
        publicKey={config.publicKey}
        alias={config.alias}
        styleFontFamily="var(--font-family-sans-serif)"
        styleFontSize="var(--font-size-tiny)" />
@@ -183,9 +184,7 @@
        <div class="section-title">Assignees</div>
        <div class="global-flex" style:flex-wrap="wrap">
          {#each issue.assignees as assignee}
-
            <NodeId
-
              nodeId={assignee.did.replace("did:key:", "")}
-
              alias={assignee.alias} />
+
            <NodeId {...authorForNodeId(assignee)} />
          {:else}
            <span class="txt-missing">Not assigned to anyone.</span>
          {/each}
@@ -195,9 +194,7 @@

    <div class="txt-small body">
      <div class="global-flex txt-small" style:margin-bottom="1rem">
-
        <NodeId
-
          nodeId={issue.author.did.replace("did:key:", "")}
-
          alias={issue.author.alias} />
+
        <NodeId {...authorForNodeId(issue.author)} />
        opened
        <div class="global-oid">{formatOid(issue.id)}</div>
        {formatTimestamp(issue.timestamp)}
modified src/views/repo/Issues.svelte
@@ -46,7 +46,7 @@
  <svelte:fragment slot="breadcrumbs">
    <Link route={{ resource: "home" }}>
      <NodeId
-
        nodeId={config.publicKey}
+
        publicKey={config.publicKey}
        alias={config.alias}
        styleFontFamily="var(--font-family-sans-serif)"
        styleFontSize="var(--font-size-tiny)" />
modified src/views/repo/Patch.svelte
@@ -4,7 +4,12 @@
  import type { RepoInfo } from "@bindings/RepoInfo";
  import type { Revision } from "@bindings/Revision";

-
  import { formatTimestamp, formatOid, patchStatusColor } from "@app/lib/utils";
+
  import {
+
    authorForNodeId,
+
    formatOid,
+
    formatTimestamp,
+
    patchStatusColor,
+
  } from "@app/lib/utils";

  import Border from "@app/components/Border.svelte";
  import CopyableId from "@app/components/CopyableId.svelte";
@@ -58,7 +63,7 @@
  <svelte:fragment slot="breadcrumbs">
    <Link route={{ resource: "home" }}>
      <NodeId
-
        nodeId={config.publicKey}
+
        publicKey={config.publicKey}
        alias={config.alias}
        styleFontFamily="var(--font-family-sans-serif)"
        styleFontSize="var(--font-size-tiny)" />
@@ -141,9 +146,7 @@
        </span>
      {/if}
      <div class="global-flex txt-small" style:margin-top="1.5rem">
-
        <NodeId
-
          nodeId={patch.author.did.replace("did:key:", "")}
-
          alias={patch.author.alias} />
+
        <NodeId {...authorForNodeId(patch.author)} />
        opened
        <div class="global-oid">{formatOid(patch.id)}</div>
        {formatTimestamp(patch.timestamp)}
modified src/views/repo/Patches.svelte
@@ -56,7 +56,7 @@
  <svelte:fragment slot="breadcrumbs">
    <Link route={{ resource: "home" }}>
      <NodeId
-
        nodeId={config.publicKey}
+
        publicKey={config.publicKey}
        alias={config.alias}
        styleFontFamily="var(--font-family-sans-serif)"
        styleFontSize="var(--font-size-tiny)" />