Skip to content

Commit 0de5cdc

Browse files
committed
chore: 表示されないコンポーネントを削除
1 parent e7087de commit 0de5cdc

File tree

1 file changed

+1
-158
lines changed

1 file changed

+1
-158
lines changed

task_yell/src/app/home/page.tsx

+1-158
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"use client";
22

33
import { Button } from "@/components/ui/button";
4-
import { Input } from "@/components/ui/input";
54
import { auth } from "@/firebase/client-app";
65
import { createEvent, readEvents } from "@/lib/events";
76
import { createNotification } from "@/lib/notifications";
@@ -17,21 +16,17 @@ import {
1716
subMonths,
1817
} from "date-fns";
1918
import { ja } from "date-fns/locale";
20-
import { AnimatePresence, motion, useDragControls } from "framer-motion";
2119
import {
2220
ChevronLeft,
2321
ChevronRight,
24-
ChevronUp,
25-
X,
2622
} from "lucide-react";
2723
import { useRouter } from "next/navigation";
28-
import { useEffect, useMemo, useRef, useState } from "react";
24+
import { useEffect, useMemo, useState } from "react";
2925
import { generateStickyNoteServer } from "./actions";
3026
import { Event, Todo, StickyNote } from "@/components/types";
3127
import { Navigation } from "@/components/navigation";
3228
import { EditWantodoDialog } from "@/components/edit-wantodo-dialog";
3329
import { CreateEventDialog } from "@/components/create-event-dialog";
34-
import { StickyNoteItem } from "@/components/sticky-note-item";
3530
import { CalendarRenderer } from "@/components/calendar-renderer";
3631
import { WantodoView } from "@/components/wantodo-view";
3732

@@ -42,10 +37,6 @@ export default function Home() {
4237
const [newStickyNote, setNewStickyNote] = useState("");
4338
const [selectedDate, setSelectedDate] = useState<Date>(new Date());
4439
const [currentMonth, setCurrentMonth] = useState(new Date());
45-
const [isModalOpen, setIsModalOpen] = useState(false);
46-
const [modalState, setModalState] = useState<
47-
"minimized" | "partial" | "full"
48-
>("partial");
4940
const [searchTerm, setSearchTerm] = useState("");
5041
const [editingStickyNote, setEditingStickyNote] = useState<StickyNote | null>(
5142
null,
@@ -58,8 +49,6 @@ export default function Home() {
5849
const [removedStickyNote, setRemovedStickyNote] = useState<StickyNote | null>(
5950
null,
6051
);
61-
const dragControls = useDragControls();
62-
const modalRef = useRef<HTMLDivElement>(null);
6352
const router = useRouter();
6453

6554
useEffect(() => {
@@ -204,14 +193,6 @@ export default function Home() {
204193
);
205194
}, [stickyNotes, searchTerm]);
206195

207-
const handleStatusBarClick = () => {
208-
setModalState((prevState) => {
209-
if (prevState === "minimized") return "partial";
210-
if (prevState === "partial") return "full";
211-
return "partial";
212-
});
213-
};
214-
215196
return (
216197
<div
217198
className={`relative h-screen bg-gray-100 dark:bg-gray-900 overflow-hidden ${isDarkMode ? "dark" : ""}`}
@@ -267,144 +248,6 @@ export default function Home() {
267248
</div>
268249
</div>
269250

270-
<AnimatePresence>
271-
{isModalOpen && (
272-
<motion.div
273-
initial={{ opacity: 0 }}
274-
animate={{
275-
opacity: modalState === "minimized" ? 0 : 1,
276-
}}
277-
exit={{ opacity: 0 }}
278-
className="fixed inset-0 bg-black flex items-end justify-center z-50 lg:hidden"
279-
style={{
280-
backgroundColor:
281-
modalState === "minimized"
282-
? "transparent"
283-
: "rgba(0, 0, 0, 0.5)",
284-
pointerEvents: modalState === "minimized" ? "none" : "auto",
285-
}}
286-
onClick={(e) => {
287-
if (e.target === e.currentTarget && modalState !== "minimized") {
288-
setIsModalOpen(false);
289-
}
290-
}}
291-
>
292-
<motion.div
293-
ref={modalRef}
294-
initial={{ y: "100%" }}
295-
animate={{
296-
y:
297-
modalState === "minimized"
298-
? "calc(100% - 40px)"
299-
: modalState === "partial"
300-
? "calc(100% - 400px)"
301-
: "0%",
302-
height:
303-
modalState === "full"
304-
? "100%"
305-
: modalState === "partial"
306-
? "400px"
307-
: "40px",
308-
transition: {
309-
type: "spring",
310-
damping: 30,
311-
stiffness: 300,
312-
},
313-
}}
314-
exit={{ y: "100%" }}
315-
transition={{ type: "spring", damping: 25, stiffness: 500 }}
316-
drag="y"
317-
dragControls={dragControls}
318-
dragConstraints={{ top: 0, bottom: 0 }}
319-
dragElastic={0.2}
320-
onDragEnd={(_, info) => {
321-
if (info.offset.y > 200) {
322-
setIsModalOpen(false);
323-
} else if (info.offset.y < -20) {
324-
setModalState("full");
325-
} else if (info.offset.y > 20 && info.offset.y <= 100) {
326-
setModalState("partial");
327-
} else if (info.offset.y > 100) {
328-
setModalState("minimized");
329-
}
330-
}}
331-
className="bg-white dark:bg-gray-800 w-full sm:w-96 md:w-[512px] rounded-t-xl shadow-lg overflow-hidden"
332-
style={{
333-
maxWidth: "calc(100% - 2rem)",
334-
margin: "0 1rem",
335-
height: modalState === "full" ? "calc(100% - 2rem)" : "auto",
336-
maxHeight: "calc(100% - 2rem)",
337-
zIndex: 60,
338-
}}
339-
>
340-
<div
341-
className="h-10 flex items-center justify-start cursor-pointer overflow-x-auto whitespace-nowrap px-4"
342-
onClick={handleStatusBarClick}
343-
onPointerDown={(e) => dragControls.start(e)}
344-
>
345-
<ChevronUp className="h-6 w-6 text-gray-400 flex-shrink-0" />
346-
<span className="ml-2 text-sm text-gray-600 dark:text-gray-300">
347-
{format(selectedDate, "yyyy年MM月dd日", { locale: ja })}
348-
のwanTODO
349-
</span>
350-
{filteredStickyNotes.length > 0 && (
351-
<span className="ml-2 text-sm text-gray-600 dark:text-gray-300">
352-
{filteredStickyNotes.length}件)
353-
</span>
354-
)}
355-
</div>
356-
<div
357-
className="p-4 overflow-y-auto"
358-
style={{ maxHeight: "calc(100% - 40px)" }}
359-
>
360-
<div className="flex justify-between items-center mb-4">
361-
<h3 className="text-lg font-semibold dark:text-white">
362-
{format(selectedDate, "yyyy年MM月dd日", { locale: ja })}
363-
のwanTODO
364-
</h3>
365-
<Button
366-
variant="ghost"
367-
size="icon"
368-
onClick={() => setIsModalOpen(false)}
369-
>
370-
<X className="h-6 w-6" />
371-
</Button>
372-
</div>
373-
<div className="space-y-4">
374-
<Input
375-
type="text"
376-
value={newStickyNote}
377-
onChange={(e) => setNewStickyNote(e.target.value)}
378-
placeholder="新しいwanTODOのタイトルを入力"
379-
className="w-full"
380-
/>
381-
<Button onClick={addStickyNote} className="w-full">
382-
追加
383-
</Button>
384-
{filteredStickyNotes.length > 0 ? (
385-
<div className="grid grid-cols-1 gap-4">
386-
{filteredStickyNotes.map((note) => (
387-
<StickyNoteItem
388-
key={note.id} note={note}
389-
setDraggedStickyNote={setDraggedStickyNote}
390-
generateStickyNote={generateStickyNote}
391-
editStickyNote={editStickyNote}
392-
deleteStickyNote={deleteStickyNote}
393-
/>
394-
))}
395-
</div>
396-
) : (
397-
<p className="dark:text-gray-300">
398-
この日のwanTODOはありません。
399-
</p>
400-
)}
401-
</div>
402-
</div>
403-
</motion.div>
404-
</motion.div>
405-
)}
406-
</AnimatePresence>
407-
408251
<EditWantodoDialog
409252
editingStickyNote={editingStickyNote}
410253
setEditingStickyNote={setEditingStickyNote}

0 commit comments

Comments
 (0)