diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 65fa1b4..b7a2ad8 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -26,6 +26,7 @@ import AboutUs from "./Pages/AboutUs"; import Error from "./Pages/Error"; import PrivacyPolicy from "./Pages/PrivacyPolicy"; // Added back from one version import User from "./Pages/User"; // Added from the other version +import Faq from './Pages/Faq'; function App() { return ( @@ -54,6 +55,7 @@ function App() { } /> } /> } />{" "} + } /> {/* Restored PrivacyPolicy */} } /> {/* Added User */} } /> diff --git a/frontend/src/Pages/Faq.css b/frontend/src/Pages/Faq.css new file mode 100644 index 0000000..37b90d6 --- /dev/null +++ b/frontend/src/Pages/Faq.css @@ -0,0 +1,78 @@ +/* Background styling */ +.faq-section { + background-color: #F3F4F6; + padding: 2rem; + } + + /* Heading styling */ + .faq-main-heading { + font-size: 2.5rem; + color: #1a73e8; + text-align: center; + margin-bottom: 2rem; + font-weight: bold; + text-transform: uppercase; + } + + /* Container styling */ + .faq-container { + max-width: 800px; + margin: 0 auto; + } + + /* FAQ item styling */ + .faq-item { + background-color: white; + margin: 1.5rem 0; + padding: 1.5rem; + border-radius: 10px; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); + transition: transform 0.3s ease; + cursor: pointer; + } + + .faq-item:hover { + transform: translateY(-5px); + } + + .faq-question { + font-size: 1.5rem; + color: #1a73e8; /* Blue */ + display: flex; + justify-content: space-between; + align-items: center; + font-weight: 600; + } + + .faq-answer { + font-size: 1.1rem; + color: black; + margin-top: 1rem; + line-height: 1.6; + padding-left: 1rem; + border-left: 3px solid #1a73e8; /* Accent line for visual appeal */ + animation: fadeIn 0.3s ease-in-out; + } + + @keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } + } + + /* Icon styling */ + .faq-icon { + font-size: 1.4rem; + color: #1a73e8; + transition: transform 0.3s ease; + } + + .rotate { + transform: rotate(180deg); + } + \ No newline at end of file diff --git a/frontend/src/Pages/Faq.jsx b/frontend/src/Pages/Faq.jsx new file mode 100644 index 0000000..3e1e5ea --- /dev/null +++ b/frontend/src/Pages/Faq.jsx @@ -0,0 +1,80 @@ +import React, { useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import backicon from '../assets/svg/backicon.svg'; +import './faq.css'; + +const Faq = () => { + const navigate = useNavigate(); // Initialize the useNavigate hook + const [activeIndex, setActiveIndex] = useState(null); + + const faqData = [ + { + question: "How can I book a station guide service?", + answer: "To book a station guide service, navigate to the 'Booking' page, select the service you need, and follow the steps to confirm your booking.", + }, + { + question: "What payment methods are accepted?", + answer: "We accept various payment methods, including credit/debit cards, UPI, and popular digital wallets.", + }, + { + question: "How can I cancel or modify my booking?", + answer: "You can cancel or modify your booking from your account under 'My Bookings'. Select the booking and choose the desired option.", + }, + { + question: "Is there a way to contact support?", + answer: "Yes, you can contact our support team via the 'Help and Support' page, where we offer chat and email options for assistance.", + }, + { + question: "Are there any discounts available?", + answer: "Check our 'Offers' section regularly for seasonal discounts and promotional codes.", + }, + { + question: "What are the operating hours of the station guide service?", + answer: "Our station guide service operates 24/7 to assist you at any time.", + }, + { + question: "Can I provide feedback about the service?", + answer: "Absolutely! We welcome feedback through the 'Feedback' section on our website.", + }, + { + question: "What should I do if I lose my booking confirmation?", + answer: "If you lose your booking confirmation, you can retrieve it from your account or contact customer support for assistance.", + }, + ]; + + const toggleAnswer = (index) => { + setActiveIndex(activeIndex === index ? null : index); + }; + + const HomeClick = () => { + navigate('/'); // Navigates to the home page + }; + + return ( +
+ +

Frequently Asked Questions

+
+ {faqData.map((item, index) => ( +
toggleAnswer(index)}> +
+ {item.question} + + ▼ + +
+ {activeIndex === index && ( +
+ {item.answer} +
+ )} +
+ ))} +
+
+ ); +}; + +export default Faq; diff --git a/frontend/src/Pages/hamburger.jsx b/frontend/src/Pages/hamburger.jsx index 83d24a8..91d7964 100644 --- a/frontend/src/Pages/hamburger.jsx +++ b/frontend/src/Pages/hamburger.jsx @@ -2,6 +2,8 @@ import React, { useState, useEffect, useRef } from "react"; import styled, { keyframes } from "styled-components"; import { FaArrowLeft, FaSearch, FaTimes } from "react-icons/fa"; import { useNavigate } from "react-router-dom"; +import { FaQuestionCircle } from "react-icons/fa"; + const fadeIn = keyframes` from { @@ -155,6 +157,10 @@ const Hamburger = () => { const helpClick = () => { navigate("/Help"); }; + const FaqClick = () => { + navigate("/FAQ"); + }; + const aboutClick = () => { navigate("/About"); diff --git a/frontend/src/components/navbar.jsx b/frontend/src/components/navbar.jsx index 00c09a5..8e9bc5c 100644 --- a/frontend/src/components/navbar.jsx +++ b/frontend/src/components/navbar.jsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { FaBars, FaTimes, FaUser, FaHandsHelping, FaBell, FaStar, FaCreditCard, FaInfoCircle } from 'react-icons/fa'; +import { FaBars, FaTimes, FaUser, FaHandsHelping, FaBell, FaStar, FaCreditCard, FaInfoCircle, FaQuestionCircle } from 'react-icons/fa'; import { IoSettings } from "react-icons/io5"; import { useNavigate } from 'react-router-dom'; import axios from 'axios'; // Import axios @@ -85,6 +85,11 @@ const Navbar = () => { navigate('/about'); setIsOpen(false); }; + + const handleFaqClick = () => { + navigate('/FAQ'); + setIsOpen(false); + }; const handleOpenModal = () => { setIsModalOpen(true); @@ -199,6 +204,10 @@ const Navbar = () => { Settings +
  • + + FAQ +