Refactor how we pass around DIDs

This commit is contained in:
Rūdolfs Ošiņš
2024-10-11 11:58:02 +02:00
parent 835b3f754b
commit 9bed71d607
11 changed files with 44 additions and 28 deletions
+6 -2
View File
@@ -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" />
+2 -3
View File
@@ -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)}
+4 -3
View File
@@ -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>
+2 -3
View File
@@ -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)}
+14 -1
View File
@@ -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 };
}
+1 -1
View File
@@ -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)" />
+1 -1
View File
@@ -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)" />
+4 -7
View File
@@ -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)}
+1 -1
View File
@@ -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)" />
+8 -5
View File
@@ -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)}
+1 -1
View File
@@ -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)" />