mirror of
https://github.com/jeffvli/feishin.git
synced 2026-07-25 03:46:29 +02:00
reimplement genre detail route
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import { useMemo, useState } from 'react';
|
||||
import { useLocation, useParams } from 'react-router';
|
||||
|
||||
import { ListContext } from '/@/renderer/context/list-context';
|
||||
import { useGenreList } from '/@/renderer/features/genres/api/genres-api';
|
||||
import { GenreDetailContent } from '/@/renderer/features/genres/components/genre-detail-content';
|
||||
import { GenreDetailHeader } from '/@/renderer/features/genres/components/genre-detail-header';
|
||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
||||
import { LibraryContainer } from '/@/renderer/features/shared/components/library-container';
|
||||
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||
|
||||
const GenreDetailRoute = () => {
|
||||
const { genreId } = useParams() as { genreId: string };
|
||||
const pageKey = 'genre';
|
||||
|
||||
const [itemCount, setItemCount] = useState<number | undefined>(undefined);
|
||||
|
||||
const providerValue = useMemo(() => {
|
||||
return {
|
||||
id: genreId,
|
||||
itemCount,
|
||||
pageKey,
|
||||
setItemCount,
|
||||
};
|
||||
}, [genreId, itemCount, pageKey, setItemCount]);
|
||||
|
||||
const { data: genres } = useGenreList();
|
||||
|
||||
const name = useMemo(() => {
|
||||
return genres?.items.find((g) => g.id === genreId)?.name || '—';
|
||||
}, [genreId, genres]);
|
||||
|
||||
const location = useLocation();
|
||||
console.log('location', location.pathname);
|
||||
|
||||
return (
|
||||
<AnimatedPage>
|
||||
<ListContext.Provider value={providerValue}>
|
||||
<LibraryContainer>
|
||||
<GenreDetailHeader title={name} />
|
||||
<GenreDetailContent />
|
||||
</LibraryContainer>
|
||||
</ListContext.Provider>
|
||||
</AnimatedPage>
|
||||
);
|
||||
};
|
||||
|
||||
const GenreDetailRouteWithBoundary = () => {
|
||||
return (
|
||||
<PageErrorBoundary>
|
||||
<GenreDetailRoute />
|
||||
</PageErrorBoundary>
|
||||
);
|
||||
};
|
||||
|
||||
export default GenreDetailRouteWithBoundary;
|
||||
Reference in New Issue
Block a user