added page footer
This commit is contained in:
@@ -6,3 +6,7 @@ body,
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body.success-bg {
|
||||
background: linear-gradient(135deg, #0f172a, #111827);
|
||||
}
|
||||
|
||||
+12
-6
@@ -2,15 +2,21 @@ import "./App.css";
|
||||
import { BrowserRouter, Route, Routes } from "react-router-dom";
|
||||
import { MainForm } from "./pages/MainForm";
|
||||
import { SuccessPage } from "./pages/SuccessPage";
|
||||
import { PageFooter } from "./components/PageFooter";
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<Routes>
|
||||
<Route path="/" element={<MainForm />} />
|
||||
<Route path="/success" element={<SuccessPage />} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
<div className="min-h-screen flex flex-col">
|
||||
<BrowserRouter>
|
||||
<main className="flex-1 flex">
|
||||
<Routes>
|
||||
<Route path="/" element={<MainForm />} />
|
||||
<Route path="/success" element={<SuccessPage />} />
|
||||
</Routes>
|
||||
</main>
|
||||
</BrowserRouter>
|
||||
<PageFooter />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,42 @@
|
||||
import { Link, Sheet, Typography } from "@mui/joy";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import qrCode from "../assets/Portfolio-QR-Code.png";
|
||||
|
||||
export const PageFooter = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<footer className="w-full mt-auto px-3 pb-3">
|
||||
<Sheet
|
||||
variant="soft"
|
||||
className="mx-auto w-full max-w-3xl rounded-2xl border border-slate-200/70 bg-white/80 backdrop-blur"
|
||||
>
|
||||
<div className="flex flex-col gap-2 p-2.5 sm:p-3">
|
||||
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
||||
<Typography
|
||||
level="title-sm"
|
||||
className="text-slate-800 tracking-wide"
|
||||
>
|
||||
{t("footer-headline")}
|
||||
<Link
|
||||
href="https://portfolio-theis.de/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="ml-2 inline-flex items-center text-slate-700 underline decoration-slate-300 underline-offset-4 hover:text-slate-900"
|
||||
>
|
||||
portfolio-theis.de
|
||||
</Link>
|
||||
</Typography>
|
||||
<Typography level="body-sm" className="text-slate-500">
|
||||
<img
|
||||
src={qrCode}
|
||||
alt="https://portfolio-theis.de/"
|
||||
className="h-20 w-20 rounded-md border border-slate-200 object-contain"
|
||||
/>
|
||||
</Typography>
|
||||
</div>
|
||||
</div>
|
||||
</Sheet>
|
||||
</footer>
|
||||
);
|
||||
};
|
||||
@@ -184,7 +184,7 @@ export const MainForm = () => {
|
||||
|
||||
<QRcodeModal setQRmodal={setQRmodal} QRmodal={QRmodal} />
|
||||
|
||||
<div className="min-h-screen w-full flex items-center justify-center from-slate-100 to-blue-50 p-4">
|
||||
<div className="flex-1 w-full flex items-center justify-center from-slate-100 to-blue-50 p-4">
|
||||
<Sheet
|
||||
variant="plain"
|
||||
className="w-full"
|
||||
|
||||
@@ -16,6 +16,11 @@ export const SuccessPage = () => {
|
||||
setTickets(parseInt(params.get("tickets") ?? "0", 10));
|
||||
// Small delay so the CSS transition actually plays
|
||||
setTimeout(() => setAnimate(true), 100);
|
||||
|
||||
document.body.classList.add("success-bg");
|
||||
return () => {
|
||||
document.body.classList.remove("success-bg");
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -36,7 +41,7 @@ export const SuccessPage = () => {
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="min-h-screen w-full flex items-center justify-center bg-linear-to-br from-slate-800 to-slate-900 p-4">
|
||||
<div className="flex-1 w-full flex items-center justify-center p-4">
|
||||
<Sheet
|
||||
variant="plain"
|
||||
sx={{
|
||||
|
||||
@@ -33,5 +33,6 @@
|
||||
"set-username-text": "Um mit dem Losverkauf zu beginnen, musst du einen Benutzer oben links auswählen.",
|
||||
"name-error": "Sie müssen einen Namen eingeben!",
|
||||
"email-error": "Sie müssen eine gültige E-Mail Adresse eingeben!",
|
||||
"phone-error": "Sie müssen eine gültige Telefonnummer eingeben!"
|
||||
"phone-error": "Sie müssen eine gültige Telefonnummer eingeben!",
|
||||
"footer-headline": "Dieses System wurde vollständig konzipiert und entwickelt von Theis Gaedigk. - Portfolio: "
|
||||
}
|
||||
@@ -34,5 +34,6 @@
|
||||
"set-username-text": "To start the ticket sale, you must select a user first from the top left.",
|
||||
"name-error": "You have to enter a name!",
|
||||
"email-error": "You have to enter a valid E-Mail adress!",
|
||||
"phone-error": "You have to enter a vaild phone number!"
|
||||
"phone-error": "You have to enter a vaild phone number!",
|
||||
"footer-headline": "This system was fully designed and developed by Theis Gaedigk. - Portfolio: "
|
||||
}
|
||||
Reference in New Issue
Block a user