diff --git a/app/FAQ/component/contact-section.tsx b/app/FAQ/component/contact-section.tsx new file mode 100644 index 0000000..45a49a5 --- /dev/null +++ b/app/FAQ/component/contact-section.tsx @@ -0,0 +1,28 @@ +import { Button } from "@/components/ui/button" +import { Mail, Phone } from 'lucide-react' + +export default function ContactSection() { + return ( +
+

Still have questions?

+

Our support team is here to help you

+
+ + +
+
+ ) +} + diff --git a/app/FAQ/component/faq-component.tsx b/app/FAQ/component/faq-component.tsx new file mode 100644 index 0000000..bd09823 --- /dev/null +++ b/app/FAQ/component/faq-component.tsx @@ -0,0 +1,86 @@ +'use client' + +import { useState } from 'react' +import { Input } from "@/components/ui/input" +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/components/ui/accordion" +import { Search } from 'lucide-react' + +const faqs = [ + { + question: "What is Leetcode Journal, and how can it help me?", + answer: "Leetcode Journal is a tool designed to help developers track, organize, and review their Leetcode solutions. It provides an intuitive interface to save solutions, categorize problems, monitor progress, and analyze performance. It's great for personal learning and showcasing problem-solving skills." + }, + { + question: "Can I import my existing Leetcode solutions into the platform?", + answer: "Yes, Leetcode Journal supports solution imports. You can upload your solutions as files or manually enter them to categorize and analyze them within the platform." + }, + { + question: "How does the progress monitoring feature work?", + answer: "The progress monitoring feature provides detailed statistics on your problem-solving journey, including the number of problems solved by difficulty, topic, and monthly trends. It also shows your streaks and acceptance rates to keep you motivated." + }, + { + question: "Is my data secure on Leetcode Journal?", + answer: "We take data security seriously. All your solutions and progress data are encrypted and securely stored on our servers. You have complete control over your data, and it is never shared without your consent." + }, + { + question: "Can I share my Leetcode Journal with others?", + answer: "Yes, you can create a shareable portfolio of your solutions to showcase your problem-solving skills to potential employers or peers. You can customize what information is shared." + }, + { + question: "Does Leetcode Journal support team collaboration?", + answer: "Currently, Leetcode Journal is focused on individual users. However, we are exploring features for team collaboration and knowledge sharing in future updates." + } +] + +export default function FAQComponent() { + const [searchTerm, setSearchTerm] = useState('') + + const filteredFaqs = faqs.filter(faq => + faq.question.toLowerCase().includes(searchTerm.toLowerCase()) || + faq.answer.toLowerCase().includes(searchTerm.toLowerCase()) + ) + + return ( +
+
+ setSearchTerm(e.target.value)} + className="w-full pl-10 pr-4 py-2 rounded-full border-2 border-purple-300 focus:border-purple-500 focus:ring focus:ring-purple-200 focus:ring-opacity-50 transition duration-300" + /> + +
+ + {filteredFaqs.map((faq, index) => ( + + + {faq.question} + + +

+ {faq.answer} +

+
+
+ ))} +
+ {filteredFaqs.length === 0 && ( +
+

No matching questions found.

+

Try adjusting your search terms or browse all FAQs above.

+
+ )} +
+ ) +} diff --git a/app/FAQ/component/layout.tsx b/app/FAQ/component/layout.tsx new file mode 100644 index 0000000..47ced76 --- /dev/null +++ b/app/FAQ/component/layout.tsx @@ -0,0 +1,15 @@ +export default function FAQLayout({ + children, + }: { + children: React.ReactNode + }) { + return ( +
+
+ {children} +
+
+ ) + } + + \ No newline at end of file diff --git a/app/FAQ/page.tsx b/app/FAQ/page.tsx new file mode 100644 index 0000000..5e8ad1d --- /dev/null +++ b/app/FAQ/page.tsx @@ -0,0 +1,183 @@ +import { Metadata } from 'next' +import FAQComponent from './component/faq-component' +import ContactSection from './component/contact-section' +import Navbar1 from '@/components/navbar' +import { Github, BookOpen } from 'lucide-react' +import {Button} from '@/components/ui/button' +import { SocialLinks } from '@/components/SocialLinks' +import Link from 'next/link' + +export const metadata: Metadata = { + title: 'FAQ - Your Company Name', + description: 'Frequently Asked Questions about our products and services', +} + +export default function FAQPage() { + return ( +
+ +
+
+

Frequently Asked Questions

+

Find answers to common questions about our products and services

+
+ +
+ +
+
+ +
+ ) +} + diff --git a/app/page.tsx b/app/page.tsx index 78192eb..6355e2e 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -9,30 +9,16 @@ import { CardTitle, } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from "@/components/ui/accordion"; -import { - Carousel, - CarouselContent, - CarouselItem, - CarouselNext, - CarouselPrevious, -} from "@/components/ui/carousel"; -import { ThemeToggle } from "@/components/theme-toggle"; -import { BookOpen, CheckCircle, Github } from "lucide-react"; -import { SocialLinks } from "@/components/socials"; +import { BookOpen, Github } from "lucide-react"; +import { SocialLinks } from "@/components/SocialLinks"; import { Highlight } from "@/components/ui/hero-hihglight"; -import Navbar from "@/components/header"; import PricingCard from "@/components/LandingComponents/PriceCard"; +import Navbar1 from "@/components/navbar"; export default function LandingPage() { return (
- +
diff --git a/components/socials.tsx b/components/SocialLinks.tsx similarity index 100% rename from components/socials.tsx rename to components/SocialLinks.tsx diff --git a/components/navbar.tsx b/components/navbar.tsx new file mode 100644 index 0000000..95f90f3 --- /dev/null +++ b/components/navbar.tsx @@ -0,0 +1,100 @@ +'use client' + +import { useState } from "react" +import Link from "next/link" +import { usePathname } from "next/navigation" +import { Button } from "@/components/ui/button" +import { ThemeToggle } from "@/components/theme-toggle" +import { Menu, X } from 'lucide-react' + +const navItems = [ + { href: "/", label: "Home" }, + { href: "/features", label: "Features" }, + { href: "/how-it-works", label: "How it Works" }, + { href: "/FAQ", label: "FAQs" }, + { href: "/blog", label: "Blog" }, +] + +const Navbar1 = () => { + const [isMenuOpen, setIsMenuOpen] = useState(false) + const pathname = usePathname() + + const toggleMenu = () => setIsMenuOpen(!isMenuOpen) + + return ( +
+ + + {isMenuOpen && ( +
+ +
+ )} +
+ ) +} + +export default Navbar1 + diff --git a/components/ui/input.tsx b/components/ui/input.tsx index c4198d7..68551b9 100644 --- a/components/ui/input.tsx +++ b/components/ui/input.tsx @@ -3,20 +3,20 @@ import * as React from "react" import { cn } from "@/lib/utils" const Input = React.forwardRef>( - ({ className, type, ...props }, ref) => { - return ( - - ) - } + ({ className, type, ...props }, ref) => { + return ( + + ) + } ) Input.displayName = "Input" -export { Input } \ No newline at end of file +export { Input } diff --git a/package-lock.json b/package-lock.json index 087b4ab..ff6e461 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "devDependencies": { "@eslint/eslintrc": "^3", "@supabase/auth-helpers-nextjs": "^0.10.0", - "@supabase/supabase-js": "^2.47.10", + "@supabase/supabase-js": "^2.47.11", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", @@ -1772,9 +1772,9 @@ } }, "node_modules/@supabase/postgrest-js": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.17.7.tgz", - "integrity": "sha512-aOzOYaTADm/dVTNksyqv9KsbhVa1gHz1Hoxb2ZEF2Ed9H7qlWOfptECQWmkEmrrFjtNaiPrgiSaPECvzI/seDA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.17.9.tgz", + "integrity": "sha512-HyMOyy3t6K0/oFNDlHryOhnK4sfMNip8J0LrqJ/65NrBlHD3xOcDf4OV/5YCHI4g195ByuQ0wfmyFqIgMl3dxg==", "dev": true, "license": "MIT", "dependencies": { @@ -1805,16 +1805,16 @@ } }, "node_modules/@supabase/supabase-js": { - "version": "2.47.10", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.47.10.tgz", - "integrity": "sha512-vJfPF820Ho5WILYHfKiBykDQ1SB9odTHrRZ0JxHfuLMC8GRvv21YLkUZQK7/rSVCkLvD6/ZwMWaOAfdUd//guw==", + "version": "2.47.11", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.47.11.tgz", + "integrity": "sha512-1gD7rxZFY0wl3abzJ75H62bi4wtkeOxHM0niu1/fIfWsVEDDLOfzfhgD0uTOwFx51Y+/s7+b9EHr3dhWwTYNDQ==", "dev": true, "license": "MIT", "dependencies": { "@supabase/auth-js": "2.67.3", "@supabase/functions-js": "2.4.4", "@supabase/node-fetch": "2.6.15", - "@supabase/postgrest-js": "1.17.7", + "@supabase/postgrest-js": "1.17.9", "@supabase/realtime-js": "2.11.2", "@supabase/storage-js": "2.7.1" } diff --git a/package.json b/package.json index 3c64197..e047fd2 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@eslint/eslintrc": "^3", "@supabase/auth-helpers-nextjs": "^0.10.0", - "@supabase/supabase-js": "^2.47.10", + "@supabase/supabase-js": "^2.47.11", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19",