🔧 Fixing the AirDCPP socket issue on AcquisitionPanel on ComicDetails page

This commit is contained in:
2022-06-21 12:43:35 -07:00
parent 34e475d3cc
commit 702f4e62a2
3 changed files with 41 additions and 25 deletions

View File

@@ -10,12 +10,14 @@ export const AirDCPPHubsForm = (airDCPPClientUserSettings): ReactElement => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const [hubList, setHubList] = useState([]); const [hubList, setHubList] = useState([]);
const airDCPPConfiguration = useContext(AirDCPPSocketContext); const airDCPPConfiguration = useContext(AirDCPPSocketContext);
const { AirDCPPSocket, settings } = airDCPPConfiguration; const {
airDCPPState: { settings, socket },
} = airDCPPConfiguration;
useEffect(() => { useEffect(() => {
(async () => { (async () => {
if (!isEmpty(settings)) { if (!isEmpty(settings)) {
const hubs = await AirDCPPSocket.get(`hubs`); const hubs = await socket.get(`hubs`);
const hubSelectionOptions = hubs.map(({ hub_url, identity }) => ({ const hubSelectionOptions = hubs.map(({ hub_url, identity }) => ({
value: hub_url, value: hub_url,
label: identity.name, label: identity.name,

View File

@@ -27,7 +27,9 @@ export const AirDCPPSettingsForm = (): ReactElement => {
}, []); }, []);
const validate = async () => {}; const validate = async () => {};
console.log(airDCPPSettings.airDCPPState); console.log(airDCPPSettings.airDCPPState);
const initFormData = !isUndefined(airDCPPSettings.airDCPPState.settings.directConnect) const initFormData = !isUndefined(
airDCPPSettings.airDCPPState.settings.directConnect,
)
? airDCPPSettings.airDCPPState.settings.directConnect.client.host ? airDCPPSettings.airDCPPState.settings.directConnect.client.host
: {}; : {};

View File

@@ -46,24 +46,27 @@ export const AcquisitionPanel = (
// const settings = useSelector((state: RootState) => state.settings.data); // const settings = useSelector((state: RootState) => state.settings.data);
const airDCPPConfiguration = useContext(AirDCPPSocketContext); const airDCPPConfiguration = useContext(AirDCPPSocketContext);
const { AirDCPPSocket, settings } = airDCPPConfiguration;
const dispatch = useDispatch(); const dispatch = useDispatch();
const [dcppQuery, setDcppQuery] = useState({}); const [dcppQuery, setDcppQuery] = useState({});
useEffect(() => { useEffect(() => {
if (!isNil(settings)) { if (!isEmpty(airDCPPConfiguration.airDCPPState.settings)) {
// AirDC++ search query // AirDC++ search query
const dcppSearchQuery = { const dcppSearchQuery = {
query: { query: {
pattern: `${sanitizedIssueName.replace(/#/g, "")}`, pattern: `${sanitizedIssueName.replace(/#/g, "")}`,
extensions: ["cbz", "cbr", "cb7"], extensions: ["cbz", "cbr", "cb7"],
}, },
hub_urls: map(settings.directConnect.client.hubs, (item) => item.value), hub_urls: map(
airDCPPConfiguration.airDCPPState.settings.directConnect.client.hubs,
(item) => item.value,
),
priority: 5, priority: 5,
}; };
setDcppQuery(dcppSearchQuery); setDcppQuery(dcppSearchQuery);
} }
}, []); }, [airDCPPConfiguration]);
const getDCPPSearchResults = useCallback( const getDCPPSearchResults = useCallback(
async (searchQuery) => { async (searchQuery) => {
@@ -72,17 +75,20 @@ export const AcquisitionPanel = (
pattern: `${searchQuery.issueName}`, pattern: `${searchQuery.issueName}`,
extensions: ["cbz", "cbr", "cb7"], extensions: ["cbz", "cbr", "cb7"],
}, },
hub_urls: map(settings.directConnect.client.hubs, (item) => item.value), hub_urls: map(
airDCPPConfiguration.airDCPPState.settings.directConnect.client.hubs,
(item) => item.value,
),
priority: 5, priority: 5,
}; };
dispatch( dispatch(
search(manualQuery, AirDCPPSocket, { search(manualQuery, airDCPPConfiguration.airDCPPState.socket, {
username: `${settings.directConnect.client.host.username}`, username: `${airDCPPConfiguration.airDCPPState.settings.directConnect.client.host.username}`,
password: `${settings.directConnect.client.host.password}`, password: `${airDCPPConfiguration.airDCPPState.settings.directConnect.client.host.password}`,
}), }),
); );
}, },
[dispatch, AirDCPPSocket], [dispatch, airDCPPConfiguration],
); );
// download via AirDC++ // download via AirDC++
@@ -94,19 +100,23 @@ export const AcquisitionPanel = (
resultId, resultId,
comicBookObjectId, comicBookObjectId,
comicObject, comicObject,
AirDCPPSocket, airDCPPConfiguration.airDCPPState.socket,
{ {
username: `${settings.directConnect.client.host.username}`, username: `${airDCPPConfiguration.airDCPPState.settings.directConnect.client.host.username}`,
password: `${settings.directConnect.client.host.password}`, password: `${airDCPPConfiguration.airDCPPState.settings.directConnect.client.host.password}`,
}, },
), ),
); );
// this is to update the download count badge on the downloads tab // this is to update the download count badge on the downloads tab
dispatch( dispatch(
getBundlesForComic(comicBookObjectId, AirDCPPSocket, { getBundlesForComic(
username: `${settings.directConnect.client.host.username}`, comicBookObjectId,
password: `${settings.directConnect.client.host.password}`, airDCPPConfiguration.airDCPPState.socket,
}), {
username: `${airDCPPConfiguration.airDCPPState.settings.directConnect.client.host.username}`,
password: `${airDCPPConfiguration.airDCPPState.settings.directConnect.client.host.password}`,
},
),
); );
}, },
[], [],
@@ -114,7 +124,7 @@ export const AcquisitionPanel = (
return ( return (
<> <>
<div className="comic-detail columns"> <div className="comic-detail columns">
{!isEmpty(AirDCPPSocket) ? ( {!isEmpty(airDCPPConfiguration.airDCPPState.socket) ? (
<Form <Form
onSubmit={getDCPPSearchResults} onSubmit={getDCPPSearchResults}
initialValues={{ initialValues={{
@@ -185,11 +195,13 @@ export const AcquisitionPanel = (
<dl> <dl>
<dt> <dt>
<div className="tags mb-1"> <div className="tags mb-1">
{settings.directConnect.client.hubs.map(({ value }) => ( {airDCPPConfiguration.airDCPPState.settings.directConnect.client.hubs.map(
<span className="tag is-warning" key={value}> ({ value }) => (
{value} <span className="tag is-warning" key={value}>
</span> {value}
))} </span>
),
)}
</div> </div>
</dt> </dt>
<dt> <dt>