diff --git a/src/client/components/App.tsx b/src/client/components/App.tsx index 6eae757..d4a087c 100644 --- a/src/client/components/App.tsx +++ b/src/client/components/App.tsx @@ -46,7 +46,7 @@ export const App = (): ReactElement => { // }); // } // }, []); - return <>{/* The rest of your application */}; + return <>{/* */}; }; export default App; diff --git a/src/client/components/Settings/AirDCPPSettings/AirDCPPSettingsForm.tsx b/src/client/components/Settings/AirDCPPSettings/AirDCPPSettingsForm.tsx index 4f97895..31cd471 100644 --- a/src/client/components/Settings/AirDCPPSettings/AirDCPPSettingsForm.tsx +++ b/src/client/components/Settings/AirDCPPSettings/AirDCPPSettingsForm.tsx @@ -14,6 +14,7 @@ export const AirDCPPSettingsForm = (): ReactElement => { airDCPPDisconnectionInfo, airDCPPSocketConnectionInformation, airDCPPClientConfiguration, + airDCPPSocketInstance, } = useStore( useShallow((state) => ({ airDCPPSocketConnected: state.airDCPPSocketConnected, @@ -21,9 +22,9 @@ export const AirDCPPSettingsForm = (): ReactElement => { airDCPPClientConfiguration: state.airDCPPClientConfiguration, airDCPPSocketConnectionInformation: state.airDCPPSocketConnectionInformation, + airDCPPSocketInstance: state.airDCPPSocketInstance, })), ); - const onSubmit = useCallback(async (values) => { try { // airDCPPSettings.setSettings(values); diff --git a/src/client/components/shared/Navbar.tsx b/src/client/components/shared/Navbar.tsx index f512a61..aba0620 100644 --- a/src/client/components/shared/Navbar.tsx +++ b/src/client/components/shared/Navbar.tsx @@ -2,10 +2,61 @@ import React, { useContext } from "react"; import { SearchBar } from "../GlobalSearchBar/SearchBar"; import { DownloadProgressTick } from "../ComicDetail/DownloadProgressTick"; import { Link } from "react-router-dom"; +import { useSelector } from "react-redux"; import { isUndefined } from "lodash"; import { format, fromUnixTime } from "date-fns"; +import { useStore } from "../../store/index"; +import { useShallow } from "zustand/react/shallow"; const Navbar: React.FunctionComponent = (props) => { + const { + airDCPPSocketConnected, + airDCPPDisconnectionInfo, + airDCPPSocketConnectionInformation, + airDCPPClientConfiguration, + airDCPPSocketInstance, + } = useStore( + useShallow((state) => ({ + airDCPPSocketConnected: state.airDCPPSocketConnected, + airDCPPDisconnectionInfo: state.airDCPPDisconnectionInfo, + airDCPPClientConfiguration: state.airDCPPClientConfiguration, + airDCPPSocketConnectionInformation: + state.airDCPPSocketConnectionInformation, + airDCPPSocketInstance: state.airDCPPSocketInstance, + })), + ); + const downloadProgressTick = useSelector( + (state: RootState) => state.airdcpp.downloadProgressData, + ); + + const airDCPPSocketConnectionStatus = useSelector( + (state: RootState) => state.airdcpp.isAirDCPPSocketConnected, + ); + const airDCPPSessionInfo = useSelector( + (state: RootState) => state.airdcpp.airDCPPSessionInfo, + ); + const socketDisconnectionReason = useSelector( + (state: RootState) => state.airdcpp.socketDisconnectionReason, + ); + + // Import-related selector hooks + const successfulImportJobCount = useSelector( + (state: RootState) => state.fileOps.successfulJobCount, + ); + const failedImportJobCount = useSelector( + (state: RootState) => state.fileOps.failedJobCount, + ); + + const lastQueueJob = useSelector( + (state: RootState) => state.fileOps.lastQueueJob, + ); + const libraryQueueImportStatus = useSelector( + (state: RootState) => state.fileOps.LSQueueImportStatus, + ); + + const allImportJobResults = useSelector( + (state: RootState) => state.fileOps.importJobStatistics, + ); return (