Skip to content

Commit

Permalink
Refactor how we pass around DIDs
Browse files Browse the repository at this point in the history
  • Loading branch information
rudolfs committed Oct 11, 2024
1 parent 835b3f7 commit 9bed71d
Show file tree
Hide file tree
Showing 11 changed files with 44 additions and 28 deletions.
8 changes: 6 additions & 2 deletions src/components/Avatar.svelte
Original file line number Diff line number Diff line change
@@ -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();
Expand All @@ -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" />
5 changes: 2 additions & 3 deletions src/components/IssueTeaser.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import type { Issue } from "@bindings/Issue";
import {
authorForNodeId,
formatOid,
formatTimestamp,
issueStatusBackgroundColor,
Expand Down Expand Up @@ -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)}
Expand Down
7 changes: 4 additions & 3 deletions src/components/NodeId.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -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)";
Expand All @@ -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>
5 changes: 2 additions & 3 deletions src/components/PatchTeaser.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import type { Stats } from "@bindings/Stats";
import {
authorForNodeId,
formatOid,
formatTimestamp,
patchStatusBackgroundColor,
Expand Down Expand Up @@ -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)}
Expand Down
15 changes: 14 additions & 1 deletion src/lib/utils.ts
Original file line number Diff line number Diff line change
@@ -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}`);
};
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 };
}
2 changes: 1 addition & 1 deletion src/views/Home.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -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)" />
Expand Down
2 changes: 1 addition & 1 deletion src/views/repo/CreateIssue.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -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)" />
Expand Down
11 changes: 4 additions & 7 deletions src/views/repo/Issue.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import capitalize from "lodash/capitalize";
import {
authorForNodeId,
formatOid,
formatTimestamp,
issueStatusColor,
Expand Down Expand Up @@ -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)" />
Expand Down Expand Up @@ -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}
Expand All @@ -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)}
Expand Down
2 changes: 1 addition & 1 deletion src/views/repo/Issues.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -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)" />
Expand Down
13 changes: 8 additions & 5 deletions src/views/repo/Patch.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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)" />
Expand Down Expand Up @@ -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)}
Expand Down
2 changes: 1 addition & 1 deletion src/views/repo/Patches.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -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)" />
Expand Down

0 comments on commit 9bed71d

Please sign in to comment.