mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 18:19:43 +00:00
fix(web): add account deletion page
This commit is contained in:
1 parent
e0813ba5a3
commit
9514835bf2
6 files changed
+135
-18
No files matched your search
@@ -0,0 +1,19 @@
|
||||
import { readFile } from 'node:fs/promises'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
const pagePath = new URL('./page.tsx', import.meta.url)
|
||||
|
||||
describe('/delete-account public deletion resource', () => {
|
||||
it('provides an accessible request route and the required deletion details', async () => {
|
||||
const page = await readFile(pagePath, 'utf8')
|
||||
|
||||
expect(page).toContain('Delete your Sauci account')
|
||||
expect(page).toContain('mailto:privacy@sauci.app')
|
||||
expect(page).toContain('without reinstalling the app')
|
||||
expect(page).toContain('Open Sauci and go to your Profile.')
|
||||
expect(page).toContain('Choose Delete Account and follow the confirmation steps.')
|
||||
expect(page).toContain('within 30 days')
|
||||
expect(page).toContain('required for legal purposes')
|
||||
expect(page).toContain('relationship data, question responses, match data, chat messages and photos')
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,89 @@
|
||||
import Link from 'next/link'
|
||||
import { ArrowLeft } from 'lucide-react'
|
||||
import type { Metadata } from 'next'
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Delete your Sauci account',
|
||||
description: 'How to delete your Sauci account and associated data.',
|
||||
}
|
||||
|
||||
export default function DeleteAccountPage() {
|
||||
return (
|
||||
<main className="min-h-screen bg-gradient-to-b from-background-light to-background">
|
||||
<header className="py-6 px-6 border-b border-white/5">
|
||||
<div className="max-w-4xl mx-auto flex items-center gap-4">
|
||||
<Link href="/" className="flex items-center gap-2 text-white/60 hover:text-white transition-colors">
|
||||
<ArrowLeft className="w-5 h-5" />
|
||||
<span>Back to Home</span>
|
||||
</Link>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div className="max-w-4xl mx-auto px-6 py-12">
|
||||
<h1 className="text-4xl font-bold mb-4">Delete your Sauci account</h1>
|
||||
<p className="text-white/70 leading-relaxed text-lg">
|
||||
You can request deletion of your Sauci account and associated data without reinstalling the app.
|
||||
</p>
|
||||
|
||||
<div className="glass p-6 my-8">
|
||||
<h2 className="text-2xl font-semibold text-white mb-3">Request deletion by email</h2>
|
||||
<p className="text-white/70 leading-relaxed mb-4">
|
||||
Email us from the address associated with your Sauci account and ask us to delete your account.
|
||||
</p>
|
||||
<a
|
||||
href="mailto:privacy@sauci.app?subject=Sauci%20account%20deletion%20request"
|
||||
className="inline-flex rounded-lg bg-primary px-5 py-3 font-semibold text-white hover:opacity-90 transition-opacity"
|
||||
>
|
||||
Request account deletion
|
||||
</a>
|
||||
<p className="text-white/60 mt-4">
|
||||
Or email <a href="mailto:privacy@sauci.app" className="text-primary hover:underline">privacy@sauci.app</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="prose prose-invert prose-lg max-w-none space-y-8">
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Delete your account in the Sauci app</h2>
|
||||
<ol className="list-decimal pl-6 text-white/70 space-y-2">
|
||||
<li>Open Sauci and go to your Profile.</li>
|
||||
<li>Select Account.</li>
|
||||
<li>Choose Delete Account and follow the confirmation steps.</li>
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">What deletion covers</h2>
|
||||
<p className="text-white/70 leading-relaxed">
|
||||
Deleting an account permanently removes the account and profile, relationship data, question responses, match data, chat messages and photos, encryption keys, and other cloud-stored data associated with that account.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Timing and limited retention</h2>
|
||||
<p className="text-white/70 leading-relaxed">
|
||||
We will delete or anonymize your personal information within 30 days. We may retain information where required for legal purposes.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-semibold text-white mb-4">Need help?</h2>
|
||||
<p className="text-white/70 leading-relaxed">
|
||||
For questions about deletion or your data, contact <a href="mailto:privacy@sauci.app" className="text-primary hover:underline">privacy@sauci.app</a>.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer className="py-8 px-6 border-t border-white/5">
|
||||
<div className="max-w-4xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-4">
|
||||
<span className="text-xl font-bold gradient-text">Sauci</span>
|
||||
<div className="flex gap-6 text-sm text-white/40">
|
||||
<Link href="/privacy" className="hover:text-white transition-colors">Privacy</Link>
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms</Link>
|
||||
<Link href="/" className="hover:text-white transition-colors">Home</Link>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</main>
|
||||
)
|
||||
}
|
||||
@@ -129,9 +129,12 @@ export default function PrivacyPolicy() {
|
||||
<li><strong>Portability:</strong> Request a copy of your data in a portable format.</li>
|
||||
<li><strong>Opt-out:</strong> Disable push notifications through your device settings.</li>
|
||||
</ul>
|
||||
<p className="text-white/70 leading-relaxed mt-4">
|
||||
To exercise these rights, please contact us at <a href="mailto:privacy@sauci.app" className="text-primary hover:underline">privacy@sauci.app</a>.
|
||||
</p>
|
||||
<p className="text-white/70 leading-relaxed mt-4">
|
||||
To exercise these rights, please contact us at <a href="mailto:privacy@sauci.app" className="text-primary hover:underline">privacy@sauci.app</a>.
|
||||
</p>
|
||||
<p className="text-white/70 leading-relaxed mt-4">
|
||||
For account deletion instructions and an email deletion request, visit our <Link href="/delete-account" className="text-primary hover:underline">account deletion page</Link>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
@@ -174,9 +177,10 @@ export default function PrivacyPolicy() {
|
||||
<footer className="py-8 px-6 border-t border-white/5">
|
||||
<div className="max-w-4xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-4">
|
||||
<span className="text-xl font-bold gradient-text">Sauci</span>
|
||||
<div className="flex gap-6 text-sm text-white/40">
|
||||
<Link href="/privacy" className="hover:text-white transition-colors">Privacy</Link>
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms</Link>
|
||||
<div className="flex gap-6 text-sm text-white/40">
|
||||
<Link href="/privacy" className="hover:text-white transition-colors">Privacy</Link>
|
||||
<Link href="/delete-account" className="hover:text-white transition-colors">Delete Account</Link>
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms</Link>
|
||||
<Link href="/" className="hover:text-white transition-colors">Home</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -173,9 +173,10 @@ export default function RedeemPage() {
|
||||
<footer className="py-8 px-6 border-t border-white/5 mt-auto">
|
||||
<div className="max-w-4xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-4">
|
||||
<span className="text-xl font-bold gradient-text">Sauci</span>
|
||||
<div className="flex gap-6 text-sm text-white/40">
|
||||
<Link href="/privacy" className="hover:text-white transition-colors">Privacy</Link>
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms</Link>
|
||||
<div className="flex gap-6 text-sm text-white/40">
|
||||
<Link href="/privacy" className="hover:text-white transition-colors">Privacy</Link>
|
||||
<Link href="/delete-account" className="hover:text-white transition-colors">Delete Account</Link>
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms</Link>
|
||||
<Link href="/" className="hover:text-white transition-colors">Home</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -235,9 +235,10 @@ export default function TermsAndConditions() {
|
||||
<footer className="py-8 px-6 border-t border-white/5">
|
||||
<div className="max-w-4xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-4">
|
||||
<span className="text-xl font-bold gradient-text">Sauci</span>
|
||||
<div className="flex gap-6 text-sm text-white/40">
|
||||
<Link href="/privacy" className="hover:text-white transition-colors">Privacy</Link>
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms</Link>
|
||||
<div className="flex gap-6 text-sm text-white/40">
|
||||
<Link href="/privacy" className="hover:text-white transition-colors">Privacy</Link>
|
||||
<Link href="/delete-account" className="hover:text-white transition-colors">Delete Account</Link>
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms</Link>
|
||||
<Link href="/" className="hover:text-white transition-colors">Home</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -24,12 +24,15 @@ export default function Footer() {
|
||||
|
||||
{/* Links */}
|
||||
<div className="flex flex-wrap items-center justify-center gap-6">
|
||||
<Link href="/privacy" className="text-white/60 hover:text-white transition-colors text-sm">
|
||||
Privacy Policy
|
||||
</Link>
|
||||
<Link href="/terms" className="text-white/60 hover:text-white transition-colors text-sm">
|
||||
Terms & Conditions
|
||||
</Link>
|
||||
<Link href="/privacy" className="text-white/60 hover:text-white transition-colors text-sm">
|
||||
Privacy Policy
|
||||
</Link>
|
||||
<Link href="/delete-account" className="text-white/60 hover:text-white transition-colors text-sm">
|
||||
Delete Account
|
||||
</Link>
|
||||
<Link href="/terms" className="text-white/60 hover:text-white transition-colors text-sm">
|
||||
Terms & Conditions
|
||||
</Link>
|
||||
<a href="mailto:support@sauci.app" className="text-white/60 hover:text-white transition-colors text-sm">
|
||||
Contact
|
||||
</a>
|
||||
|
||||
Reference in new issue
Block a user