summaryrefslogtreecommitdiffhomepage
path: root/frontend/src/components/modals/ManualSearchModal.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/components/modals/ManualSearchModal.tsx')
-rw-r--r--frontend/src/components/modals/ManualSearchModal.tsx24
1 files changed, 16 insertions, 8 deletions
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>
);