diff --git a/web/components/manalink-card.tsx b/web/components/manalink-card.tsx
index 7785d9f9..f3baeaee 100644
--- a/web/components/manalink-card.tsx
+++ b/web/components/manalink-card.tsx
@@ -20,65 +20,56 @@ export type ManalinkInfo = {
}
export function ManalinkCard(props: {
- user?: User | null | undefined
- className?: string
info: ManalinkInfo
- isClaiming?: boolean
- onClaim?: () => void
+ className?: string
preview?: boolean
}) {
- const { user, className, isClaiming, info, onClaim, preview = false } = props
+ const { className, info, preview = false } = props
const { expiresTime, maxUses, uses, amount, message } = info
return (
-
-
-
- {maxUses != null
- ? `${maxUses - uses}/${maxUses} uses left`
- : `Unlimited use`}
-
-
- {expiresTime != null
- ? `Expires ${fromNow(expiresTime)}`
- : 'Never expires'}
-
-
-
-
![]()
+
-
-
-
- {formatMoney(amount)}
+
+
+ {maxUses != null
+ ? `${maxUses - uses}/${maxUses} uses left`
+ : `Unlimited use`}
+
+
+ {expiresTime != null
+ ? `Expires ${fromNow(expiresTime)}`
+ : 'Never expires'}
-
{message}
- {!preview && (
-
-
-
- )}
-
-
+
+
+
+
+ {formatMoney(amount)}
+
+ {message}
+
+
+
+
)
}
@@ -89,81 +80,79 @@ export function ManalinkCardFromView(props: {
}) {
const { className, link, highlightedSlug } = props
const { message, amount, expiresTime, maxUses, claims } = link
-
const [details, setDetails] = useState(false)
return (
- <>
-
+ setDetails(!details)}
>
-
- {details && (
-
- )}
-
-
- {maxUses != null
- ? `${maxUses - claims.length}/${maxUses} uses left`
- : `Unlimited use`}
-
-
- {expiresTime != null
- ? `Expires ${fromNow(expiresTime)}`
- : 'Never expires'}
-
-
-

-
-
-
-
- {formatMoney(amount)}
-
-
-
-
-
{message || '\n\n'}
+ )}
+
+
+ {maxUses != null
+ ? `${maxUses - claims.length}/${maxUses} uses left`
+ : `Unlimited use`}
+
+
+ {expiresTime != null
+ ? `Expires ${fromNow(expiresTime)}`
+ : 'Never expires'}
+
+

+
+
+
+
+ {formatMoney(amount)}
+
+
+
+
+ {message || '\n\n'}
- >
+
)
}
@@ -179,7 +168,7 @@ function ClaimsList(props: { link: Manalink; className: string }) {
{link.claims.length > 0 ? (
<>
{link.claims.map((claim) => (
-
+
))}
@@ -209,12 +198,24 @@ function Claim(props: { claim: Claim }) {
function getManalinkGradient(amount: number) {
if (amount < 20) {
- return 'from-slate-300 via-slate-500 to-slate-800'
+ return 'from-indigo-200 via-indigo-500 to-indigo-800'
} else if (amount >= 20 && amount < 50) {
- return 'from-indigo-300 via-indigo-500 to-indigo-800'
+ return 'from-fuchsia-200 via-fuchsia-500 to-fuchsia-800'
} else if (amount >= 50 && amount < 100) {
- return 'from-violet-300 via-violet-500 to-violet-800'
+ return 'from-rose-100 via-rose-400 to-rose-700'
} else if (amount >= 100) {
- return 'from-indigo-300 via-violet-500 to-rose-400'
+ return 'from-amber-200 via-amber-500 to-amber-700'
+ }
+}
+
+function getManalinkAmountColor(amount: number) {
+ if (amount < 20) {
+ return 'text-indigo-500'
+ } else if (amount >= 20 && amount < 50) {
+ return 'text-fuchsia-600'
+ } else if (amount >= 50 && amount < 100) {
+ return 'text-rose-600'
+ } else if (amount >= 100) {
+ return 'text-amber-600'
}
}
diff --git a/web/components/manalinks/create-links-button.tsx b/web/components/manalinks/create-links-button.tsx
index 99a41ce8..25b51bb2 100644
--- a/web/components/manalinks/create-links-button.tsx
+++ b/web/components/manalinks/create-links-button.tsx
@@ -37,6 +37,7 @@ export function CreateLinksButton(props: {
message: newManalink.message,
})
setHighlightedSlug(slug || '')
+ setTimeout(() => setHighlightedSlug(''), 3700)
}}
/>
diff --git a/web/pages/link/[slug].tsx b/web/pages/link/[slug].tsx
index d3691a67..119fec77 100644
--- a/web/pages/link/[slug].tsx
+++ b/web/pages/link/[slug].tsx
@@ -7,6 +7,8 @@ import { useManalink } from 'web/lib/firebase/manalinks'
import { ManalinkCard } from 'web/components/manalink-card'
import { useUser } from 'web/hooks/use-user'
import { firebaseLogin } from 'web/lib/firebase/users'
+import { Row } from 'web/components/layout/row'
+import { Button } from 'web/components/button'
export default function ClaimPage() {
const user = useUser()
@@ -29,33 +31,41 @@ export default function ClaimPage() {
url="/send"
/>
-
-
{
- setClaiming(true)
- try {
- if (user == null) {
- await firebaseLogin()
+
+
+
+
+
+
+
{error && (
Failed to claim manalink.