Properly position "track" button in track search

Regression a4f1aa3234
This commit is contained in:
schroda
2024-12-23 00:59:13 +01:00
parent 242488692d
commit 1ea7807f99

View File

@@ -35,6 +35,7 @@ import { MangaType } from '@/lib/graphql/generated/graphql.ts';
import { MangaIdInfo } from '@/modules/manga/Manga.types.ts'; import { MangaIdInfo } from '@/modules/manga/Manga.types.ts';
import { getErrorMessage } from '@/lib/HelperFunctions.ts'; import { getErrorMessage } from '@/lib/HelperFunctions.ts';
import { applyStyles } from '@/modules/core/utils/ApplyStyles.ts';
export const TrackerSearch = ({ export const TrackerSearch = ({
manga, manga,
@@ -61,6 +62,8 @@ export const TrackerSearch = ({
const searchResults = trackerSearch.data?.searchTracker.trackSearches ?? []; const searchResults = trackerSearch.data?.searchTracker.trackSearches ?? [];
const hasResults = !!searchResults.length; const hasResults = !!searchResults.length;
const hasNoResults = !trackerSearch.loading && !trackerSearch.error && !hasResults;
const hasError = !!trackerSearch.error && !trackerSearch.loading;
useEffect(() => { useEffect(() => {
setSelectedTrackerRemoteId(trackedId); setSelectedTrackerRemoteId(trackedId);
@@ -77,9 +80,7 @@ export const TrackerSearch = ({
!!selectedTrackerRemoteId && !!selectedTrackerRemoteId &&
!!searchResults.find((searchResult) => searchResult.remoteId === selectedTrackerRemoteId), !!searchResults.find((searchResult) => searchResult.remoteId === selectedTrackerRemoteId),
[selectedTrackerRemoteId, searchResults], [selectedTrackerRemoteId, searchResults],
) && ) && !hasError;
!trackerSearch.loading &&
!trackerSearch.error;
const trackManga = () => { const trackManga = () => {
if (selectedTrackerRemoteId === undefined) { if (selectedTrackerRemoteId === undefined) {
@@ -147,12 +148,17 @@ export const TrackerSearch = ({
/> />
</Stack> </Stack>
</DialogTitle> </DialogTitle>
<DialogContent dividers sx={{ padding: DIALOG_PADDING, height: '100vh', position: 'relative' }}> <DialogContent
{!trackerSearch.loading && !trackerSearch.error && !hasResults && ( dividers
<EmptyViewAbsoluteCentered message={t('manga.error.label.no_mangas_found')} /> sx={{
)} padding: DIALOG_PADDING,
height: '100vh',
...applyStyles(hasNoResults || hasError, { position: 'relative' }),
}}
>
{hasNoResults && <EmptyViewAbsoluteCentered message={t('manga.error.label.no_mangas_found')} />}
{trackerSearch.loading && <LoadingPlaceholder />} {trackerSearch.loading && <LoadingPlaceholder />}
{trackerSearch.error && !trackerSearch.loading && ( {hasError && (
<EmptyViewAbsoluteCentered <EmptyViewAbsoluteCentered
message={t('global.error.label.failed_to_load_data')} message={t('global.error.label.failed_to_load_data')}
messageExtra={getErrorMessage(trackerSearch.error)} messageExtra={getErrorMessage(trackerSearch.error)}