Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
radicle-explorer src components NodeId.svelte
<script lang="ts">
  import type { BaseUrl } from "@http-client";
  import { formatNodeId, parseNodeId, truncateId } from "@app/lib/utils";

  import UserAvatar from "./UserAvatar.svelte";
  import Link from "./Link.svelte";

  export let baseUrl: BaseUrl;
  export let nodeId: string;
  export let alias: string | undefined = undefined;
</script>

<style>
  .avatar-alias {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    height: 1rem;
    font: var(--txt-body-m-regular);
  }
  .avatar-container {
    width: 1rem;
    height: 1rem;
    overflow: hidden;
  }
  .avatar-container :global(img) {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .no-alias {
    color: var(--color-text-tertiary);
  }
</style>

<div class="avatar-alias">
  <Link
    styleHoverState
    style="display: flex; gap: 0.375rem; align-items: center;"
    route={{ resource: "users", did: nodeId, baseUrl }}>
    <div class="avatar-container">
      <UserAvatar {nodeId} styleWidth="1rem" />
    </div>
    {#if alias}
      <span class="txt-overflow">
        {alias}
      </span>
    {:else}
      <span class="no-alias global-hide-on-mobile-down">
        {formatNodeId(nodeId)}
      </span>
      <span class="no-alias global-hide-on-small-desktop-up">
        {truncateId(parseNodeId(nodeId)?.pubkey || "")}
      </span>
    {/if}
  </Link>
</div>