Add src/app/qr-ticket/page.tsx
This commit is contained in:
76
src/app/qr-ticket/page.tsx
Normal file
76
src/app/qr-ticket/page.tsx
Normal file
@@ -0,0 +1,76 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import TextBox from '@/components/Textbox';
|
||||
import ButtonShiftHover from '@/components/button/ButtonShiftHover/ButtonShiftHover';
|
||||
import { useState } from 'react';
|
||||
|
||||
export default function QRTicketPage() {
|
||||
const [ticketGenerated, setTicketGenerated] = useState(false);
|
||||
|
||||
const handleDownload = () => {
|
||||
alert("QR Digital Ticket downloaded successfully!");
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="shift-hover"
|
||||
defaultTextAnimation="reveal-blur"
|
||||
borderRadius="pill"
|
||||
contentWidth="medium"
|
||||
sizing="largeSizeMediumTitles"
|
||||
background="noiseDiagonalGradient"
|
||||
cardStyle="solid"
|
||||
primaryButtonStyle="double-inset"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="medium"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/" },
|
||||
{ name: "Booking", id: "/" },
|
||||
{ name: "Testimonials", id: "/" },
|
||||
{ name: "FAQ", id: "/" },
|
||||
]}
|
||||
brandName="YatraNepal"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="pt-32 pb-20 px-6 max-w-4xl mx-auto text-center">
|
||||
<TextBox
|
||||
title="Digital QR Ticket"
|
||||
description="Your journey details are ready. Display the QR code at boarding time."
|
||||
textboxLayout="default"
|
||||
center={true}
|
||||
/>
|
||||
|
||||
<div className="mt-12 p-8 border-2 border-dashed rounded-3xl bg-white shadow-sm">
|
||||
{!ticketGenerated ? (
|
||||
<div className="space-y-6">
|
||||
<p className="text-lg">Generate your ticket for entry.</p>
|
||||
<ButtonShiftHover text="Generate Ticket" onClick={() => setTicketGenerated(true)} />
|
||||
</div>
|
||||
) : (
|
||||
<div className="space-y-8">
|
||||
<div className="w-64 h-64 bg-gray-900 mx-auto rounded-lg flex items-center justify-center">
|
||||
<span className="text-white">[QR CODE IMAGE]</span>
|
||||
</div>
|
||||
<div className="text-left space-y-2 border-t pt-6">
|
||||
<p><strong>Route:</strong> Kathmandu to Pokhara</p>
|
||||
<p><strong>Date:</strong> 2025-05-15</p>
|
||||
<p><strong>Seat:</strong> 12A</p>
|
||||
</div>
|
||||
<ButtonShiftHover text="Download Ticket" onClick={handleDownload} />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user