diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index af61dcb..7a824b0 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,23 +1,32 @@ +import { useState } from "react"; +import { Plus } from "lucide-react"; import MainPage from "@/pages/MainPage"; import Toast from "@/components/Toast"; import useToastStore from "@/stores/useToastStore"; function App() { const toastMessage = useToastStore((s) => s.message); + const [showForm, setShowForm] = useState(false); return ( -
+
Traeon 택배 배송조회 +
- +
diff --git a/frontend/src/pages/MainPage.jsx b/frontend/src/pages/MainPage.jsx index 1b959d8..7310d02 100644 --- a/frontend/src/pages/MainPage.jsx +++ b/frontend/src/pages/MainPage.jsx @@ -13,8 +13,7 @@ import { Loader2, Package, Trash2 } from "lucide-react"; const PAGE_LIMIT = 20; -function MainPage() { - const [showForm, setShowForm] = useState(false); +function MainPage({ showForm, setShowForm }) { const [selectedId, setSelectedId] = useState(null); const [deleteMode, setDeleteMode] = useState(false); const [checkedIds, setCheckedIds] = useState(new Set()); @@ -122,56 +121,91 @@ function MainPage() { return (
-
- -
- {deleteMode ? ( - <> - - - - - ) : ( - <> - {parcels.length > 0 && ( +
+
+ +
+ {!deleteMode && parcels.length > 0 && ( + <> - )} + + + )} + {!deleteMode && ( - - )} + )} +
+ + + {deleteMode && ( + +
+ +
+ + +
+
+
+ )} +
@@ -222,31 +256,30 @@ function MainPage() { }} >
- {deleteMode && ( - -
{ - e.stopPropagation(); - toggleCheck(parcel.id); - }} - className={`w-5 h-5 rounded-md border-2 flex items-center justify-center cursor-pointer transition-all ${ - checkedIds.has(parcel.id) - ? "bg-primary border-primary" - : "border-gray-300 hover:border-primary/50" - }`} - > - {checkedIds.has(parcel.id) && ( - - - - )} -
-
- )} +
{ + if (!deleteMode) return; + e.stopPropagation(); + toggleCheck(parcel.id); + }} + className={`w-5 h-5 rounded-md border-2 flex items-center justify-center shrink-0 transition-all duration-300 ${ + deleteMode + ? "opacity-100 scale-100 mr-0" + : "opacity-0 scale-0 w-0 -mr-2" + } ${ + deleteMode && checkedIds.has(parcel.id) + ? "bg-primary border-primary cursor-pointer" + : deleteMode + ? "border-gray-300 hover:border-primary/50 cursor-pointer" + : "border-transparent" + }`} + > + {checkedIds.has(parcel.id) && deleteMode && ( + + + + )} +