From 129cd556847a51f5f88652a1f1aecf54c446a388 Mon Sep 17 00:00:00 2001 From: Priyanshu Verma Date: Fri, 8 Nov 2024 15:02:58 +0000 Subject: [PATCH 1/2] feat: Page Transition Animation --- client/bun.lockb | Bin 337937 -> 338433 bytes client/package.json | 1 + client/src/App.tsx | 47 ++++++++++++++------------- client/src/components/transition.tsx | 25 ++++++++++++++ client/src/index.css | 20 ++++++++++++ client/src/pages/404.tsx | 7 ++-- client/src/pages/Anonymous.tsx | 5 ++- client/src/pages/Chatbot.tsx | 5 ++- client/src/pages/ChatbotView.tsx | 5 ++- client/src/pages/Dashboard.tsx | 5 ++- client/src/pages/Hub.tsx | 5 ++- client/src/pages/Imagine.tsx | 5 ++- client/src/pages/Landing.tsx | 5 ++- client/src/pages/Leaderboard.tsx | 4 ++- client/src/pages/Login.tsx | 5 ++- client/src/pages/MyChatbots.tsx | 4 ++- client/src/pages/MyImages.tsx | 5 ++- client/src/pages/Profile.tsx | 5 ++- client/src/pages/Signup.tsx | 5 ++- client/src/pages/Test.tsx | 38 ---------------------- 20 files changed, 126 insertions(+), 75 deletions(-) create mode 100644 client/src/components/transition.tsx delete mode 100644 client/src/pages/Test.tsx diff --git a/client/bun.lockb b/client/bun.lockb index 4594326195d27a323bf4ed7f7a56a7100ef80990..36bced79583798d640a96759b8173975481f6657 100755 GIT binary patch delta 61978 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%0De?|GTxQ4OZGI|777$ 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 @@ -39,28 +41,29 @@ function App() { /> - - } /> - } /> - } /> - } /> - } /> - } /> + + + } /> + } /> + } /> + } /> + } /> - }> - } /> - } /> + }> + } /> + } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - - + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + diff --git a/client/src/components/transition.tsx b/client/src/components/transition.tsx new file mode 100644 index 0000000..37a10bd --- /dev/null +++ b/client/src/components/transition.tsx @@ -0,0 +1,25 @@ +import { motion } from "framer-motion"; + +const transition = (OgComponent: any) => { + return () => ( + <> + + + + + ); +}; + +export default transition; diff --git a/client/src/index.css b/client/src/index.css index 87a082d..295a27c 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -4,6 +4,26 @@ @tailwind components; @tailwind utilities; +.slide-in { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100vh; + background-color: #0f0f0f; + transform-origin: bottom; +} + +.slide-out { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100vh; + background-color: #0f0f0f; + transform-origin: top; +} + html { font-family: "Poppins", sans-serif; } diff --git a/client/src/pages/404.tsx b/client/src/pages/404.tsx index 89277ed..2aadeed 100644 --- a/client/src/pages/404.tsx +++ b/client/src/pages/404.tsx @@ -1,7 +1,8 @@ +import transition from "@/components/transition"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; -export default function NotFound() { +const NotFound = () => { const { t } = useTranslation(); return (
@@ -14,4 +15,6 @@ export default function NotFound() {

{t("notfound.goto")}

); -} +}; + +export default transition(NotFound); diff --git a/client/src/pages/Anonymous.tsx b/client/src/pages/Anonymous.tsx index ca6ab87..58dadc6 100644 --- a/client/src/pages/Anonymous.tsx +++ b/client/src/pages/Anonymous.tsx @@ -1,4 +1,5 @@ import Separator from "@/components/Separator"; +import transition from "@/components/transition"; import { Button } from "@/components/ui/button"; import { Form, @@ -22,7 +23,7 @@ import Markdown from "react-markdown"; import { Link } from "react-router-dom"; import { z } from "zod"; -export default function AnonymousPage() { +function AnonymousPage() { const [loading, setLoading] = useState(false); // Loading state for request const [messages, setMessages] = useState([]); const { t } = useTranslation(); @@ -157,3 +158,5 @@ export default function AnonymousPage() { ); } + +export default transition(AnonymousPage); diff --git a/client/src/pages/Chatbot.tsx b/client/src/pages/Chatbot.tsx index 767582c..b622a8d 100644 --- a/client/src/pages/Chatbot.tsx +++ b/client/src/pages/Chatbot.tsx @@ -52,8 +52,9 @@ import useSpeech from "@/hooks/useSpeech"; import EmojiPicker from "emoji-picker-react"; import exportFromJSON, { ExportType } from "export-from-json"; import { useTranslation } from "react-i18next"; +import transition from "@/components/transition"; -export default function ChatbotPage() { +function ChatbotPage() { const { id } = useParams(); if (!id) return null; @@ -418,3 +419,5 @@ function Loading() { ); } + +export default transition(ChatbotPage); diff --git a/client/src/pages/ChatbotView.tsx b/client/src/pages/ChatbotView.tsx index 4b41bc6..af4a369 100644 --- a/client/src/pages/ChatbotView.tsx +++ b/client/src/pages/ChatbotView.tsx @@ -1,4 +1,5 @@ import Navbar from "@/components/Navbar"; +import transition from "@/components/transition"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { @@ -35,7 +36,7 @@ import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { Link, useNavigate, useParams } from "react-router-dom"; -export default function ChatbotViewPage() { +function ChatbotViewPage() { const { chatbotId } = useParams(); const { loading, user } = useAuth(); const navigate = useNavigate(); @@ -379,3 +380,5 @@ export default function ChatbotViewPage() { ); } + +export default transition(ChatbotViewPage); diff --git a/client/src/pages/Dashboard.tsx b/client/src/pages/Dashboard.tsx index c911aee..0817f67 100644 --- a/client/src/pages/Dashboard.tsx +++ b/client/src/pages/Dashboard.tsx @@ -11,8 +11,9 @@ import { ChatbotCard } from "@/components/ChatbotCard"; import BotsLoading from "@/components/BotsLoading"; import { imageSrc, welcomeMessages } from "@/lib/utils"; import { useTranslation } from "react-i18next"; +import transition from "@/components/transition"; -export default function DashboardPage() { +function DashboardPage() { const { user, loading } = useAuth(); const createChatbotModal = useCreateChatbotModal(); const { t } = useTranslation(); @@ -215,3 +216,5 @@ export default function DashboardPage() { ); } + +export default transition(DashboardPage); diff --git a/client/src/pages/Hub.tsx b/client/src/pages/Hub.tsx index 1e8bb0c..a7e1051 100644 --- a/client/src/pages/Hub.tsx +++ b/client/src/pages/Hub.tsx @@ -17,8 +17,9 @@ import { useState } from "react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useTranslation } from "react-i18next"; +import transition from "@/components/transition"; -export default function HubPage() { +function HubPage() { const [searchTerm, setSearchTerm] = useState(""); const { t } = useTranslation(); const [selectedCategory, setSelectedCategory] = useState("All"); @@ -144,3 +145,5 @@ export default function HubPage() { ); } + +export default transition(HubPage); diff --git a/client/src/pages/Imagine.tsx b/client/src/pages/Imagine.tsx index 37dbf87..4a02ba6 100644 --- a/client/src/pages/Imagine.tsx +++ b/client/src/pages/Imagine.tsx @@ -1,4 +1,5 @@ import Separator from "@/components/Separator"; +import transition from "@/components/transition"; import { Button } from "@/components/ui/button"; import { Card, @@ -27,7 +28,7 @@ import toast from "react-hot-toast"; import { Link } from "react-router-dom"; import { z } from "zod"; -export default function ImaginePage() { +function ImaginePage() { const { data } = useQuery({ queryKey: ["images"], queryFn: fetchImagesData, @@ -197,3 +198,5 @@ function Loading() { ); } + +export default transition(ImaginePage); diff --git a/client/src/pages/Landing.tsx b/client/src/pages/Landing.tsx index a2b0ef8..bb8d915 100644 --- a/client/src/pages/Landing.tsx +++ b/client/src/pages/Landing.tsx @@ -4,8 +4,9 @@ import Separator from "../components/Separator"; import Footer from "@/components/Footer"; import { useAuth } from "@/contexts/auth-context"; import { useTranslation } from "react-i18next"; +import transition from "@/components/transition"; -export default function LandingPage() { +function LandingPage() { const { user } = useAuth(); const { t } = useTranslation(); return ( @@ -96,3 +97,5 @@ export default function LandingPage() { ); } + +export default transition(LandingPage); diff --git a/client/src/pages/Leaderboard.tsx b/client/src/pages/Leaderboard.tsx index 5393a6b..8b06fbc 100644 --- a/client/src/pages/Leaderboard.tsx +++ b/client/src/pages/Leaderboard.tsx @@ -13,8 +13,9 @@ import { TableHeader, TableRow, } from "@/components/ui/table"; +import transition from "@/components/transition"; -export default function LeaderboardPage() { +function LeaderboardPage() { const { t } = useTranslation(); const { data, isLoading } = useQuery({ queryFn: () => @@ -109,3 +110,4 @@ export default function LeaderboardPage() { ); } +export default transition(LeaderboardPage); diff --git a/client/src/pages/Login.tsx b/client/src/pages/Login.tsx index af8ca8e..f9aa359 100644 --- a/client/src/pages/Login.tsx +++ b/client/src/pages/Login.tsx @@ -28,8 +28,9 @@ import toast from "react-hot-toast"; import { useAuth } from "@/contexts/auth-context"; import { Loader2 } from "lucide-react"; import { useTranslation } from "react-i18next"; +import transition from "@/components/transition"; -export default function LoginPage() { +function LoginPage() { const { login } = useAuth(); const { t } = useTranslation(); const navigate = useNavigate(); @@ -128,3 +129,5 @@ export default function LoginPage() { ); } + +export default transition(LoginPage); diff --git a/client/src/pages/MyChatbots.tsx b/client/src/pages/MyChatbots.tsx index 0cad675..28d6300 100644 --- a/client/src/pages/MyChatbots.tsx +++ b/client/src/pages/MyChatbots.tsx @@ -1,5 +1,6 @@ import BotsLoading from "@/components/BotsLoading"; import Navbar from "@/components/Navbar"; +import transition from "@/components/transition"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { @@ -19,7 +20,7 @@ import { Flag, Heart, Pencil, Send, Trash2 } from "lucide-react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; -export default function MyChatbotsPage() { +function MyChatbotsPage() { const { loading, user } = useAuth(); const qc = useQueryClient(); const { t } = useTranslation(); @@ -214,3 +215,4 @@ export default function MyChatbotsPage() { ); } +export default transition(MyChatbotsPage); diff --git a/client/src/pages/MyImages.tsx b/client/src/pages/MyImages.tsx index 0054ef2..acee55e 100644 --- a/client/src/pages/MyImages.tsx +++ b/client/src/pages/MyImages.tsx @@ -1,5 +1,6 @@ import BotsLoading from "@/components/BotsLoading"; import Navbar from "@/components/Navbar"; +import transition from "@/components/transition"; import { Button } from "@/components/ui/button"; import { Card, @@ -16,7 +17,7 @@ import { Flag, Heart, Send, Trash2 } from "lucide-react"; import { useMemo } from "react"; import { useTranslation } from "react-i18next"; -export default function MyImagesPage() { +function MyImagesPage() { const { loading, user } = useAuth(); const qc = useQueryClient(); const deleteModal = useDeleteChatbotModal(); @@ -181,3 +182,5 @@ export default function MyImagesPage() { ); } + +export default transition(MyImagesPage); diff --git a/client/src/pages/Profile.tsx b/client/src/pages/Profile.tsx index cd79447..5dafe29 100644 --- a/client/src/pages/Profile.tsx +++ b/client/src/pages/Profile.tsx @@ -25,8 +25,9 @@ import { useEffect, useState } from "react"; import { Skeleton } from "@/components/ui/skeleton"; import { ImageCard } from "@/components/ImageCard"; import { useTranslation } from "react-i18next"; +import transition from "@/components/transition"; -export default function ProfilePage() { +function ProfilePage() { const { username } = useParams(); const profileUpdateModal = useUpdateProfileModal(); const settingsModal = useSettingsModal(); @@ -292,3 +293,5 @@ function ChatbotLoading() { )); } + +export default transition(ProfilePage); diff --git a/client/src/pages/Signup.tsx b/client/src/pages/Signup.tsx index 6d550cd..5ba24fb 100644 --- a/client/src/pages/Signup.tsx +++ b/client/src/pages/Signup.tsx @@ -29,8 +29,9 @@ import { SERVER_URL } from "@/lib/utils"; import { useState } from "react"; import { Loader2 } from "lucide-react"; import { useTranslation } from "react-i18next"; +import transition from "@/components/transition"; -export default function SignupPage() { +function SignupPage() { const navigate = useNavigate(); const { t } = useTranslation(); const [loading, setLoading] = useState(false); @@ -166,3 +167,5 @@ export default function SignupPage() { ); } + +export default transition(SignupPage); diff --git a/client/src/pages/Test.tsx b/client/src/pages/Test.tsx deleted file mode 100644 index ec5a903..0000000 --- a/client/src/pages/Test.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { SERVER_URL } from "@/lib/utils"; -import axios from "axios"; -import { useState } from "react"; - -const TextToSpeechDownload = () => { - const [text, setText] = useState(""); - function downloadAudio() { - axios - .post(`${SERVER_URL}/api/tts`, { text }, { responseType: "blob" }) - .then((response) => { - const url = window.URL.createObjectURL(new Blob([response.data])); - const link = document.createElement("a"); - link.href = url; - link.setAttribute("download", "speech.mp3"); - document.body.appendChild(link); - link.click(); - link.remove(); - }) - .catch((error) => { - console.error("Error generating audio", error); - }); - } - - return ( -
-