mirror of
https://github.com/marcogll/TaxHacker_s23.git
synced 2026-01-13 21:35:19 +00:00
chore: add support email
This commit is contained in:
@@ -33,7 +33,7 @@ export default async function ChoosePlanPage() {
|
|||||||
)}
|
)}
|
||||||
</CardContent>
|
</CardContent>
|
||||||
<div className="text-center text-muted-foreground">
|
<div className="text-center text-muted-foreground">
|
||||||
<Link href="mailto:me@vas3k.com" className="hover:text-primary transition-colors">
|
<Link href={`mailto:${config.app.supportEmail}`} className="hover:text-primary transition-colors">
|
||||||
Contact us for custom plans
|
Contact us for custom plans
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import config from "@/lib/config"
|
||||||
|
|
||||||
export default async function AI() {
|
export default async function AI() {
|
||||||
return (
|
return (
|
||||||
<div className="prose prose-slate max-w-none">
|
<div className="prose prose-slate max-w-none">
|
||||||
@@ -7,8 +9,8 @@ export default async function AI() {
|
|||||||
<strong className="text-slate-700">Effective Date</strong>: April 22, 2025
|
<strong className="text-slate-700">Effective Date</strong>: April 22, 2025
|
||||||
<br />
|
<br />
|
||||||
<strong className="text-slate-700">Contact Email</strong>:{" "}
|
<strong className="text-slate-700">Contact Email</strong>:{" "}
|
||||||
<a href="mailto:me@vas3k.com" className="text-blue-600 hover:text-blue-800">
|
<a href={`mailto:${config.app.supportEmail}`} className="text-blue-600 hover:text-blue-800">
|
||||||
me@vas3k.com
|
{config.app.supportEmail}
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<strong className="text-slate-700">Domain</strong>:{" "}
|
<strong className="text-slate-700">Domain</strong>:{" "}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import config from "@/lib/config"
|
||||||
|
|
||||||
export default async function Cookie() {
|
export default async function Cookie() {
|
||||||
return (
|
return (
|
||||||
<div className="prose prose-slate max-w-none">
|
<div className="prose prose-slate max-w-none">
|
||||||
@@ -11,8 +13,8 @@ export default async function Cookie() {
|
|||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<strong className="text-slate-700">Contact:</strong>{" "}
|
<strong className="text-slate-700">Contact:</strong>{" "}
|
||||||
<a href="mailto:me@vas3k.com" className="text-blue-600 hover:text-blue-800">
|
<a href={`mailto:${config.app.supportEmail}`} className="text-blue-600 hover:text-blue-800">
|
||||||
me@vas3k.com
|
{config.app.supportEmail}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -132,8 +134,8 @@ export default async function Cookie() {
|
|||||||
<h2 className="text-2xl font-semibold text-slate-800 mb-4">6. Contact</h2>
|
<h2 className="text-2xl font-semibold text-slate-800 mb-4">6. Contact</h2>
|
||||||
<p className="text-slate-700 mb-6 leading-relaxed">
|
<p className="text-slate-700 mb-6 leading-relaxed">
|
||||||
For questions about our cookie usage, please contact us at{" "}
|
For questions about our cookie usage, please contact us at{" "}
|
||||||
<a href="mailto:me@vas3k.com" className="text-blue-600 hover:text-blue-800">
|
<a href={`mailto:${config.app.supportEmail}`} className="text-blue-600 hover:text-blue-800">
|
||||||
me@vas3k.com
|
{config.app.supportEmail}
|
||||||
</a>
|
</a>
|
||||||
.
|
.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import config from "@/lib/config"
|
||||||
|
|
||||||
export default async function PrivacyPolicy() {
|
export default async function PrivacyPolicy() {
|
||||||
return (
|
return (
|
||||||
<div className="prose prose-slate max-w-none">
|
<div className="prose prose-slate max-w-none">
|
||||||
@@ -14,8 +16,8 @@ export default async function PrivacyPolicy() {
|
|||||||
<strong className="text-slate-700">Effective Date</strong>: April 22, 2025
|
<strong className="text-slate-700">Effective Date</strong>: April 22, 2025
|
||||||
<br />
|
<br />
|
||||||
<strong className="text-slate-700">Contact Email</strong>:{" "}
|
<strong className="text-slate-700">Contact Email</strong>:{" "}
|
||||||
<a href="mailto:me@vas3k.com" className="text-blue-600 hover:text-blue-800">
|
<a href={`mailto:${config.app.supportEmail}`} className="text-blue-600 hover:text-blue-800">
|
||||||
me@vas3k.com
|
{config.app.supportEmail}
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<strong className="text-slate-700">Domain</strong>:{" "}
|
<strong className="text-slate-700">Domain</strong>:{" "}
|
||||||
@@ -179,8 +181,8 @@ export default async function PrivacyPolicy() {
|
|||||||
|
|
||||||
<p className="text-slate-700 mb-6 leading-relaxed">
|
<p className="text-slate-700 mb-6 leading-relaxed">
|
||||||
To exercise your rights, contact us at{" "}
|
To exercise your rights, contact us at{" "}
|
||||||
<a href="mailto:me@vas3k.com" className="text-blue-600 hover:text-blue-800">
|
<a href={`mailto:${config.app.supportEmail}`} className="text-blue-600 hover:text-blue-800">
|
||||||
me@vas3k.com
|
{config.app.supportEmail}
|
||||||
</a>
|
</a>
|
||||||
.
|
.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import config from "@/lib/config"
|
||||||
|
|
||||||
export default async function Terms() {
|
export default async function Terms() {
|
||||||
return (
|
return (
|
||||||
<div className="prose prose-slate max-w-none">
|
<div className="prose prose-slate max-w-none">
|
||||||
@@ -11,8 +13,8 @@ export default async function Terms() {
|
|||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<strong className="text-slate-700">Contact:</strong>{" "}
|
<strong className="text-slate-700">Contact:</strong>{" "}
|
||||||
<a href="mailto:me@vas3k.com" className="text-blue-600 hover:text-blue-800">
|
<a href={`mailto:${config.app.supportEmail}`} className="text-blue-600 hover:text-blue-800">
|
||||||
me@vas3k.com
|
{config.app.supportEmail}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { NewsletterForm } from "@/app/landing/newsletter"
|
import { NewsletterForm } from "@/app/landing/newsletter"
|
||||||
import { ColoredText } from "@/components/ui/colored-text"
|
import { ColoredText } from "@/components/ui/colored-text"
|
||||||
|
import config from "@/lib/config"
|
||||||
import Image from "next/image"
|
import Image from "next/image"
|
||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
|
|
||||||
@@ -437,6 +438,9 @@ export default function LandingPage() {
|
|||||||
<section className="py-12 px-8">
|
<section className="py-12 px-8">
|
||||||
<div className="max-w-7xl mx-auto">
|
<div className="max-w-7xl mx-auto">
|
||||||
<div className="flex flex-wrap gap-4 justify-center">
|
<div className="flex flex-wrap gap-4 justify-center">
|
||||||
|
<Link href={`mailto:${config.app.supportEmail}`} className="text-sm text-gray-600 hover:text-gray-900">
|
||||||
|
Contact Us
|
||||||
|
</Link>
|
||||||
<Link href="/docs/terms" className="text-sm text-gray-600 hover:text-gray-900">
|
<Link href="/docs/terms" className="text-sm text-gray-600 hover:text-gray-900">
|
||||||
Terms of Service
|
Terms of Service
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ import { User } from "@prisma/client"
|
|||||||
import { PricingCard } from "@/components/auth/pricing-card"
|
import { PricingCard } from "@/components/auth/pricing-card"
|
||||||
import { Button } from "@/components/ui/button"
|
import { Button } from "@/components/ui/button"
|
||||||
import { Card } from "@/components/ui/card"
|
import { Card } from "@/components/ui/card"
|
||||||
|
import config from "@/lib/config"
|
||||||
import { PLANS } from "@/lib/stripe"
|
import { PLANS } from "@/lib/stripe"
|
||||||
import { formatBytes, formatNumber } from "@/lib/utils"
|
import { formatBytes, formatNumber } from "@/lib/utils"
|
||||||
import { formatDate } from "date-fns"
|
import { formatDate } from "date-fns"
|
||||||
import { BrainCog, CalendarSync, HardDrive } from "lucide-react"
|
import { BrainCog, CalendarSync, HardDrive } from "lucide-react"
|
||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
import { Badge } from "../ui/badge"
|
import { Badge } from "../ui/badge"
|
||||||
|
|
||||||
export function SubscriptionPlan({ user }: { user: User }) {
|
export function SubscriptionPlan({ user }: { user: User }) {
|
||||||
const plan = PLANS[user.membershipPlan as keyof typeof PLANS] || PLANS.unlimited
|
const plan = PLANS[user.membershipPlan as keyof typeof PLANS] || PLANS.unlimited
|
||||||
|
|
||||||
@@ -44,13 +46,24 @@ export function SubscriptionPlan({ user }: { user: User }) {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{user.stripeCustomerId && (
|
|
||||||
<div className="space-y-4 mt-6">
|
<div className="space-y-4 mt-6 text-center">
|
||||||
|
{user.stripeCustomerId && (
|
||||||
<Button asChild className="w-full">
|
<Button asChild className="w-full">
|
||||||
<Link href="/api/stripe/portal">Manage Subscription</Link>
|
<Link href="/api/stripe/portal">Manage Subscription</Link>
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
)}
|
||||||
)}
|
|
||||||
|
{!user.stripeCustomerId && user.membershipExpiresAt && (
|
||||||
|
<Button asChild className="w-full">
|
||||||
|
<Link href="/cloud">Buy Subscription</Link>
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<Link href={`mailto:${config.app.supportEmail}`} className="block text-sm text-muted-foreground">
|
||||||
|
Contact Us
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ const config = {
|
|||||||
description: "Your personal AI helper for taxes",
|
description: "Your personal AI helper for taxes",
|
||||||
version: process.env.npm_package_version || "0.0.1",
|
version: process.env.npm_package_version || "0.0.1",
|
||||||
baseURL: env.BASE_URL || `http://localhost:${env.PORT || "7331"}`,
|
baseURL: env.BASE_URL || `http://localhost:${env.PORT || "7331"}`,
|
||||||
|
supportEmail: "me@vas3k.com",
|
||||||
},
|
},
|
||||||
upload: {
|
upload: {
|
||||||
acceptedMimeTypes: "image/*,.pdf,.doc,.docx,.xls,.xlsx",
|
acceptedMimeTypes: "image/*,.pdf,.doc,.docx,.xls,.xlsx",
|
||||||
|
|||||||
Reference in New Issue
Block a user