diff options
Diffstat (limited to 'src/App.jsx')
-rw-r--r-- | src/App.jsx | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..44f7866 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,39 @@ +import "./App.css"; +import { Navbar } from "./components/Navbar"; +import { Hero } from "./components/Hero"; +import { Projects } from "./components/Projects"; +import { Contact } from "./components/Contact"; +import { useEffect, useState } from "react"; +import emailjs from "@emailjs/browser"; +import { motion } from "framer-motion"; + +function App() { + const [isLoaded, setIsLoaded] = useState(false); + + useEffect(() => { + setIsLoaded(true); + emailjs.init(import.meta.env.VITE_EMAILJS_PUBLIC_KEY); + }, []); + + return ( + <div className={`app ${isLoaded ? "loaded" : ""}`}> + <Navbar /> + + <Hero /> + <Projects /> + <Contact /> + + <motion.footer + className="footer" + initial={{ opacity: 0 }} + whileInView={{ opacity: 1 }} + viewport={{ once: true }} + transition={{ duration: 0.6 }} + > + <p> © 2025 PedroTech. All rights reserved.</p> + </motion.footer> + </div> + ); +} + +export default App; |