"use client"; import React from "react"; import { Header } from "@/components/layout/Header"; import { Sidebar } from "@/components/layout/Sidebar"; import { Dashboard } from "@/components/Dashboard"; import { UploadModal } from "@/components/modals/UploadModal"; import { ChangelogModal } from "@/components/modals/ChangelogModal"; import { CreateAppModal } from "@/components/modals/CreateAppModal"; import { ChangelogEntry } from "@/hooks/use-query/useAppsQuery"; import { useAppDataQuery } from "@/hooks/use-query/useAppDataQuery"; import { AppLogo } from "@/components/common/AppLogo"; import { useParams, useNavigate } from "react-router-dom"; export const HomePage = () => { const { appName } = useParams(); const navigate = useNavigate(); const [showUploadModal, setShowUploadModal] = React.useState(false); const [showCreateAppModal, setShowCreateAppModal] = React.useState(false); const [selectedApp, setSelectedApp] = React.useState(appName || null); const [showChangelogModal, setShowChangelogModal] = React.useState(false); const [selectedVersion, setSelectedVersion] = React.useState(null); const [selectedChangelog, setSelectedChangelog] = React.useState([]); const [refreshKey, setRefreshKey] = React.useState(0); const [searchTerm, setSearchTerm] = React.useState(""); const [isSidebarOpen, setIsSidebarOpen] = React.useState(false); React.useEffect(() => { setSelectedApp(appName || null); }, [appName]); const toggleUploadModal = () => { setShowUploadModal(!showUploadModal); }; const toggleCreateAppModal = () => { setShowCreateAppModal(!showCreateAppModal); }; const handleAppClick = (appName: string) => { setSelectedApp(appName); navigate(`/applications/${appName}`); }; const handleBackClick = () => { setSelectedApp(null); navigate('/applications'); }; const handleChangelogClick = (version: string, changelog: ChangelogEntry[]) => { setSelectedVersion(version); setSelectedChangelog(changelog); setShowChangelogModal(true); }; const closeChangelogModal = () => { setShowChangelogModal(false); setSelectedVersion(null); setSelectedChangelog([]); }; const handleCreateAppSuccess = () => { setRefreshKey(prev => prev + 1); }; const handleSearchChange = (term: string) => { setSearchTerm(term); }; const { data: appData } = useAppDataQuery(selectedApp); const appTitleContent = selectedApp ? (
{appData?.Private && (
)}

{selectedApp}

) : undefined; return (
setIsSidebarOpen(false)} />
Create app } onSearchChange={handleSearchChange} hideSearch={!!selectedApp} onMenuClick={() => setIsSidebarOpen(true)} />
{showUploadModal && ( )} {showCreateAppModal && ( )} {showChangelogModal && selectedVersion && selectedApp && ( )}
); };