Source filter scroll fix (array of filters on submit) (#149)

* scrolling filters issue fix

scrolling after changing filters and not submitting works properly now

* fixed it

wasn't something i introduced just then, just forgot to fix

* source filters array on submit
This commit is contained in:
robo
2022-03-04 21:48:33 +00:00
committed by GitHub
parent bdd03f6698
commit 68351aa12f
8 changed files with 86 additions and 32 deletions

View File

@@ -36,7 +36,7 @@ export default function SourceMangas(props: { popular: boolean }) {
const [Search, setSearch] = useState<boolean>();
const [query, setquery] = useQueryParam('query', StringParam);
const [reset, setReset] = React.useState(2);
const [update, setUpdate] = React.useState();
const [update, setUpdate] = useState<IPos[]>([]);
const [triggerUpdate, setTriggerUpdate] = useState<number>(2);
const [Data, SetData] = useState<ISourceFilters[]>();
@@ -72,31 +72,34 @@ export default function SourceMangas(props: { popular: boolean }) {
setTriggerUpdate(1);
return;
}
setFetched(false);
setMangas([]);
setLastPageNum(0);
if (Noreset === undefined && Search) { setNoreset(null); }
}, [triggerUpdate]);
useEffect(() => {
if (update !== undefined) {
const { position, state, group }: IPos = update;
if (update.length > 0) {
const rep = update;
setUpdate([]);
client.post(`/api/v1/source/${sourceId}/filters`,
JSON.stringify(group === undefined ? {
position,
state,
} : {
position: group,
state: JSON.stringify({
rep.map((e: IPos) => {
const { position, state, group }: IPos = e;
return group === undefined ? {
position,
state,
}),
} : {
position: group,
state: JSON.stringify({
position,
state,
}),
};
}))
.then(() => {
setTriggerUpdate(0);
makeFilters();
});
} else {
setFetched(false);
setMangas([]);
setLastPageNum(0);
if (Noreset === undefined && Search) { setNoreset(null); }
}
}, [update]);
}, [triggerUpdate]);
useEffect(() => {
if (reset === 0) {
@@ -207,6 +210,7 @@ export default function SourceMangas(props: { popular: boolean }) {
resetFilterValue={setReset}
setTriggerUpdate={setTriggerUpdate}
setSearch={setSearch}
update={update}
/>
)}
</>