Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | import React from 'react'; import { Metadata } from 'next'; import { JsonLd } from '@/components/shared/JsonLd'; import { generatePageMetadata, generateFAQSchema, generateBreadcrumbSchema, } from '@/lib/seo'; import type { FAQItem, BreadcrumbItem } from '@/lib/seo'; export const metadata: Metadata = generatePageMetadata('faq'); // FAQ content data const faqCategories = [ { category: 'Orders & Shipping', questions: [ { q: 'How long does shipping take?', a: 'Standard shipping typically takes 5-7 business days. Express shipping options are available for 2-3 day delivery.', }, { q: 'Do you ship internationally?', a: 'Currently, we only ship within the United States. International shipping will be available soon.', }, { q: 'How can I track my order?', a: 'Once your order ships, you will receive a tracking number via email. You can also track your order from your account dashboard.', }, ], }, { category: 'Returns & Refunds', questions: [ { q: 'What is your return policy?', a: 'We accept returns within 30 days of delivery for most items. Items must be unused and in original packaging.', }, { q: 'How long do refunds take?', a: 'Refunds are processed within 5-7 business days after we receive your returned item.', }, { q: 'Who pays for return shipping?', a: 'Return shipping is free if the return is due to our error. Otherwise, customers are responsible for return shipping costs.', }, ], }, { category: 'Account & Payment', questions: [ { q: 'Do I need an account to place an order?', a: 'No, you can checkout as a guest. However, creating an account allows you to track orders and save your information for faster checkout.', }, { q: 'What payment methods do you accept?', a: 'We accept Visa, Mastercard, American Express, PayPal, Apple Pay, and Google Pay.', }, { q: 'Is my payment information secure?', a: 'Yes, we use industry-standard encryption to protect your payment information.', }, ], }, { category: 'Products', questions: [ { q: 'Are your products authentic?', a: 'Yes, all our products are 100% authentic and sourced directly from manufacturers or authorized distributors.', }, { q: 'Do you offer warranties?', a: 'Most products come with manufacturer warranties. Warranty details are listed on individual product pages.', }, { q: 'How do I know if an item is in stock?', a: 'Stock availability is shown on each product page. If an item is out of stock, you can sign up for notifications when it becomes available.', }, ], }, ]; // Flatten all FAQ questions for JSON-LD schema const allFaqs: FAQItem[] = faqCategories.flatMap((category) => category.questions.map((q) => ({ question: q.q, answer: q.a, })) ); // Breadcrumb data for structured data const breadcrumbItems: BreadcrumbItem[] = [ { name: 'Home', url: '/' }, { name: 'FAQ', url: '/faq' }, ]; export default function FAQPage() { return ( <> <JsonLd data={generateFAQSchema(allFaqs)} /> <JsonLd data={generateBreadcrumbSchema(breadcrumbItems)} /> <div className="max-w-[1170px] mx-auto px-4 sm:px-8 xl:px-0 pt-[140px] pb-20"> <div className="max-w-[900px] mx-auto"> <h1 className="text-3xl sm:text-4xl font-bold text-dark mb-4 text-center"> Frequently Asked Questions </h1> <p className="text-body text-center mb-12"> Find answers to common questions about our products and services </p> <div className="space-y-12"> {faqCategories.map((category, categoryIndex) => ( <div key={categoryIndex}> <h2 className="text-2xl font-semibold text-dark mb-6 pb-3 border-b-2 border-blue"> {category.category} </h2> <div className="space-y-6"> {category.questions.map((faq, faqIndex) => ( <div key={faqIndex} className="bg-gray-1 rounded-lg p-6"> <h3 className="text-lg font-semibold text-dark mb-3"> {faq.q} </h3> <p className="text-body"> {faq.a} </p> </div> ))} </div> </div> ))} </div> <div className="mt-12 text-center bg-blue-50 rounded-lg p-8"> <h2 className="text-2xl font-semibold text-dark mb-4"> Still have questions? </h2> <p className="text-body mb-6"> Can't find the answer you're looking for? Please contact our customer support team. </p> <a href="/contact" className="inline-block bg-blue text-white px-8 py-3 rounded-md font-medium hover:bg-blue-dark transition-colors" > Contact Us </a> </div> </div> </div> </> ); } |