fix(filters): refetch on update (#200)

This commit is contained in:
Ludvig Lundgren 2022-03-22 23:18:47 +01:00 committed by GitHub
parent ae016c0a9a
commit 3493a39537
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 12 deletions

View file

@ -135,7 +135,7 @@ export default function FilterDetails() {
const { filterId } = useParams<{ filterId: string }>();
const { isLoading, data: filter } = useQuery(
["filter", +filterId],
["filters", filterId],
() => APIClient.filters.getByID(parseInt(filterId)),
{
retry: false,
@ -151,7 +151,8 @@ export default function FilterDetails() {
toast.custom((t) => (
<Toast type="success" body={`${currentFilter.name} was updated successfully`} t={t} />
));
queryClient.invalidateQueries(["filter", currentFilter.id]);
queryClient.refetchQueries(["filters"]);
// queryClient.invalidateQueries(["filters", currentFilter.id]);
}
}
);
@ -163,7 +164,7 @@ export default function FilterDetails() {
));
// Invalidate filters just in case, most likely not necessary but can't hurt.
queryClient.invalidateQueries("filters");
queryClient.invalidateQueries(["filters"]);
// redirect
history.push("/filters")
@ -334,7 +335,7 @@ export default function FilterDetails() {
function General() {
const { isLoading, data: indexers } = useQuery(
["filter", "indexer_list"],
["filters", "indexer_list"],
APIClient.indexers.getOptions,
{ refetchOnWindowFocus: false }
);
@ -612,7 +613,7 @@ interface FilterActionsProps {
function FilterActions({ filter, values }: FilterActionsProps) {
const { data } = useQuery(
["filter", "download_clients"],
["filters", "download_clients"],
APIClient.download_clients.getAll,
{ refetchOnWindowFocus: false }
);

View file

@ -23,7 +23,7 @@ export default function Filters() {
const [createFilterIsOpen, toggleCreateFilter] = useToggle(false)
const { isLoading, error, data } = useQuery(
"filters",
["filters"],
APIClient.filters.getAll,
{ refetchOnWindowFocus: false }
);
@ -117,8 +117,8 @@ const FilterItemDropdown = ({
(id: number) => APIClient.filters.delete(id),
{
onSuccess: () => {
queryClient.invalidateQueries("filters");
queryClient.invalidateQueries(["filter", filter.id]);
queryClient.invalidateQueries(["filters"]);
queryClient.invalidateQueries(["filters", filter.id]);
toast.custom((t) => <Toast type="success" body={`Filter ${filter?.name} was deleted`} t={t} />);
}
@ -129,7 +129,7 @@ const FilterItemDropdown = ({
(id: number) => APIClient.filters.duplicate(id),
{
onSuccess: () => {
queryClient.invalidateQueries("filters");
queryClient.invalidateQueries(["filters"]);
toast.custom((t) => <Toast type="success" body={`Filter ${filter?.name} duplicated`} t={t} />);
}
@ -274,8 +274,8 @@ function FilterListItem({ filter, idx }: FilterListItemProps) {
// We need to invalidate both keys here.
// The filters key is used on the /filters page,
// while the ["filter", filter.id] key is used on the details page.
queryClient.invalidateQueries("filters");
queryClient.invalidateQueries(["filter", filter?.id]);
queryClient.invalidateQueries(["filters"]);
queryClient.invalidateQueries(["filters", filter?.id]);
}
}
);

View file

@ -87,7 +87,7 @@ export const ReleaseTable = () => {
() => APIClient.release.findQuery(queryPageIndex * queryPageSize, queryPageSize, queryFilters),
{
keepPreviousData: true,
staleTime: Infinity,
staleTime: 5000,
}
);