mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
refactor: simplify analytics consent page for higher opt-in
Remove two-column bullet lists, vendor names, and fear-priming "NEVER" list. Replace with a single benefit-led paragraph and privacy note.
This commit is contained in:
@@ -40,63 +40,32 @@ export function AnalyticsConsentPage() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex min-h-screen items-center justify-center bg-background p-6">
|
<div className="flex min-h-screen items-center justify-center bg-background p-6">
|
||||||
<div className="w-full max-w-lg space-y-6 rounded-2xl border border-border bg-card p-8 shadow-lg">
|
<div className="w-full max-w-[400px] space-y-6 rounded-2xl border border-border bg-card p-9 shadow-lg">
|
||||||
<div className="flex justify-center">
|
<div className="flex justify-center">
|
||||||
<div className="flex h-12 w-12 items-center justify-center rounded-full bg-primary/10">
|
<div className="flex h-11 w-11 items-center justify-center rounded-full bg-primary/10">
|
||||||
<Shield className="h-6 w-6 text-primary" />
|
<Shield className="h-[22px] w-[22px] text-primary" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="space-y-2 text-center">
|
<div className="space-y-3 text-center">
|
||||||
<h1 className="text-xl font-semibold text-foreground">{t.consentTitle}</h1>
|
<h1 className="text-lg font-semibold text-foreground">{t.consentTitle}</h1>
|
||||||
<p className="text-sm text-muted-foreground">{t.consentDescription}</p>
|
<p className="text-sm leading-relaxed text-muted-foreground">{t.consentDescription}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p className="text-center text-sm font-medium text-foreground">{t.consentPrivacy}</p>
|
<p className="text-center text-xs text-muted-foreground/60">{t.consentChangeable}</p>
|
||||||
|
|
||||||
<div className="grid grid-cols-2 gap-6 text-sm">
|
<div className="flex gap-2.5">
|
||||||
<div>
|
|
||||||
<p className="mb-2 font-medium text-foreground">{t.whatShared}</p>
|
|
||||||
<ul className="space-y-1 text-muted-foreground">
|
|
||||||
{t.whatSharedItems.map((item) => (
|
|
||||||
<li key={item} className="flex items-start gap-1.5">
|
|
||||||
<span className="mt-1 text-xs">·</span>
|
|
||||||
{item}
|
|
||||||
</li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<p className="mb-2 font-medium text-foreground">{t.whatNever}</p>
|
|
||||||
<ul className="space-y-1 text-muted-foreground">
|
|
||||||
{t.whatNeverItems.map((item) => (
|
|
||||||
<li key={item} className="flex items-start gap-1.5">
|
|
||||||
<span className="mt-1 text-xs">·</span>
|
|
||||||
{item}
|
|
||||||
</li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p className="text-center text-xs text-muted-foreground">
|
|
||||||
{t.consentProviders}
|
|
||||||
<br />
|
|
||||||
{t.consentChangeable}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex gap-3">
|
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={handleAccept}
|
onClick={handleAccept}
|
||||||
className="flex-1 rounded-lg bg-primary px-4 py-2.5 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90"
|
className="flex-1 rounded-[10px] bg-primary px-4 py-2.5 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90"
|
||||||
>
|
>
|
||||||
{t.acceptButton}
|
{t.acceptButton}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={handleDecline}
|
onClick={handleDecline}
|
||||||
className="flex-1 rounded-lg border border-border px-4 py-2.5 text-sm font-medium text-foreground transition-colors hover:bg-muted"
|
className="flex-1 rounded-[10px] border border-border px-4 py-2.5 text-sm font-medium text-muted-foreground transition-colors hover:bg-muted"
|
||||||
>
|
>
|
||||||
{t.declineButton}
|
{t.declineButton}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -302,26 +302,12 @@ export const en = {
|
|||||||
settings: "Settings",
|
settings: "Settings",
|
||||||
},
|
},
|
||||||
analytics: {
|
analytics: {
|
||||||
consentTitle: "Make ashim better for you",
|
consentTitle: "Help improve ashim",
|
||||||
consentDescription:
|
consentDescription:
|
||||||
'Anonymous product analytics — like "crop tool used" or "an error occurred" — help us fix bugs faster and build the tools you actually want.',
|
"Anonymous usage stats help us fix bugs and build the tools you actually need. Your images and files stay on your machine.",
|
||||||
consentPrivacy: "Your images never leave your machine. Ever.",
|
consentChangeable: "You can turn this off anytime in Settings.",
|
||||||
whatShared: "What's shared:",
|
|
||||||
whatSharedItems: [
|
|
||||||
"Which tools you use",
|
|
||||||
"Error reports (no file data)",
|
|
||||||
"App version and performance",
|
|
||||||
],
|
|
||||||
whatNever: "What NEVER leaves your machine:",
|
|
||||||
whatNeverItems: [
|
|
||||||
"Your images, PDFs, and files",
|
|
||||||
"File names and contents",
|
|
||||||
"Any personal information",
|
|
||||||
],
|
|
||||||
consentProviders: "Data is sent to PostHog (analytics) and Sentry (errors) — both open-source.",
|
|
||||||
consentChangeable: "You can change this anytime in Settings.",
|
|
||||||
acceptButton: "Sure, sounds good",
|
acceptButton: "Sure, sounds good",
|
||||||
declineButton: "Maybe later",
|
declineButton: "Not right now",
|
||||||
settingsTitle: "Product Analytics",
|
settingsTitle: "Product Analytics",
|
||||||
settingsDescription: "Share anonymous usage data to help improve ashim.",
|
settingsDescription: "Share anonymous usage data to help improve ashim.",
|
||||||
settingsPrivacy: "Your images never leave your machine.",
|
settingsPrivacy: "Your images never leave your machine.",
|
||||||
|
|||||||
Reference in New Issue
Block a user