-
Notifications
You must be signed in to change notification settings - Fork 27
Feat help center routing #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| import React from 'react'; | ||
| import Layout from '@/components/layout/Layout'; | ||
| import FrequentlyAskedQuestions from '@/components/faq/FrequentlyAskedQuestions'; | ||
|
|
||
| export default function TermsPage() { | ||
| return ( | ||
| <Layout> | ||
| <FrequentlyAskedQuestions /> | ||
| </Layout> | ||
| ); | ||
| } | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should move the assets to the public/ Additionally, we should rename the files to something more descriptive than "snap1", "snap2", etc. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,182 @@ | ||
| 'use client'; | ||
|
|
||
| import React, { useState } from 'react'; | ||
| import { FaRegQuestionCircle } from 'react-icons/fa'; | ||
| import {FiGithub, FiMail} from 'react-icons/fi'; | ||
| import Image from 'next/image'; | ||
| import Snap1 from '../../assets/Snap1.png' | ||
| import Snap2 from '../../assets/Snap2.png' | ||
| import Snap3 from '../../assets/Snap3.png' | ||
| import { Accordion, AccordionContent, AccordionTrigger } from '../ui/Accord'; | ||
|
|
||
| const FrequentlyAskedQuestions = () => { | ||
|
|
||
|
|
||
| return ( | ||
| <section className="py-20 bg-gray-900 min-h-screen"> | ||
| <div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8"> | ||
| {/* Header */} | ||
| <div className="text-center mb-16"> | ||
| <div className="inline-flex items-center space-x-3 bg-purple-500/10 border border-purple-500/20 rounded-full px-6 py-3 mb-8"> | ||
| <FaRegQuestionCircle className="text-purple-400" size={20} /> | ||
| <span className="text-purple-300 font-medium">Frequently Asked Questions</span> | ||
| </div> | ||
|
|
||
| <h1 className="text-4xl md:text-5xl font-bold text-white mb-6"> | ||
| Frequently Asked <span className="bg-gradient-to-r from-purple-400 to-pink-400 bg-clip-text text-transparent">Questions</span> | ||
| </h1> | ||
|
|
||
| <p className="text-xl text-gray-300 leading-relaxed"> | ||
| All the essential information you might be looking for, explained simply to help you make informed decisions without confusion or guesswork. | ||
| </p> | ||
| </div> | ||
|
|
||
|
|
||
| {/* Main Content */} | ||
| <div className="space-y-12"> | ||
|
|
||
| {/* First Question */} | ||
| <div className="flex flex-col gap-4 bg-gray-800/30 backdrop-blur-sm border border-gray-700 rounded-2xl px-8 p-4 "> | ||
| <Accordion> | ||
| <AccordionTrigger> | ||
| <div className='text-2xl font-bold text-white '>1. How can we download BrowserPing ?</div> | ||
| </AccordionTrigger> | ||
| <AccordionContent> | ||
| <span className="space-y-4 text-gray-300 text-xl">You can download BrowserPing by going to <a className='text-purple-500' target='./' href='https://www.browseping.com/download'>Download page.</a> There you can find links to download it for diffrent browser and versions. </span> | ||
| </AccordionContent> | ||
| </Accordion> | ||
| </div> | ||
|
|
||
|
|
||
| {/* Second Question */} | ||
| <div className="flex flex-col gap-4 bg-gray-800/30 backdrop-blur-sm border border-gray-700 rounded-2xl px-8 p-4 "> | ||
| <Accordion> | ||
| <AccordionTrigger > | ||
| <div className="text-2xl font-bold text-white">2. How can I add friends on BrowserPing ?</div></AccordionTrigger> | ||
| <AccordionContent> | ||
| <div className='flex flex-col justify-center items-start space-y-4 text-gray-300 text-xl'> | ||
| <h1 className='font-bold mb-6'>You can add a friend by following the steps below:</h1> | ||
| <div className='flex flex-col gap-2'> | ||
| <a>1. Click on extensions in your browser and find BrowserPing </a> | ||
| <a>2. Open BrowserPing and go to Friends section in bottom navigation dock right next to "Home"</a> | ||
| <div className='flex justify-center w-full'> | ||
| <Image src={Snap1} alt="snapshot1" className='w-[300px] rounded-md m-4'/> | ||
| </div> | ||
| <a>3. In friends section select "Search" in top navigation bar </a> | ||
| <div className='flex justify-center w-full'> | ||
| <Image src={Snap2} alt="snapshot1" className='w-[300px] rounded-md m-4'/> | ||
| </div> | ||
| <a>4. Here you can search your friend by their name or username</a> | ||
| <div className='flex justify-center w-full'> | ||
| <Image src={Snap3} alt="snapshot1" className='w-[300px] rounded-md m-4'/> | ||
| </div> | ||
|
|
||
| </div> | ||
| </div> | ||
| </AccordionContent> | ||
| </Accordion> | ||
| </div> | ||
|
|
||
|
|
||
| {/* Third Question */} | ||
| <div className="bg-gray-800/30 backdrop-blur-sm border border-gray-700 rounded-2xl px-8 p-4"> | ||
| <Accordion> | ||
| <AccordionTrigger> | ||
| <div className="text-2xl font-bold text-white text-left"> | ||
| 3. Do I have control over what information others see from my browsing? | ||
| </div> | ||
| </AccordionTrigger> | ||
| <AccordionContent> | ||
| <div className='flex flex-col justify-center items-start gap-3 space-y-4 text-gray-300 text-xl pt-4'> | ||
| <span>Yes. With Privacy Controls, you can decide who can see your data, including Online Status, Last Seen, Tab Activity, and more.</span> | ||
| <span>To manage your privacy, simply navigate to your account Privacy Settings section and review the available control options.</span> | ||
| <span className='w-full flex justify-center'>More {'->'} Account {'->'} Privacy & Security</span> | ||
| </div> | ||
| </AccordionContent> | ||
| </Accordion> | ||
| </div> | ||
|
|
||
|
|
||
| {/* Forth Question */} | ||
| <div className="bg-gray-800/30 backdrop-blur-sm border border-gray-700 rounded-2xl px-8 p-4"> | ||
| <Accordion> | ||
| <AccordionTrigger> | ||
| <div className="text-2xl font-bold text-white">4. How does the BrowserPing leaderboard works ?</div> | ||
| </AccordionTrigger> | ||
| <AccordionContent> | ||
| <div className='flex flex-col justify-center items-start gap-3 space-y-4 text-gray-300 text-xl pt-4'> | ||
| <span>BrowserPing tracks each user's total online hours throughout the month and uses this data to automatically generate a monthly leaderboard, ranking users based on their overall activity.</span> | ||
| <span>Access your leaderboard by visiting the Analytics section from the main menu</span> | ||
| <span className='w-full flex justify-center'>Analytics {'->'} Account {'->'} Leaderboard</span> | ||
| </div> | ||
| </AccordionContent> | ||
| </Accordion> | ||
| </div> | ||
|
|
||
|
|
||
| {/* Contact Methods */} | ||
| <div className="grid md:grid-cols-2 gap-8 mb-16"> | ||
|
|
||
| {/* General Contact */} | ||
| <div className="bg-gray-800/30 backdrop-blur-sm border border-gray-700 rounded-2xl p-8"> | ||
| <div className="flex items-center space-x-3 mb-6"> | ||
| <div className="w-12 h-12 bg-blue-500/20 rounded-xl flex items-center justify-center"> | ||
| <FiMail className="text-blue-400" size={24} /> | ||
| </div> | ||
| <div> | ||
| <h3 className="text-xl font-bold text-white">Can't find your question</h3> | ||
| <p className="text-gray-400">Contact Us on our mail address</p> | ||
| </div> | ||
| </div> | ||
|
|
||
| <div className="space-y-4"> | ||
| <p className="text-gray-300"> | ||
| For general questions, feedback, or support requests, reach out to us via email. | ||
| </p> | ||
| <a | ||
| href="mailto:hello@browseping.com" | ||
| className="inline-flex items-center space-x-2 bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition-colors" | ||
| > | ||
| <FiMail size={16} /> | ||
| <span>support@browseping.com</span> | ||
| </a> | ||
| </div> | ||
| </div> | ||
|
|
||
| {/* Development & Contributions */} | ||
| <div className="bg-gray-800/30 backdrop-blur-sm border border-gray-700 rounded-2xl p-8"> | ||
| <div className="flex items-center space-x-3 mb-6"> | ||
| <div className="w-12 h-12 bg-gray-500/20 rounded-xl flex items-center justify-center"> | ||
| <FiGithub className="text-gray-400" size={24} /> | ||
| </div> | ||
| <div> | ||
| <h3 className="text-xl font-bold text-white">Found a Bug ? </h3> | ||
| <p className="text-gray-400">Report the bug to out GitHub repo</p> | ||
| </div> | ||
| </div> | ||
|
|
||
| <div className="space-y-4"> | ||
| <p className="text-gray-300"> | ||
| Want to contribute? Check out our GitHub repository. | ||
| </p> | ||
| <a | ||
| href="https://github.com/browseping" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| className="inline-flex items-center space-x-2 bg-gray-700 hover:bg-gray-600 text-white px-4 py-2 rounded-lg transition-colors" | ||
| > | ||
| <FiGithub size={16} /> | ||
| <span>GitHub Repository</span> | ||
| </a> | ||
| </div> | ||
| </div> | ||
|
|
||
| </div> | ||
|
|
||
| </div> | ||
| </div> | ||
| </section> | ||
| ); | ||
| }; | ||
|
|
||
| export default FrequentlyAskedQuestions; | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,82 @@ | ||
| import { createContext, useContext, useState } from "react"; | ||
| import { RiArrowDropDownLine, RiArrowDropUpLine } from 'react-icons/ri'; | ||
|
|
||
|
|
||
| type AccordionContextType = { | ||
| isOpen: boolean; | ||
| toggle: () => void; | ||
| } | ||
|
|
||
| const AccordionContext = createContext<AccordionContextType | null>(null) | ||
|
|
||
| const useAccordion = () => { | ||
| const ctx = useContext(AccordionContext) | ||
| if(!ctx){ | ||
| throw new Error('Accordion component must be used inside <Accordion>') | ||
| } | ||
| return ctx | ||
| } | ||
|
|
||
| type AccordionProps = { | ||
| children: React.ReactNode | ||
| } | ||
|
|
||
| export function Accordion({children}: AccordionProps){ | ||
| const [isOpen, setIsOpen] = useState(false) | ||
|
|
||
| const toggle = () => setIsOpen(prev => !prev) | ||
|
|
||
| return( | ||
| <AccordionContext.Provider value={{isOpen, toggle}}> | ||
| {children} | ||
| </AccordionContext.Provider> | ||
| ) | ||
| } | ||
|
|
||
|
|
||
|
|
||
|
|
||
| type AccordionTriggerProps = { | ||
| children: React.ReactNode; | ||
| }; | ||
|
|
||
| export function AccordionTrigger({ children }: AccordionTriggerProps) { | ||
| const { isOpen, toggle } = useAccordion(); | ||
|
|
||
| return ( | ||
| <button | ||
| onClick={toggle} | ||
| className="flex flex-row justify-between items-center w-full" | ||
| aria-expanded={isOpen} | ||
| > | ||
| <div className="text-2xl font-bold text-white"> | ||
| {children} | ||
| </div> | ||
|
|
||
| {isOpen ? ( | ||
| <RiArrowDropUpLine color="gray" size={30} /> | ||
| ) : ( | ||
| <RiArrowDropDownLine color="gray" size={30} /> | ||
| )} | ||
| </button> | ||
| ); | ||
| } | ||
|
|
||
|
|
||
|
|
||
| type AccordionContentProps = { | ||
| children: React.ReactNode; | ||
| }; | ||
|
|
||
| export function AccordionContent({ children }: AccordionContentProps) { | ||
| const { isOpen } = useAccordion(); | ||
|
|
||
| return ( | ||
| <span | ||
| className={`${isOpen ? "block" : "hidden"} space-y-4 text-gray-300 text-xl`} | ||
| > | ||
| {children} | ||
| </span> | ||
| ); | ||
| } | ||
|
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be FaqPage or FrequentlyAskedQuestionsPage instead of TermPage