mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 04:14:39 +03:00
Apply filter hook to results filter only (#4705)
This commit is contained in:
@@ -137,6 +137,7 @@ export function makeItemList<T extends QueryResult, E extends IDataItem>({
|
|||||||
|
|
||||||
const RenderList: React.FC<IItemListProps<T, E> & IRenderListProps> = ({
|
const RenderList: React.FC<IItemListProps<T, E> & IRenderListProps> = ({
|
||||||
filter,
|
filter,
|
||||||
|
filterHook,
|
||||||
onChangePage: _onChangePage,
|
onChangePage: _onChangePage,
|
||||||
updateFilter,
|
updateFilter,
|
||||||
persistState,
|
persistState,
|
||||||
@@ -156,7 +157,14 @@ export function makeItemList<T extends QueryResult, E extends IDataItem>({
|
|||||||
const [editingCriterion, setEditingCriterion] = useState<string>();
|
const [editingCriterion, setEditingCriterion] = useState<string>();
|
||||||
const [showEditFilter, setShowEditFilter] = useState(false);
|
const [showEditFilter, setShowEditFilter] = useState(false);
|
||||||
|
|
||||||
const result = useResult(filter);
|
const effectiveFilter = useMemo(() => {
|
||||||
|
if (filterHook) {
|
||||||
|
return filterHook(cloneDeep(filter));
|
||||||
|
}
|
||||||
|
return filter;
|
||||||
|
}, [filter, filterHook]);
|
||||||
|
|
||||||
|
const result = useResult(effectiveFilter);
|
||||||
const [totalCount, setTotalCount] = useState(0);
|
const [totalCount, setTotalCount] = useState(0);
|
||||||
const [metadataByline, setMetadataByline] = useState<React.ReactNode>();
|
const [metadataByline, setMetadataByline] = useState<React.ReactNode>();
|
||||||
const items = useMemo(() => getItems(result), [result]);
|
const items = useMemo(() => getItems(result), [result]);
|
||||||
@@ -525,7 +533,6 @@ export function makeItemList<T extends QueryResult, E extends IDataItem>({
|
|||||||
persistState,
|
persistState,
|
||||||
persistanceKey = filterMode,
|
persistanceKey = filterMode,
|
||||||
defaultSort = filterOptions.defaultSortBy,
|
defaultSort = filterOptions.defaultSortBy,
|
||||||
filterHook,
|
|
||||||
defaultZoomIndex,
|
defaultZoomIndex,
|
||||||
alterQuery = true,
|
alterQuery = true,
|
||||||
} = props;
|
} = props;
|
||||||
@@ -712,17 +719,11 @@ export function makeItemList<T extends QueryResult, E extends IDataItem>({
|
|||||||
[filter, updateFilter]
|
[filter, updateFilter]
|
||||||
);
|
);
|
||||||
|
|
||||||
const renderFilter = useMemo(() => {
|
if (!filterInitialised) return null;
|
||||||
if (filterInitialised) {
|
|
||||||
return filterHook ? filterHook(cloneDeep(filter)) : filter;
|
|
||||||
}
|
|
||||||
}, [filterInitialised, filter, filterHook]);
|
|
||||||
|
|
||||||
if (!renderFilter) return null;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RenderList
|
<RenderList
|
||||||
filter={renderFilter}
|
filter={filter}
|
||||||
onChangePage={onChangePage}
|
onChangePage={onChangePage}
|
||||||
updateFilter={updateFilter}
|
updateFilter={updateFilter}
|
||||||
{...props}
|
{...props}
|
||||||
|
|||||||
Reference in New Issue
Block a user