mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-13 11:40:49 +08:00
Redesign the entire app with a new UI kit. Typography, colors, icons, avatars, and border radii have all been updated for a more polished, consistent appearance that matches our other products like radicle-explorer. - Replace blockies-based avatars with a new DID-based avatar system - Move Settings and Create Issue into fullscreen modals - Change the default theme to follow the system theme - Remove window decorations on macOS for a cleaner, more native feel - Update the app icon - Fix popovers and tooltips Navigation: - Rewrite app navigation and layouts - Add a sidebar that gives you access to all your repos - Change the startup screen to open directly to the notification inbox - Add a getting started guide shown to new users on first launch Settings: - Add a setting to disable the notification badge - Add a code font setting Bug fixes: - Fix reactions and edits incorrectly targeting the root comment instead of the intended reply - Restrict issue/patch state, labels and assignees to delegates only
67 lines
1.2 KiB
Svelte
67 lines
1.2 KiB
Svelte
<script lang="ts">
|
|
import { truncateId } from "@app/lib/utils";
|
|
|
|
import UserAvatar from "@app/components/UserAvatar.svelte";
|
|
|
|
interface Props {
|
|
publicKey: string;
|
|
alias?: string;
|
|
inline?: boolean;
|
|
styleFont?: string;
|
|
}
|
|
|
|
const {
|
|
publicKey,
|
|
alias,
|
|
inline = false,
|
|
styleFont = undefined,
|
|
}: Props = $props();
|
|
</script>
|
|
|
|
<style>
|
|
.avatar-alias {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.375rem;
|
|
font: var(--txt-body-m-regular);
|
|
}
|
|
.avatar-container {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
overflow: hidden;
|
|
flex-shrink: 0;
|
|
}
|
|
.avatar-container :global(img) {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
.no-alias {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
.inline {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.375rem;
|
|
}
|
|
.inline .alias {
|
|
align-self: baseline;
|
|
}
|
|
</style>
|
|
|
|
<div class="avatar-alias" class:inline style:font={styleFont}>
|
|
<div class="avatar-container">
|
|
<UserAvatar nodeId={publicKey} styleWidth="1rem" />
|
|
</div>
|
|
{#if alias}
|
|
<span class="txt-overflow alias">
|
|
{alias}
|
|
</span>
|
|
{:else}
|
|
<span class="no-alias">
|
|
{truncateId(publicKey)}
|
|
</span>
|
|
{/if}
|
|
</div>
|