🪢 Unwrangling state vars for global search vs local

This commit is contained in:
2022-08-18 00:10:31 -07:00
parent 5f59456c8b
commit 9bbf2efc3c
6 changed files with 50 additions and 14 deletions

View File

@@ -31,6 +31,7 @@ import {
LS_TOGGLE_IMPORT_QUEUE,
SS_SEARCH_FAILED,
SS_SEARCH_RESULTS_FETCHED_SPECIAL,
WANTED_COMICS_FETCHED,
} from "../constants/action-types";
import { success } from "react-notification-system-redux";
import { removeLeadingPeriod } from "../shared/utils/formatting.utils";
@@ -288,21 +289,40 @@ export const searchIssue = (query, options) => async (dispatch) => {
method: "POST",
data: { ...query, ...options },
});
console.log("options", options);
if (response.data.code === 404) {
dispatch({
type: SS_SEARCH_FAILED,
data: response.data,
});
}
dispatch({
type: SS_SEARCH_RESULTS_FETCHED,
data: response.data.body,
});
dispatch({
type: SS_SEARCH_RESULTS_FETCHED_SPECIAL,
data: response.data.body,
});
switch (options.trigger) {
case "wantedComicsPage":
dispatch({
type: WANTED_COMICS_FETCHED,
data: response.data.body,
});
break;
case "globalSearchBar":
dispatch({
type: SS_SEARCH_RESULTS_FETCHED_SPECIAL,
data: response.data.body,
});
break;
case "libraryPage":
dispatch({
type: SS_SEARCH_RESULTS_FETCHED,
data: response.data.body,
});
break;
default:
break;
}
};
export const analyzeImage =
(imageFilePath: string | Buffer) => async (dispatch) => {

View File

@@ -31,6 +31,7 @@ export const SearchBar = (data: ISearchBarProps): ReactElement => {
from: 0,
},
type: "volumeName",
trigger: "globalSearchBar"
},
),
);

View File

@@ -18,13 +18,14 @@ const LibraryContainer = (): ReactElement => {
from: 0,
},
type: "all",
trigger: "libraryPage"
},
),
);
}, []);
const searchResults = useSelector(
(state: RootState) => state.fileOps.librarySearchResults,
(state: RootState) => state.fileOps.libraryComics,
);
const searchError = useSelector(
(state: RootState) => state.fileOps.librarySearchError,

View File

@@ -8,7 +8,7 @@ import MetadataPanel from "../shared/MetadataPanel";
export const WantedComics = (props): ReactElement => {
const wantedComics = useSelector(
(state: RootState) => state.fileOps.librarySearchResultsFormatted,
(state: RootState) => state.fileOps.wantedComics,
);
const dispatch = useDispatch();
useEffect(() => {
@@ -23,6 +23,7 @@ export const WantedComics = (props): ReactElement => {
from: 0,
},
type: "wanted",
trigger: "wantedComicsPage"
},
),
);

View File

@@ -44,7 +44,7 @@ const initialState = {
extractedComicBookArchive: [],
recentComics: [],
wantedComics: [],
librarySearchResults: [],
libraryComics: [],
librarySearchResultsFormatted: [],
librarySearchResultCount: 0,
libraryQueueResults: [],
@@ -190,12 +190,13 @@ function fileOpsReducer(state = initialState, action) {
case SS_SEARCH_RESULTS_FETCHED: {
return {
...state,
librarySearchResults: action.data,
libraryComics: action.data,
SSCallInProgress: false,
};
}
case SS_SEARCH_RESULTS_FETCHED_SPECIAL: {
const foo = [];
console.log(action.data.hits)
if (!isUndefined(action.data.hits)) {
map(action.data.hits.hits, ({ _source }) => {
foo.push(_source);
@@ -207,6 +208,19 @@ function fileOpsReducer(state = initialState, action) {
SSCallInProgress: false,
};
}
case WANTED_COMICS_FETCHED: {
const foo = [];
if (!isUndefined(action.data.hits)) {
map(action.data.hits.hits, ({ _source }) => {
foo.push(_source);
});
}
return {
...state,
wantedComics: foo,
SSCallInProgress: false,
};
}
case SS_SEARCH_FAILED: {
return {

View File

@@ -2,7 +2,6 @@ import { Socket } from "airdcpp-apisocket";
class AirDCPPSocket {
constructor(configuration) {
console.log(configuration);
let socketProtocol = "";
if (configuration.protocol === "https") {
socketProtocol = "wss";