Paginas
This commit is contained in:
@@ -1 +1 @@
|
|||||||
VITE_API_URL=https://localhost:44329/
|
VITE_API_URL=https://localhost:7266/
|
||||||
@@ -3,6 +3,9 @@ import { Toaster } from 'react-hot-toast';
|
|||||||
import Home from './pages/Home';
|
import Home from './pages/Home';
|
||||||
import { Layout } from './layout/Layout';
|
import { Layout } from './layout/Layout';
|
||||||
import { useTheme } from './context/ThemeContext';
|
import { useTheme } from './context/ThemeContext';
|
||||||
|
import NIF from './pages/NIF';
|
||||||
|
import CC from './pages/CC';
|
||||||
|
import NISS from './pages/NISS';
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const { theme } = useTheme();
|
const { theme } = useTheme();
|
||||||
@@ -12,9 +15,9 @@ function App() {
|
|||||||
<Layout>
|
<Layout>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={<Home />} />
|
<Route path="/" element={<Home />} />
|
||||||
<Route path="/NIF" />
|
<Route path="/NIF" element={<NIF />} />
|
||||||
<Route path="/NISS" />
|
<Route path="/NISS" element={<NISS />} />
|
||||||
<Route path="/CC" />
|
<Route path="/CC" element={<CC />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
<Toaster position="top-right"
|
<Toaster position="top-right"
|
||||||
toastOptions={{
|
toastOptions={{
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export default function Footer() {
|
|||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Link to="/geradores" className="hover:text-blue-500 dark:hover:text-blue-400 transition-colors duration-200">
|
<Link to="/home" className="hover:text-blue-500 dark:hover:text-blue-400 transition-colors duration-200">
|
||||||
Geradores
|
Geradores
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -10,8 +10,9 @@ const navItems = [
|
|||||||
{
|
{
|
||||||
name: "Geradores",
|
name: "Geradores",
|
||||||
subItems: [
|
subItems: [
|
||||||
{ name: "Gerador de Senhas", path: "/geradores/senhas" },
|
{ name: "Gerador de NIFs", path: "/NIF", },
|
||||||
{ name: "Gerador de Nomes", path: "/geradores/nomes" },
|
{ name: "Gerador de NISS", path: "/NISS" },
|
||||||
|
{ name: "Gerador de CC", path: "/CC" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{ name: "Contacto", path: "/contacto" },
|
{ name: "Contacto", path: "/contacto" },
|
||||||
|
|||||||
31
geradoresfe/src/pages/CC.tsx
Normal file
31
geradoresfe/src/pages/CC.tsx
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import { useEffect } from "react";
|
||||||
|
import { useLocation } from "react-router";
|
||||||
|
import GenerateCC from "../components/Geradores/Tipos/GenerateCC";
|
||||||
|
|
||||||
|
export default function CC() {
|
||||||
|
const location = useLocation();
|
||||||
|
|
||||||
|
// Efeito para rolar até a seção correspondente ao path
|
||||||
|
useEffect(() => {
|
||||||
|
const featuresSection = document.getElementById(location.hash.substring(1));
|
||||||
|
if (featuresSection) {
|
||||||
|
featuresSection.scrollIntoView({ behavior: "smooth" });
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [location]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div >
|
||||||
|
<div >
|
||||||
|
{/* Seção de Funcionalidades */}
|
||||||
|
<section id="features" className="py-16 px-4 md:px-8">
|
||||||
|
<div className="max-w-6xl mx-auto grid grid-cols-1">
|
||||||
|
<div id="nif">
|
||||||
|
<GenerateCC />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
31
geradoresfe/src/pages/NIF.tsx
Normal file
31
geradoresfe/src/pages/NIF.tsx
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import { useEffect } from "react";
|
||||||
|
import { useLocation } from "react-router";
|
||||||
|
import GenerateNIF from "../components/Geradores/Tipos/GenerateNIF";
|
||||||
|
|
||||||
|
export default function NIF() {
|
||||||
|
const location = useLocation();
|
||||||
|
|
||||||
|
// Efeito para rolar até a seção correspondente ao path
|
||||||
|
useEffect(() => {
|
||||||
|
const featuresSection = document.getElementById(location.hash.substring(1));
|
||||||
|
if (featuresSection) {
|
||||||
|
featuresSection.scrollIntoView({ behavior: "smooth" });
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [location]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div >
|
||||||
|
<div >
|
||||||
|
{/* Seção de Funcionalidades */}
|
||||||
|
<section id="features" className="py-16 px-4 md:px-8">
|
||||||
|
<div className="max-w-6xl mx-auto grid grid-cols-1">
|
||||||
|
<div id="nif">
|
||||||
|
<GenerateNIF />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
31
geradoresfe/src/pages/NISS.tsx
Normal file
31
geradoresfe/src/pages/NISS.tsx
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import { useEffect } from "react";
|
||||||
|
import { useLocation } from "react-router";
|
||||||
|
import GenerateNISS from "../components/Geradores/Tipos/GenerateNISS";
|
||||||
|
|
||||||
|
export default function NISS() {
|
||||||
|
const location = useLocation();
|
||||||
|
|
||||||
|
// Efeito para rolar até a seção correspondente ao path
|
||||||
|
useEffect(() => {
|
||||||
|
const featuresSection = document.getElementById(location.hash.substring(1));
|
||||||
|
if (featuresSection) {
|
||||||
|
featuresSection.scrollIntoView({ behavior: "smooth" });
|
||||||
|
}
|
||||||
|
|
||||||
|
}, [location]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div >
|
||||||
|
<div >
|
||||||
|
{/* Seção de Funcionalidades */}
|
||||||
|
<section id="features" className="py-16 px-4 md:px-8">
|
||||||
|
<div className="max-w-6xl mx-auto grid grid-cols-1">
|
||||||
|
<div id="nif">
|
||||||
|
<GenerateNISS />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user