Skip to content

Commit 31c8f47

Browse files
committed
feat(rewards): add mobile QR code link hint and enhance mobile sharing UI
- Introduced a new hint for the mobile QR code that directs users to the Nexu GitHub repository. - Improved the mobile sharing section's UI with enhanced styling and animations for better user experience. - Updated English and Chinese translations to reflect the new mobile QR code link hint.
1 parent eebccd1 commit 31c8f47

1 file changed

Lines changed: 57 additions & 15 deletions

File tree

apps/web/src/pages/rewards.tsx

Lines changed: 57 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -562,29 +562,64 @@ export function RewardsPage() {
562562
<TabsContent value="web">
563563
{renderTaskList(webTasks)}
564564
</TabsContent>
565-
<TabsContent value="mobile">
565+
<TabsContent
566+
value="mobile"
567+
className="animate-fade-in-up"
568+
>
566569
{mobileShareTask ? (
567-
<div className="flex items-center gap-4 rounded-lg px-3 py-3">
568-
<div className="shrink-0 rounded-xl border border-border bg-white p-1.5">
569-
<QRCodeSVG
570-
value={MOBILE_SHARE_QR_URL}
571-
size={56}
572-
/>
573-
</div>
574-
<div className="min-w-0 flex-1">
575-
<div className="flex items-center gap-1.5">
576-
<span className="text-[13px] font-medium text-text-primary">
570+
<div
571+
className={cn(
572+
"group flex flex-col items-center gap-4",
573+
"rounded-[20px] border border-[var(--color-border-subtle)] bg-surface-1",
574+
"px-6 py-6 shadow-[var(--shadow-refine)]",
575+
"transition-[box-shadow] duration-300 ease-out",
576+
"hover:shadow-[var(--shadow-elevated)]",
577+
)}
578+
>
579+
<div className="flex flex-col items-center gap-1.5 text-center">
580+
<div className="flex items-center gap-2">
581+
<span className="text-[14px] font-semibold leading-tight text-text-primary">
577582
{t("rewards.mobileQrHint")}
578583
</span>
579-
<span className="text-[11px] font-semibold leading-none tabular-nums text-[var(--color-success)]">
584+
<span
585+
className={cn(
586+
"inline-flex items-center rounded-full px-2.5 py-0.5",
587+
"text-[11px] font-semibold leading-none tabular-nums",
588+
"bg-[var(--color-success-muted)] text-[var(--color-success)]",
589+
"ring-1 ring-inset ring-[var(--color-success-border)]",
590+
)}
591+
>
580592
+{formatRewardAmount(mobileShareTask.reward)}{" "}
581593
{t("layout.sidebar.balanceUnit")}
582594
</span>
583595
</div>
584-
<p className="mt-0.5 text-[11px] text-text-muted">
596+
<p className="max-w-[320px] text-[12px] leading-relaxed text-text-muted">
585597
{t("rewards.mobileQrDesc")}
586598
</p>
587599
</div>
600+
601+
<div
602+
className={cn(
603+
"animate-breathe rounded-[20px] border bg-white p-4",
604+
"transition-transform duration-300 ease-out",
605+
"group-hover:scale-[1.02]",
606+
)}
607+
>
608+
<QRCodeSVG
609+
value={MOBILE_SHARE_QR_URL}
610+
size={168}
611+
level="H"
612+
bgColor="#ffffff"
613+
fgColor="#1c1f23"
614+
imageSettings={{
615+
src: "/favicon/apple-touch-icon.png",
616+
height: 38,
617+
width: 38,
618+
excavate: true,
619+
}}
620+
/>
621+
</div>
622+
588623
<button
589624
type="button"
590625
disabled={
@@ -596,10 +631,17 @@ export function RewardsPage() {
596631
void handleTaskAction(mobileShareTask)
597632
}
598633
className={cn(
599-
"inline-flex h-[26px] shrink-0 items-center justify-center gap-2 rounded-full px-3 text-[11px] font-medium leading-none transition-all",
634+
"inline-flex h-[36px] items-center justify-center gap-2 rounded-full px-5",
635+
"text-[12px] font-semibold leading-none",
636+
"transition-all duration-200 active:scale-[0.98]",
600637
mobileShareTask.isClaimed
601638
? "bg-surface-2 text-text-muted"
602-
: "border border-[var(--color-brand-primary)]/30 text-[var(--color-brand-primary)] hover:bg-[var(--color-brand-primary)]/5",
639+
: cn(
640+
"bg-[var(--color-accent)] text-white",
641+
"shadow-[var(--shadow-card)]",
642+
"hover:bg-[var(--color-accent-hover)] hover:shadow-[var(--shadow-refine)]",
643+
"disabled:cursor-not-allowed disabled:bg-[var(--color-accent)]/60",
644+
),
603645
)}
604646
>
605647
{claimingTaskId === mobileShareTask.id ? (

0 commit comments

Comments
 (0)