Merge version_1 into main #3
@@ -2,13 +2,14 @@
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
||||
import HeroCentered from "@/components/sections/hero/HeroCentered";
|
||||
import FeatureCardMedia from "@/components/sections/feature/FeatureCardMedia";
|
||||
import InlineImageSplitTextAbout from "@/components/sections/about/InlineImageSplitTextAbout";
|
||||
import MetricCardThree from "@/components/sections/metrics/MetricCardThree";
|
||||
import TestimonialCardFifteen from "@/components/sections/testimonial/TestimonialCardFifteen";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||
import Link from "next/link";
|
||||
import { Heart, Users, Zap, Shield } from "lucide-react";
|
||||
import { Users, CheckCircle, Star, TrendingUp } from "lucide-react";
|
||||
|
||||
export default function AboutPage() {
|
||||
return (
|
||||
@@ -18,7 +19,7 @@ export default function AboutPage() {
|
||||
borderRadius="pill"
|
||||
contentWidth="smallMedium"
|
||||
sizing="medium"
|
||||
background="fluid"
|
||||
background="circleGradient"
|
||||
cardStyle="gradient-radial"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="radial-glow"
|
||||
@@ -39,96 +40,93 @@ export default function AboutPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about-mission" data-section="about-mission">
|
||||
<InlineImageSplitTextAbout
|
||||
heading={[
|
||||
{
|
||||
type: "text",
|
||||
content: "Our Mission: Connecting Communities Through Quality Services"
|
||||
}
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroCentered
|
||||
background={{ variant: "plain" }}
|
||||
avatars={[
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-headshot-of-a-satisfied-cus-1773216989649-13d1ab0e.png", alt: "Customer profile" },
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/diverse-professional-portrait-showing-co-1773216990905-b21808e3.png", alt: "Service provider profile" },
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-service-provider-portrait-e-1773216991756-704181ab.png", alt: "Verified tasker profile" }
|
||||
]}
|
||||
useInvertedBackground={false}
|
||||
avatarText="Trusted by 50,000+ users"
|
||||
title="About TaskHub"
|
||||
description="Our mission is to connect people with trusted local service providers, making it easy and affordable to get things done."
|
||||
buttons={[
|
||||
{
|
||||
text: "Join Us",
|
||||
href: "/services"
|
||||
},
|
||||
{
|
||||
text: "Become a Partner",
|
||||
href: "/become-tasker"
|
||||
}
|
||||
{ text: "Our Story", href: "#story" },
|
||||
{ text: "Get Started", href: "/services" }
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about-metrics" data-section="about-metrics">
|
||||
<MetricCardThree
|
||||
metrics={[
|
||||
<div id="story" data-section="story">
|
||||
<InlineImageSplitTextAbout
|
||||
heading={[
|
||||
{ type: "text", content: "Founded on the principle that quality service shouldn't be complicated" }
|
||||
]}
|
||||
useInvertedBackground={false}
|
||||
buttons={[
|
||||
{ text: "Learn More", href: "#values" },
|
||||
{ text: "Join Us", href: "/become-tasker" }
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="values" data-section="values">
|
||||
<FeatureCardMedia
|
||||
features={[
|
||||
{
|
||||
id: "users",
|
||||
icon: Users,
|
||||
title: "Active Users",
|
||||
value: "50,000+"
|
||||
id: "trust", title: "Trust & Safety", description: "Every tasker is verified and rated. We handle disputes and protect both customers and service providers with secure payments and insurance.", tag: "Core Value", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/secure-payment-gateway-interface-shows-m-1773216991217-490181fe.png", imageAlt: "Secure payment confirmation"
|
||||
},
|
||||
{
|
||||
id: "tasks",
|
||||
icon: Zap,
|
||||
title: "Tasks Completed",
|
||||
value: "150,000+"
|
||||
id: "transparency", title: "Transparent Pricing", description: "No hidden fees. Know exactly what you'll pay before confirming a task. Fair pricing that rewards quality service providers.", tag: "Core Value", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/clean-intuitive-task-posting-form-interf-1773216991310-086e73a5.png", imageAlt: "Task posting interface"
|
||||
},
|
||||
{
|
||||
id: "providers",
|
||||
icon: Heart,
|
||||
title: "Verified Taskers",
|
||||
value: "8,000+"
|
||||
id: "community", title: "Strong Community", description: "We're building a community where skilled individuals can grow their business and customers get reliable help. Everyone thrives together.", tag: "Core Value", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/a-vibrant-modern-marketplace-interface-s-1773216991531-1682959e.png", imageAlt: "TaskHub marketplace community"
|
||||
},
|
||||
{
|
||||
id: "rating",
|
||||
icon: Shield,
|
||||
title: "Avg. Rating",
|
||||
value: "4.8/5"
|
||||
id: "innovation", title: "Continuous Innovation", description: "We're always improving the platform based on user feedback. New features, better matching, and enhanced safety are priorities.", tag: "Core Value", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/real-time-messaging-chat-interface-betwe-1773216993321-669574a8.png", imageAlt: "In-app messaging interface"
|
||||
}
|
||||
]}
|
||||
title="TaskHub Impact"
|
||||
description="Building trust and delivering quality in every transaction"
|
||||
tag="Our Success"
|
||||
title="Our Core Values"
|
||||
description="What drives everything we do at TaskHub"
|
||||
tag="About Us"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricCardThree
|
||||
metrics={[
|
||||
{ id: "users", icon: Users, title: "Active Users", value: "50,000+" },
|
||||
{ id: "tasks", icon: CheckCircle, title: "Tasks Completed", value: "150,000+" },
|
||||
{ id: "providers", icon: Star, title: "Verified Taskers", value: "8,000+" },
|
||||
{ id: "rating", icon: TrendingUp, title: "Avg. Rating", value: "4.8/5" }
|
||||
]}
|
||||
title="TaskHub by the Numbers"
|
||||
description="Join thousands of satisfied customers and service providers"
|
||||
tag="Impact"
|
||||
animationType="scale-rotate"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about-testimonial" data-section="about-testimonial">
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardFifteen
|
||||
testimonial="TaskHub has transformed not just how I find help, but how I think about our community. The platform makes it easy to connect with trusted, verified professionals who genuinely care about quality work. It's more than a marketplace—it's a movement toward supporting local talent."
|
||||
testimonial="TaskHub saved me hours of searching for reliable help. The entire process was smooth, the tasker was professional, and the pricing was transparent. I've already recommended it to friends!"
|
||||
rating={5}
|
||||
author="Sarah Mitchell, Community Leader"
|
||||
author="Jessica Chen, Busy Professional"
|
||||
avatars={[
|
||||
{
|
||||
src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-headshot-of-a-satisfied-cus-1773216989649-13d1ab0e.png",
|
||||
alt: "Sarah Mitchell"
|
||||
},
|
||||
{
|
||||
src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/diverse-professional-portrait-showing-co-1773216990905-b21808e3.png",
|
||||
alt: "Community member"
|
||||
},
|
||||
{
|
||||
src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-service-provider-portrait-e-1773216991756-704181ab.png",
|
||||
alt: "Service provider"
|
||||
},
|
||||
{
|
||||
src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/satisfied-customer-portrait-warm-friendl-1773216990379-5933941e.png",
|
||||
alt: "Happy customer"
|
||||
},
|
||||
{
|
||||
src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-expert-portrait-confident-e-1773216992344-ca991088.png",
|
||||
alt: "Expert professional"
|
||||
},
|
||||
{
|
||||
src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/diverse-professional-portrait-friendly-a-1773216989776-4b07605b.png",
|
||||
alt: "Friendly professional"
|
||||
}
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-headshot-of-a-satisfied-cus-1773216989649-13d1ab0e.png", alt: "Jessica Chen" },
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/diverse-professional-portrait-showing-co-1773216990905-b21808e3.png", alt: "Customer testimonial" },
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-service-provider-portrait-e-1773216991756-704181ab.png", alt: "Satisfied customer" },
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/satisfied-customer-portrait-warm-friendl-1773216990379-5933941e.png", alt: "Happy user" },
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/professional-expert-portrait-confident-e-1773216992344-ca991088.png", alt: "Verified customer" },
|
||||
{ src: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/diverse-professional-portrait-friendly-a-1773216989776-4b07605b.png", alt: "TaskHub user" }
|
||||
]}
|
||||
ratingAnimation="slide-up"
|
||||
avatarsAnimation="slide-up"
|
||||
@@ -136,93 +134,31 @@ export default function AboutPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about-cta" data-section="about-cta">
|
||||
<ContactCTA
|
||||
tag="Be Part of Something Bigger"
|
||||
tagIcon={Heart}
|
||||
tagAnimation="slide-up"
|
||||
title="Help Us Build the Future of Local Services"
|
||||
description="Whether you need services or want to provide them, TaskHub is your platform for meaningful connections and quality work."
|
||||
buttons={[
|
||||
{
|
||||
text: "Post Your First Task",
|
||||
href: "/services"
|
||||
},
|
||||
{
|
||||
text: "Start Earning Today",
|
||||
href: "/become-tasker"
|
||||
}
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "fluid" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
columns={[
|
||||
{
|
||||
title: "Platform",
|
||||
items: [
|
||||
{
|
||||
label: "Post a Task",
|
||||
href: "/services"
|
||||
},
|
||||
{
|
||||
label: "Find Taskers",
|
||||
href: "/services"
|
||||
},
|
||||
{
|
||||
label: "Become a Tasker",
|
||||
href: "/become-tasker"
|
||||
},
|
||||
{
|
||||
label: "Browse All Services",
|
||||
href: "/services"
|
||||
}
|
||||
title: "Platform", items: [
|
||||
{ label: "Post a Task", href: "/services" },
|
||||
{ label: "Find Taskers", href: "/services" },
|
||||
{ label: "Become a Tasker", href: "/become-tasker" },
|
||||
{ label: "Browse All Services", href: "/services" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
{
|
||||
label: "About Us",
|
||||
href: "/about"
|
||||
},
|
||||
{
|
||||
label: "How It Works",
|
||||
href: "/how-it-works"
|
||||
},
|
||||
{
|
||||
label: "Pricing",
|
||||
href: "/pricing"
|
||||
},
|
||||
{
|
||||
label: "Contact",
|
||||
href: "/contact"
|
||||
}
|
||||
title: "Company", items: [
|
||||
{ label: "About Us", href: "/about" },
|
||||
{ label: "How It Works", href: "/how-it-works" },
|
||||
{ label: "Pricing", href: "/pricing" },
|
||||
{ label: "Contact", href: "/contact" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#"
|
||||
},
|
||||
{
|
||||
label: "Terms of Service",
|
||||
href: "#"
|
||||
},
|
||||
{
|
||||
label: "Security",
|
||||
href: "#"
|
||||
},
|
||||
{
|
||||
label: "Trust & Safety",
|
||||
href: "#"
|
||||
}
|
||||
title: "Legal", items: [
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
{ label: "Terms of Service", href: "#" },
|
||||
{ label: "Security", href: "#" },
|
||||
{ label: "Trust & Safety", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
|
||||
@@ -18,7 +18,7 @@ export default function BecomeTaskerPage() {
|
||||
borderRadius="pill"
|
||||
contentWidth="smallMedium"
|
||||
sizing="medium"
|
||||
background="fluid"
|
||||
background="circleGradient"
|
||||
cardStyle="gradient-radial"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="radial-glow"
|
||||
@@ -135,7 +135,7 @@ export default function BecomeTaskerPage() {
|
||||
}
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "fluid" }}
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -3,50 +3,11 @@
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FaqSplitMedia from "@/components/sections/faq/FaqSplitMedia";
|
||||
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||
import Link from "next/link";
|
||||
import { Mail, Phone, MapPin } from "lucide-react";
|
||||
import { Mail } from "lucide-react";
|
||||
|
||||
export default function ContactPage() {
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "How It Works", id: "/" },
|
||||
{ name: "Services", id: "/" },
|
||||
{ name: "Pricing", id: "/" },
|
||||
{ name: "Contact", id: "/contact" }
|
||||
];
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Platform",
|
||||
items: [
|
||||
{ label: "Post a Task", href: "/" },
|
||||
{ label: "Find Taskers", href: "/" },
|
||||
{ label: "Become a Tasker", href: "/" },
|
||||
{ label: "Browse All Services", href: "/" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
{ label: "About Us", href: "/" },
|
||||
{ label: "How It Works", href: "/" },
|
||||
{ label: "Pricing", href: "/" },
|
||||
{ label: "Contact", href: "/contact" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
{ label: "Terms of Service", href: "#" },
|
||||
{ label: "Security", href: "#" },
|
||||
{ label: "Trust & Safety", href: "#" }
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="text-stagger"
|
||||
@@ -54,7 +15,7 @@ export default function ContactPage() {
|
||||
borderRadius="pill"
|
||||
contentWidth="smallMedium"
|
||||
sizing="medium"
|
||||
background="fluid"
|
||||
background="circleGradient"
|
||||
cardStyle="gradient-radial"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="radial-glow"
|
||||
@@ -62,119 +23,64 @@ export default function ContactPage() {
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={navItems}
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "How It Works", id: "/how-it-works" },
|
||||
{ name: "Services", id: "/services" },
|
||||
{ name: "Pricing", id: "/pricing" },
|
||||
{ name: "Contact", id: "/contact" }
|
||||
]}
|
||||
brandName="TaskHub"
|
||||
bottomLeftText="Local Services, Global Standards"
|
||||
bottomRightText="hello@taskhub.com"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-cta" data-section="contact-cta">
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactCTA
|
||||
tag="Get in Touch"
|
||||
tagIcon={Mail}
|
||||
tagAnimation="slide-up"
|
||||
title="Ready to Connect?"
|
||||
description="Have questions about TaskHub? Our support team is here to help. Reach out anytime, and we'll get back to you within 24 hours."
|
||||
title="Contact TaskHub Support"
|
||||
description="Have questions? Our support team is here to help. Reach out to us and we'll get back to you as soon as possible."
|
||||
buttons={[
|
||||
{ text: "Send us an Email", href: "mailto:hello@taskhub.com" },
|
||||
{ text: "Return to Home", href: "/" }
|
||||
{ text: "Send Message", href: "#" },
|
||||
{ text: "Schedule Call", href: "#" }
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "fluid" }}
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-info" data-section="contact-info" className="mx-auto px-4 md:px-6 py-16 md:py-24">
|
||||
<div className="max-w-4xl mx-auto">
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<div className="text-center">
|
||||
<div className="flex justify-center mb-4">
|
||||
<div className="w-12 h-12 rounded-full bg-[#c68a62] flex items-center justify-center">
|
||||
<Mail className="w-6 h-6 text-white" />
|
||||
</div>
|
||||
</div>
|
||||
<h3 className="text-lg font-semibold text-[#27231f] mb-2">Email</h3>
|
||||
<p className="text-[#27231f] opacity-70">hello@taskhub.com</p>
|
||||
<p className="text-sm text-[#27231f] opacity-50 mt-2">We respond within 24 hours</p>
|
||||
</div>
|
||||
|
||||
<div className="text-center">
|
||||
<div className="flex justify-center mb-4">
|
||||
<div className="w-12 h-12 rounded-full bg-[#c68a62] flex items-center justify-center">
|
||||
<Phone className="w-6 h-6 text-white" />
|
||||
</div>
|
||||
</div>
|
||||
<h3 className="text-lg font-semibold text-[#27231f] mb-2">Phone</h3>
|
||||
<p className="text-[#27231f] opacity-70">1-800-TASKHUB</p>
|
||||
<p className="text-sm text-[#27231f] opacity-50 mt-2">Available 9 AM - 6 PM EST</p>
|
||||
</div>
|
||||
|
||||
<div className="text-center">
|
||||
<div className="flex justify-center mb-4">
|
||||
<div className="w-12 h-12 rounded-full bg-[#c68a62] flex items-center justify-center">
|
||||
<MapPin className="w-6 h-6 text-white" />
|
||||
</div>
|
||||
</div>
|
||||
<h3 className="text-lg font-semibold text-[#27231f] mb-2">Office</h3>
|
||||
<p className="text-[#27231f] opacity-70">123 Main Street</p>
|
||||
<p className="text-sm text-[#27231f] opacity-50 mt-2">New York, NY 10001</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqSplitMedia
|
||||
faqs={[
|
||||
{
|
||||
id: "faq-1",
|
||||
title: "How do I contact customer support?",
|
||||
content: "You can reach our support team via email at hello@taskhub.com, phone at 1-800-TASKHUB, or use the contact form on this page. We typically respond within 24 hours."
|
||||
},
|
||||
{
|
||||
id: "faq-2",
|
||||
title: "What are your business hours?",
|
||||
content: "Our customer support team is available Monday through Friday, 9 AM to 6 PM EST. For urgent issues, you can submit a support ticket anytime, and we'll prioritize your request."
|
||||
},
|
||||
{
|
||||
id: "faq-3",
|
||||
title: "Can I cancel or modify a posted task?",
|
||||
content: "Yes, you can cancel or modify a task before any taskers have accepted it. If taskers have already bid on your task, you'll need to contact support for assistance with modifications."
|
||||
},
|
||||
{
|
||||
id: "faq-4",
|
||||
title: "How do I dispute a payment?",
|
||||
content: "If you have an issue with a payment or the work completed, contact our support team within 7 days. We'll review the case and work with both parties to find a fair resolution."
|
||||
},
|
||||
{
|
||||
id: "faq-5",
|
||||
title: "Is there a warranty on completed work?",
|
||||
content: "TaskHub offers a satisfaction guarantee for all services. If you're unhappy with the completed work, you can request a refund within 24 hours of task completion."
|
||||
},
|
||||
{
|
||||
id: "faq-6",
|
||||
title: "How can I provide feedback about my experience?",
|
||||
content: "We'd love to hear from you! After each completed task, you'll receive a survey to rate your experience. You can also email us directly with detailed feedback."
|
||||
}
|
||||
]}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3An8K9MhOlyvHgqUR2heo9q9H1O/a-vibrant-modern-marketplace-interface-s-1773216991531-1682959e.png?_wi=3"
|
||||
imageAlt="TaskHub marketplace community"
|
||||
mediaAnimation="slide-up"
|
||||
faqsAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
title="Common Questions"
|
||||
description="Answers to questions customers and taskers frequently ask"
|
||||
tag="Support"
|
||||
useInvertedBackground={false}
|
||||
mediaPosition="left"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
columns={footerColumns}
|
||||
columns={[
|
||||
{
|
||||
title: "Platform", items: [
|
||||
{ label: "Post a Task", href: "/services" },
|
||||
{ label: "Find Taskers", href: "/services" },
|
||||
{ label: "Become a Tasker", href: "/become-tasker" },
|
||||
{ label: "Browse All Services", href: "/services" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Company", items: [
|
||||
{ label: "About Us", href: "/about" },
|
||||
{ label: "How It Works", href: "/how-it-works" },
|
||||
{ label: "Pricing", href: "/pricing" },
|
||||
{ label: "Contact", href: "/contact" }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Legal", items: [
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
{ label: "Terms of Service", href: "#" },
|
||||
{ label: "Security", href: "#" },
|
||||
{ label: "Trust & Safety", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
logoText="TaskHub"
|
||||
copyrightText="© 2025 TaskHub. All rights reserved."
|
||||
/>
|
||||
|
||||
@@ -1,51 +1,48 @@
|
||||
"use client";
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
import React from 'react';
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
text: string;
|
||||
className?: string;
|
||||
textClassName?: string;
|
||||
size?: number;
|
||||
weight?: number | string;
|
||||
}
|
||||
|
||||
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
|
||||
logoText,
|
||||
adjustHeightFactor,
|
||||
verticalAlign = "top",
|
||||
className = "",
|
||||
}) {
|
||||
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
|
||||
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
|
||||
text,
|
||||
className = '',
|
||||
textClassName = '',
|
||||
size = 32,
|
||||
weight = 'bold',
|
||||
}) => {
|
||||
const padding = size * 0.4;
|
||||
const lineHeight = size * 1.2;
|
||||
const textWidth = text.length * size * 0.6;
|
||||
const viewBoxWidth = textWidth + padding * 2;
|
||||
const viewBoxHeight = lineHeight + padding * 2;
|
||||
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
viewBox={`0 0 ${viewBoxWidth} ${viewBoxHeight}`}
|
||||
width={viewBoxWidth}
|
||||
height={viewBoxHeight}
|
||||
className={className}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
>
|
||||
<text
|
||||
ref={textRef}
|
||||
x="0"
|
||||
y={verticalAlign === "center" ? "50%" : "0"}
|
||||
className="font-bold fill-current"
|
||||
style={{
|
||||
fontSize: "20px",
|
||||
letterSpacing: "-0.02em",
|
||||
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
|
||||
}}
|
||||
x={padding}
|
||||
y={padding + size}
|
||||
fontSize={size}
|
||||
fontWeight={weight}
|
||||
fill="currentColor"
|
||||
dominantBaseline="middle"
|
||||
className={textClassName}
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user