Skip to content

Commit daddc9e

Browse files
refactor: use service icon
1 parent 86a9319 commit daddc9e

File tree

1 file changed

+29
-34
lines changed

1 file changed

+29
-34
lines changed

app/components/Header/AccountMenu.client.vue

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ const isOpen = shallowRef(false)
1818
/** Check if connected to at least one service */
1919
const hasAnyConnection = computed(() => isNpmConnected.value || !!atprotoUser.value)
2020
21+
/** Check if connected to both services */
22+
const hasBothConnections = computed(() => isNpmConnected.value && !!atprotoUser.value)
23+
2124
/** Only show count of active (pending/approved/running) operations */
2225
const operationCount = computed(() => activeOperations.value.length)
2326
@@ -62,17 +65,31 @@ function openAuthModal() {
6265
class="border-none"
6366
>
6467
<!-- Stacked avatars when connected -->
65-
<div v-if="hasAnyConnection" class="flex items-center relative">
68+
<div
69+
v-if="hasAnyConnection"
70+
class="flex items-center"
71+
:class="hasBothConnections ? '-space-x-2' : ''"
72+
>
73+
<!-- npm avatar (first/back) -->
74+
<span
75+
v-if="isNpmConnected"
76+
class="w-6 h-6 rounded-full bg-bg-muted ring-2 ring-bg flex items-center justify-center"
77+
>
78+
<span class="i-simple-icons:npm w-3 h-3 text-fg-muted" aria-hidden="true" />
79+
</span>
80+
81+
<!-- Atmosphere avatar (second/front, overlapping) -->
6682
<span
83+
v-if="atprotoUser"
6784
class="w-6 h-6 rounded-full bg-bg-muted ring-2 ring-bg flex items-center justify-center"
68-
aria-hidden="true"
85+
:class="hasBothConnections ? 'relative z-10' : ''"
6986
>
70-
<span class="size-1.5 rounded-full bg-green-600 absolute top-0 -inset-ie-0"></span>
71-
<span class="i-carbon-cloud w-3 h-3 text-fg-muted" />
87+
<span class="i-simple-icons:maildotru w-3 h-3 text-fg-muted" aria-hidden="true" />
7288
</span>
73-
<span class="sr-only">{{ $t('account_menu.connected') }}</span>
7489
</div>
75-
<span v-else class="font-mono text-sm">
90+
91+
<!-- "connect" text when not connected -->
92+
<span v-if="!hasAnyConnection" class="font-mono text-sm">
7693
{{ $t('account_menu.connect') }}
7794
</span>
7895

@@ -115,19 +132,8 @@ function openAuthModal() {
115132
class="w-full px-3 py-2.5 flex items-center gap-3 hover:bg-bg-muted transition-colors text-start rounded-md"
116133
@click="openConnectorModal"
117134
>
118-
<img
119-
v-if="npmAvatar"
120-
:src="npmAvatar"
121-
:alt="npmUser"
122-
width="32"
123-
height="32"
124-
class="w-8 h-8 rounded-full object-cover"
125-
/>
126-
<span
127-
v-else
128-
class="w-8 h-8 rounded-full bg-bg-muted flex items-center justify-center"
129-
>
130-
<span class="i-carbon-terminal w-4 h-4 text-fg-muted" aria-hidden="true" />
135+
<span class="w-8 h-8 rounded-full bg-bg-muted flex items-center justify-center">
136+
<span class="i-simple-icons:npm w-4 h-4 text-fg-muted" aria-hidden="true" />
131137
</span>
132138
<div class="flex-1 min-w-0">
133139
<div class="font-mono text-sm text-fg truncate">~{{ npmUser }}</div>
@@ -158,19 +164,8 @@ function openAuthModal() {
158164
class="w-full px-3 py-2.5 flex items-center gap-3 hover:bg-bg-muted transition-colors text-start rounded-md"
159165
@click="openAuthModal"
160166
>
161-
<img
162-
v-if="atprotoUser.avatar"
163-
:src="atprotoUser.avatar"
164-
:alt="atprotoUser.handle"
165-
width="32"
166-
height="32"
167-
class="w-8 h-8 rounded-full object-cover"
168-
/>
169-
<span
170-
v-else
171-
class="w-8 h-8 rounded-full bg-bg-muted flex items-center justify-center"
172-
>
173-
<span class="i-carbon-cloud w-4 h-4 text-fg-muted" aria-hidden="true" />
167+
<span class="w-8 h-8 rounded-full bg-bg-muted flex items-center justify-center">
168+
<span class="i-simple-icons:maildotru w-4 h-4 text-fg-muted" aria-hidden="true" />
174169
</span>
175170
<div class="flex-1 min-w-0">
176171
<div class="font-mono text-sm text-fg truncate">@{{ atprotoUser.handle }}</div>
@@ -200,7 +195,7 @@ function openAuthModal() {
200195
class="i-carbon-circle-dash w-4 h-4 text-yellow-500 animate-spin"
201196
aria-hidden="true"
202197
/>
203-
<span v-else class="i-carbon-terminal w-4 h-4 text-fg-muted" aria-hidden="true" />
198+
<span v-else class="i-simple-icons:npm w-4 h-4 text-fg-muted" aria-hidden="true" />
204199
</span>
205200
<div class="flex-1 min-w-0">
206201
<div class="font-mono text-sm text-fg">
@@ -222,7 +217,7 @@ function openAuthModal() {
222217
@click="openAuthModal"
223218
>
224219
<span class="w-8 h-8 rounded-full bg-bg-muted flex items-center justify-center">
225-
<span class="i-carbon-cloud w-4 h-4 text-fg-muted" aria-hidden="true" />
220+
<span class="i-simple-icons:maildotru w-4 h-4 text-fg-muted" aria-hidden="true" />
226221
</span>
227222
<div class="flex-1 min-w-0">
228223
<div class="font-mono text-sm text-fg">

0 commit comments

Comments
 (0)