summaryrefslogtreecommitdiffhomepage
path: root/frontend
diff options
context:
space:
mode:
authorLASER-Yi <[email protected]>2023-09-03 15:54:23 +0800
committerLASER-Yi <[email protected]>2023-09-03 15:54:23 +0800
commit714c46444aacc16e78b7dc5d7184a81d7b8f8aea (patch)
tree2f2727ff7a53ee098fe2024902d2706c352831b9 /frontend
parent79f5c7d67590250317d82150e11a403c01ca79c3 (diff)
downloadbazarr-714c46444aacc16e78b7dc5d7184a81d7b8f8aea.tar.gz
bazarr-714c46444aacc16e78b7dc5d7184a81d7b8f8aea.zip
Improve manual search modal. Change cache behavior of manual search api to no cachev1.2.5-beta.20
Diffstat (limited to 'frontend')
-rw-r--r--frontend/src/apis/hooks/providers.ts4
-rw-r--r--frontend/src/components/modals/ManualSearchModal.tsx24
2 files changed, 18 insertions, 10 deletions
diff --git a/frontend/src/apis/hooks/providers.ts b/frontend/src/apis/hooks/providers.ts
index f1daf9f37..c804a9a8e 100644
--- a/frontend/src/apis/hooks/providers.ts
+++ b/frontend/src/apis/hooks/providers.ts
@@ -18,7 +18,7 @@ export function useMoviesProvider(radarrId?: number) {
}
},
{
- staleTime: Infinity,
+ staleTime: 0,
}
);
}
@@ -32,7 +32,7 @@ export function useEpisodesProvider(episodeId?: number) {
}
},
{
- staleTime: Infinity,
+ staleTime: 0,
}
);
}
diff --git a/frontend/src/components/modals/ManualSearchModal.tsx b/frontend/src/components/modals/ManualSearchModal.tsx
index 7760fb26e..fa428c1a0 100644
--- a/frontend/src/components/modals/ManualSearchModal.tsx
+++ b/frontend/src/components/modals/ManualSearchModal.tsx
@@ -40,18 +40,18 @@ interface Props<T extends SupportType> {
function ManualSearchView<T extends SupportType>(props: Props<T>) {
const { download, query: useSearch, item } = props;
- const itemId = useMemo(() => GetItemId(item ?? {}), [item]);
+ const [searchStarted, setSearchStarted] = useState(false);
- const [id, setId] = useState<number | undefined>(undefined);
+ const itemId = useMemo(() => GetItemId(item), [item]);
- const results = useSearch(id);
+ const results = useSearch(searchStarted ? itemId : undefined);
- const isStale = results.data === undefined;
+ const haveResult = results.data !== undefined;
const search = useCallback(() => {
- setId(itemId);
+ setSearchStarted(true);
results.refetch();
- }, [itemId, results]);
+ }, [results]);
const columns = useMemo<Column<SearchResultType>[]>(
() => [
@@ -190,6 +190,14 @@ function ManualSearchView<T extends SupportType>(props: Props<T>) {
const bSceneNameAvailable =
isString(item.sceneName) && item.sceneName.length !== 0;
+ const searchButtonText = useMemo(() => {
+ if (results.isFetching) {
+ return "Searching";
+ }
+
+ return searchStarted ? "Search Again" : "Search";
+ }, [results.isFetching, searchStarted]);
+
return (
<Stack>
<Alert
@@ -201,7 +209,7 @@ function ManualSearchView<T extends SupportType>(props: Props<T>) {
<Divider hidden={!bSceneNameAvailable} my="xs"></Divider>
<Code hidden={!bSceneNameAvailable}>{item?.sceneName}</Code>
</Alert>
- <Collapse in={!isStale && !results.isFetching}>
+ <Collapse in={haveResult && !results.isFetching}>
<PageTable
tableStyles={{ emptyText: "No result", placeholder: 10 }}
columns={columns}
@@ -210,7 +218,7 @@ function ManualSearchView<T extends SupportType>(props: Props<T>) {
</Collapse>
<Divider></Divider>
<Button loading={results.isFetching} fullWidth onClick={search}>
- {isStale ? "Search" : "Search Again"}
+ {searchButtonText}
</Button>
</Stack>
);