Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
radicle-explorer src components CompactCommitAuthorship.svelte
<script lang="ts">
  import type { CommitHeader } from "@http-client";

  import * as utils from "@app/lib/utils";
  import HoverPopover from "./HoverPopover.svelte";

  export let commit: CommitHeader;
</script>

<style>
  .authorship {
    display: flex;
    font: var(--txt-body-m-regular);
    column-gap: 0.5rem;
    align-items: center;
    white-space: nowrap;
  }
  .person {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    white-space: nowrap;
    gap: 0.5rem;
  }
  .label {
    color: var(--color-text-tertiary);
  }
  .avatar {
    width: 1rem;
    height: 1rem;
    border-radius: var(--border-radius-full);
  }
</style>

<div class="authorship">
  <HoverPopover
    stylePopoverPositionLeft="-8rem"
    stylePopoverPositionBottom="1.5rem">
    <div slot="toggle" style="display: flex;">
      {#if commit.author.email === commit.committer.email}
        <div class="person">
          <img
            class="avatar"
            alt="avatar"
            src={utils.gravatarURL(commit.committer.email)} />
        </div>
      {:else}
        <div class="person">
          <img
            class="avatar"
            alt="avatar"
            src={utils.gravatarURL(commit.author.email)} />
        </div>
        <div class="person">
          <img
            class="avatar"
            alt="avatar"
            src={utils.gravatarURL(commit.committer.email)} />
        </div>
      {/if}
    </div>

    <div slot="popover" class="popover">
      {#if commit.author.email === commit.committer.email}
        <div class="person">
          <div class="label">Author</div>
          <img
            class="avatar"
            alt="avatar"
            src={utils.gravatarURL(commit.committer.email)} />
          {commit.author.name}
        </div>
      {:else}
        <div class="person">
          <div class="label">Author</div>
          <img
            class="avatar"
            alt="avatar"
            src={utils.gravatarURL(commit.author.email)} />
          {commit.author.name}
        </div>
        <div class="person">
          <div class="label">Committer</div>
          <img
            class="avatar"
            alt="avatar"
            src={utils.gravatarURL(commit.committer.email)} />
          {commit.committer.name}
        </div>
      {/if}
    </div>
  </HoverPopover>
  <slot />
  <div title={utils.absoluteTimestamp(commit.committer.time)}>
    {utils.formatTimestamp(commit.committer.time)}
  </div>
</div>