import React, { useState, useEffect } from "react"; import { Session } from "@/entities/Session"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Search, FileText } from "lucide-react"; import { format } from "date-fns"; import SessionCard from "../components/sessions/SessionCard"; import SessionDetailModal from "../components/sessions/SessionDetailModal"; export default function AllSessions() { const [sessions, setSessions] = useState([]); const [filteredSessions, setFilteredSessions] = useState([]); const [searchQuery, setSearchQuery] = useState(""); const [isLoading, setIsLoading] = useState(true); const [selectedSession, setSelectedSession] = useState(null); useEffect(() => { loadSessions(); }, []); useEffect(() => { if (searchQuery) { const filtered = sessions.filter(session => session.client_name.toLowerCase().includes(searchQuery.toLowerCase()) || session.presenting_concerns?.toLowerCase().includes(searchQuery.toLowerCase()) || session.session_notes?.toLowerCase().includes(searchQuery.toLowerCase()) ); setFilteredSessions(filtered); } else { setFilteredSessions(sessions); } }, [searchQuery, sessions]); const loadSessions = async () => { setIsLoading(true); const data = await Session.list("-session_date"); setSessions(data); setFilteredSessions(data); setIsLoading(false); }; const groupedSessions = {}; filteredSessions.forEach(session => { if (!groupedSessions[session.client_name]) { groupedSessions[session.client_name] = []; } groupedSessions[session.client_name].push(session); }); return (
Browse and search through your session notes
{searchQuery ? "Try adjusting your search" : "Start by creating your first session note"}