Skip to content

Commit 6272460

Browse files
committed
feat(profile): layout action buttons as one on top and two on bottom
1 parent f76bc88 commit 6272460

2 files changed

Lines changed: 52 additions & 45 deletions

File tree

‎src/features/developer/components/user-profile-client.tsx‎

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,9 @@ export function UserProfileClient({ user, location, countryParam }: Props) {
318318
</div>
319319

320320
{/* Actions */}
321-
<div className="grid w-full grid-cols-2 gap-2 sm:flex sm:w-auto sm:items-center sm:justify-end sm:gap-2.5">
322-
<Link href={compareUrl as Route} className="w-full sm:w-auto">
321+
<div className="flex w-full flex-col gap-2 sm:w-auto sm:min-w-[280px] lg:min-w-[300px]">
322+
{/* Primary Action (1) */}
323+
<Link href={compareUrl as Route} className="w-full">
323324
<Button className="flex w-full items-center justify-center gap-1.5 px-3 text-xs shadow-sm sm:px-4 sm:text-sm">
324325
<Scale className="h-4 w-4 shrink-0" />
325326

@@ -329,47 +330,50 @@ export function UserProfileClient({ user, location, countryParam }: Props) {
329330
</Button>
330331
</Link>
331332

332-
<Button
333-
variant="secondary"
334-
size="md"
335-
onClick={handleCopyLink}
336-
className="flex w-full items-center justify-center gap-1.5 px-3 text-xs sm:px-4 sm:text-sm"
337-
aria-label={t("profile.copyLink")}
338-
>
339-
{copied ? (
340-
<>
341-
<Check className="h-4 w-4 shrink-0 text-green-500" />
342-
343-
<span className="truncate text-green-500 sm:hidden">
344-
{t("profile.copiedShort")}
345-
</span>
346-
347-
<span className="hidden truncate text-green-500 sm:inline">
348-
{t("profile.copied")}
349-
</span>
350-
</>
351-
) : (
352-
<>
353-
<Copy className="h-4 w-4 shrink-0" />
354-
355-
<span className="truncate sm:hidden">{t("profile.shareShort")}</span>
333+
{/* Secondary Actions (2) */}
334+
<div className="grid w-full grid-cols-2 gap-2">
335+
<Button
336+
variant="secondary"
337+
size="md"
338+
onClick={handleCopyLink}
339+
className="flex w-full items-center justify-center gap-1.5 px-2.5 text-xs sm:px-3 sm:text-sm"
340+
aria-label={t("profile.copyLink")}
341+
>
342+
{copied ? (
343+
<>
344+
<Check className="h-4 w-4 shrink-0 text-green-500" />
345+
346+
<span className="truncate text-green-500 sm:hidden">
347+
{t("profile.copiedShort")}
348+
</span>
349+
350+
<span className="hidden truncate text-green-500 sm:inline">
351+
{t("profile.copied")}
352+
</span>
353+
</>
354+
) : (
355+
<>
356+
<Copy className="h-4 w-4 shrink-0" />
357+
358+
<span className="truncate sm:hidden">{t("profile.shareShort")}</span>
359+
360+
<span className="hidden truncate sm:inline">{t("profile.copyLink")}</span>
361+
</>
362+
)}
363+
</Button>
356364

357-
<span className="hidden truncate sm:inline">{t("profile.copyLink")}</span>
358-
</>
359-
)}
360-
</Button>
361-
362-
{/* Get README Badge */}
363-
<Button
364-
variant="secondary"
365-
size="md"
366-
onClick={() => setBadgeDialogOpen(true)}
367-
className="col-span-2 flex w-full items-center justify-center gap-1.5 whitespace-nowrap px-3 text-xs sm:col-span-1 sm:w-auto sm:px-4 sm:text-sm"
368-
aria-label={t("profile.getBadge")}
369-
>
370-
<BadgeCheck className="h-4 w-4 shrink-0" />
371-
<span className="truncate">{t("profile.getBadge")}</span>
372-
</Button>
365+
{/* Get README Badge */}
366+
<Button
367+
variant="secondary"
368+
size="md"
369+
onClick={() => setBadgeDialogOpen(true)}
370+
className="flex w-full items-center justify-center gap-1.5 whitespace-nowrap px-2.5 text-xs sm:px-3 sm:text-sm"
371+
aria-label={t("profile.getBadge")}
372+
>
373+
<BadgeCheck className="h-4 w-4 shrink-0" />
374+
<span className="truncate">{t("profile.getBadge")}</span>
375+
</Button>
376+
</div>
373377
</div>
374378
</div>
375379
</section>

‎src/features/developer/components/user-profile-skeleton.tsx‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@ export function UserProfileSkeleton() {
1616
<Skeleton className="h-4 w-28 rounded-md" />
1717
</div>
1818
</div>
19-
<div className="flex flex-wrap gap-2 sm:justify-end">
20-
<Skeleton className="h-9 w-32 rounded-lg" />
21-
<Skeleton className="h-9 w-28 rounded-lg" />
19+
<div className="flex w-full flex-col gap-2 sm:w-auto sm:min-w-[280px] lg:min-w-[300px]">
20+
<Skeleton className="h-9 w-full rounded-lg" />
21+
<div className="grid w-full grid-cols-2 gap-2">
22+
<Skeleton className="h-9 w-full rounded-lg" />
23+
<Skeleton className="h-9 w-full rounded-lg" />
24+
</div>
2225
</div>
2326
</div>
2427
</CardContent>

0 commit comments

Comments
 (0)