mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
remove max width from list pages
This commit is contained in:
@@ -27,7 +27,7 @@ export const AlbumListHeader = ({ title }: AlbumListHeaderProps) => {
|
|||||||
return (
|
return (
|
||||||
<Stack gap={0}>
|
<Stack gap={0}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<PlayButton />
|
<PlayButton />
|
||||||
<PageTitle title={title} />
|
<PageTitle title={title} />
|
||||||
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { ListContext } from '/@/renderer/context/list-context';
|
|||||||
import { AlbumListContent } from '/@/renderer/features/albums/components/album-list-content';
|
import { AlbumListContent } from '/@/renderer/features/albums/components/album-list-content';
|
||||||
import { AlbumListHeader } from '/@/renderer/features/albums/components/album-list-header';
|
import { AlbumListHeader } from '/@/renderer/features/albums/components/album-list-header';
|
||||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
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';
|
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||||
import { AlbumListQuery } from '/@/shared/types/domain-types';
|
import { AlbumListQuery } from '/@/shared/types/domain-types';
|
||||||
import { ItemListKey } from '/@/shared/types/types';
|
import { ItemListKey } from '/@/shared/types/types';
|
||||||
@@ -48,10 +47,8 @@ const AlbumListRoute = () => {
|
|||||||
return (
|
return (
|
||||||
<AnimatedPage>
|
<AnimatedPage>
|
||||||
<ListContext.Provider value={providerValue}>
|
<ListContext.Provider value={providerValue}>
|
||||||
<LibraryContainer>
|
|
||||||
<AlbumListHeader />
|
<AlbumListHeader />
|
||||||
<AlbumListContent />
|
<AlbumListContent />
|
||||||
</LibraryContainer>
|
|
||||||
</ListContext.Provider>
|
</ListContext.Provider>
|
||||||
</AnimatedPage>
|
</AnimatedPage>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export const AlbumArtistListHeader = ({ title }: AlbumArtistListHeaderProps) =>
|
|||||||
return (
|
return (
|
||||||
<Stack gap={0}>
|
<Stack gap={0}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<PlayButton />
|
<PlayButton />
|
||||||
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
||||||
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export const ArtistListHeader = ({ title }: ArtistListHeaderProps) => {
|
|||||||
return (
|
return (
|
||||||
<Stack gap={0}>
|
<Stack gap={0}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<PlayButton />
|
<PlayButton />
|
||||||
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
||||||
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ListContext } from '/@/renderer/context/list-context';
|
|||||||
import { AlbumArtistListContent } from '/@/renderer/features/artists/components/album-artist-list-content';
|
import { AlbumArtistListContent } from '/@/renderer/features/artists/components/album-artist-list-content';
|
||||||
import { AlbumArtistListHeader } from '/@/renderer/features/artists/components/album-artist-list-header';
|
import { AlbumArtistListHeader } from '/@/renderer/features/artists/components/album-artist-list-header';
|
||||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
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';
|
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||||
import { ItemListKey } from '/@/shared/types/types';
|
import { ItemListKey } from '/@/shared/types/types';
|
||||||
|
|
||||||
@@ -25,10 +24,8 @@ const AlbumArtistListRoute = () => {
|
|||||||
return (
|
return (
|
||||||
<AnimatedPage>
|
<AnimatedPage>
|
||||||
<ListContext.Provider value={providerValue}>
|
<ListContext.Provider value={providerValue}>
|
||||||
<LibraryContainer>
|
|
||||||
<AlbumArtistListHeader />
|
<AlbumArtistListHeader />
|
||||||
<AlbumArtistListContent />
|
<AlbumArtistListContent />
|
||||||
</LibraryContainer>
|
|
||||||
</ListContext.Provider>
|
</ListContext.Provider>
|
||||||
</AnimatedPage>
|
</AnimatedPage>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ListContext } from '/@/renderer/context/list-context';
|
|||||||
import { ArtistListContent } from '/@/renderer/features/artists/components/artist-list-content';
|
import { ArtistListContent } from '/@/renderer/features/artists/components/artist-list-content';
|
||||||
import { ArtistListHeader } from '/@/renderer/features/artists/components/artist-list-header';
|
import { ArtistListHeader } from '/@/renderer/features/artists/components/artist-list-header';
|
||||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
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';
|
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||||
import { ItemListKey } from '/@/shared/types/types';
|
import { ItemListKey } from '/@/shared/types/types';
|
||||||
|
|
||||||
@@ -25,10 +24,8 @@ const ArtistListRoute = () => {
|
|||||||
return (
|
return (
|
||||||
<AnimatedPage>
|
<AnimatedPage>
|
||||||
<ListContext.Provider value={providerValue}>
|
<ListContext.Provider value={providerValue}>
|
||||||
<LibraryContainer>
|
|
||||||
<ArtistListHeader />
|
<ArtistListHeader />
|
||||||
<ArtistListContent />
|
<ArtistListContent />
|
||||||
</LibraryContainer>
|
|
||||||
</ListContext.Provider>
|
</ListContext.Provider>
|
||||||
</AnimatedPage>
|
</AnimatedPage>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export const GenreListHeader = ({ title }: GenreListHeaderProps) => {
|
|||||||
return (
|
return (
|
||||||
<Stack gap={0}>
|
<Stack gap={0}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<PlayButton />
|
<PlayButton />
|
||||||
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
||||||
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ListContext } from '/@/renderer/context/list-context';
|
|||||||
import { GenreListContent } from '/@/renderer/features/genres/components/genre-list-content';
|
import { GenreListContent } from '/@/renderer/features/genres/components/genre-list-content';
|
||||||
import { GenreListHeader } from '/@/renderer/features/genres/components/genre-list-header';
|
import { GenreListHeader } from '/@/renderer/features/genres/components/genre-list-header';
|
||||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
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';
|
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||||
import { ItemListKey } from '/@/shared/types/types';
|
import { ItemListKey } from '/@/shared/types/types';
|
||||||
|
|
||||||
@@ -25,10 +24,8 @@ const GenreListRoute = () => {
|
|||||||
return (
|
return (
|
||||||
<AnimatedPage>
|
<AnimatedPage>
|
||||||
<ListContext.Provider value={providerValue}>
|
<ListContext.Provider value={providerValue}>
|
||||||
<LibraryContainer>
|
|
||||||
<GenreListHeader />
|
<GenreListHeader />
|
||||||
<GenreListContent />
|
<GenreListContent />
|
||||||
</LibraryContainer>
|
|
||||||
</ListContext.Provider>
|
</ListContext.Provider>
|
||||||
</AnimatedPage>
|
</AnimatedPage>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export const PlaylistListHeader = ({ title }: PlaylistListHeaderProps) => {
|
|||||||
return (
|
return (
|
||||||
<Stack gap={0}>
|
<Stack gap={0}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<PlayButton />
|
<PlayButton />
|
||||||
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
<LibraryHeaderBar.Title>{pageTitle}</LibraryHeaderBar.Title>
|
||||||
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
<LibraryHeaderBar.Badge isLoading={!itemCount}>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { ListContext } from '/@/renderer/context/list-context';
|
|||||||
import { PlaylistListContent } from '/@/renderer/features/playlists/components/playlist-list-content';
|
import { PlaylistListContent } from '/@/renderer/features/playlists/components/playlist-list-content';
|
||||||
import { PlaylistListHeader } from '/@/renderer/features/playlists/components/playlist-list-header';
|
import { PlaylistListHeader } from '/@/renderer/features/playlists/components/playlist-list-header';
|
||||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
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';
|
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||||
import { ItemListKey } from '/@/shared/types/types';
|
import { ItemListKey } from '/@/shared/types/types';
|
||||||
|
|
||||||
@@ -27,10 +26,8 @@ const PlaylistListRoute = () => {
|
|||||||
return (
|
return (
|
||||||
<AnimatedPage>
|
<AnimatedPage>
|
||||||
<ListContext.Provider value={providerValue}>
|
<ListContext.Provider value={providerValue}>
|
||||||
<LibraryContainer>
|
|
||||||
<PlaylistListHeader />
|
<PlaylistListHeader />
|
||||||
<PlaylistListContent />
|
<PlaylistListContent />
|
||||||
</LibraryContainer>
|
|
||||||
</ListContext.Provider>
|
</ListContext.Provider>
|
||||||
</AnimatedPage>
|
</AnimatedPage>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import { FilterBar } from '/@/renderer/features/shared/components/filter-bar';
|
|||||||
import { LibraryHeaderBar } from '/@/renderer/features/shared/components/library-header-bar';
|
import { LibraryHeaderBar } from '/@/renderer/features/shared/components/library-header-bar';
|
||||||
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
|
import { ListConfigMenu } from '/@/renderer/features/shared/components/list-config-menu';
|
||||||
import { SearchInput } from '/@/renderer/features/shared/components/search-input';
|
import { SearchInput } from '/@/renderer/features/shared/components/search-input';
|
||||||
import { useContainerQuery } from '/@/renderer/hooks';
|
|
||||||
import { AppRoute } from '/@/renderer/router/routes';
|
import { AppRoute } from '/@/renderer/router/routes';
|
||||||
import { Button, ButtonGroup } from '/@/shared/components/button/button';
|
import { Button, ButtonGroup } from '/@/shared/components/button/button';
|
||||||
import { Flex } from '/@/shared/components/flex/flex';
|
import { Flex } from '/@/shared/components/flex/flex';
|
||||||
@@ -30,7 +29,6 @@ export const SearchHeader = ({ navigationId }: SearchHeaderProps) => {
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { itemType } = useParams() as { itemType: LibraryItem };
|
const { itemType } = useParams() as { itemType: LibraryItem };
|
||||||
const [searchParams, setSearchParams] = useSearchParams();
|
const [searchParams, setSearchParams] = useSearchParams();
|
||||||
const { ref, ...cq } = useContainerQuery();
|
|
||||||
|
|
||||||
const handleSearch = debounce((e: ChangeEvent<HTMLInputElement>) => {
|
const handleSearch = debounce((e: ChangeEvent<HTMLInputElement>) => {
|
||||||
setSearchParams({ query: e.target.value }, { replace: true, state: { navigationId } });
|
setSearchParams({ query: e.target.value }, { replace: true, state: { navigationId } });
|
||||||
@@ -52,10 +50,10 @@ export const SearchHeader = ({ navigationId }: SearchHeaderProps) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack gap={0} ref={ref}>
|
<Stack gap={0}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<Flex justify="space-between" w="100%">
|
<Flex justify="space-between" w="100%">
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<LibraryHeaderBar.Title>Search</LibraryHeaderBar.Title>
|
<LibraryHeaderBar.Title>Search</LibraryHeaderBar.Title>
|
||||||
</LibraryHeaderBar>
|
</LibraryHeaderBar>
|
||||||
<Group>
|
<Group>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { useLocation, useParams } from 'react-router';
|
|||||||
import { SearchContent } from '/@/renderer/features/search/components/search-content';
|
import { SearchContent } from '/@/renderer/features/search/components/search-content';
|
||||||
import { SearchHeader } from '/@/renderer/features/search/components/search-header';
|
import { SearchHeader } from '/@/renderer/features/search/components/search-header';
|
||||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
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';
|
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||||
|
|
||||||
const SearchRoute = () => {
|
const SearchRoute = () => {
|
||||||
@@ -15,10 +14,8 @@ const SearchRoute = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<AnimatedPage key={`search-${navigationId}`}>
|
<AnimatedPage key={`search-${navigationId}`}>
|
||||||
<LibraryContainer>
|
|
||||||
<SearchHeader navigationId={navigationId} />
|
<SearchHeader navigationId={navigationId} />
|
||||||
<SearchContent key={`page-${itemType}`} />
|
<SearchContent key={`page-${itemType}`} />
|
||||||
</LibraryContainer>
|
|
||||||
</AnimatedPage>
|
</AnimatedPage>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export const SettingsHeader = ({ setSearch }: SettingsHeaderProps) => {
|
|||||||
return (
|
return (
|
||||||
<Flex ref={ref}>
|
<Flex ref={ref}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<Flex align="center" justify="space-between" w="100%">
|
<Flex align="center" justify="space-between" w="100%">
|
||||||
<Group wrap="nowrap">
|
<Group wrap="nowrap">
|
||||||
<Icon icon="settings" size="5xl" />
|
<Icon icon="settings" size="5xl" />
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { closeAllModals, openModal } from '@mantine/modals';
|
import { closeAllModals, openModal } from '@mantine/modals';
|
||||||
import { memo, ReactNode, useCallback } from 'react';
|
import { CSSProperties, memo, ReactNode, useCallback } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
import styles from './library-header-bar.module.css';
|
import styles from './library-header-bar.module.css';
|
||||||
@@ -16,10 +16,18 @@ import { Play } from '/@/shared/types/types';
|
|||||||
|
|
||||||
interface LibraryHeaderBarProps {
|
interface LibraryHeaderBarProps {
|
||||||
children: ReactNode;
|
children: ReactNode;
|
||||||
|
ignoreMaxWidth?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const LibraryHeaderBarComponent = ({ children }: LibraryHeaderBarProps) => {
|
const LibraryHeaderBarComponent = ({ children, ignoreMaxWidth }: LibraryHeaderBarProps) => {
|
||||||
return <div className={styles.headerContainer}>{children}</div>;
|
return (
|
||||||
|
<div
|
||||||
|
className={styles.headerContainer}
|
||||||
|
style={ignoreMaxWidth ? ({ maxWidth: 'none' } as CSSProperties) : undefined}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
interface HeaderPlayButtonProps {
|
interface HeaderPlayButtonProps {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ export const SongListHeader = ({ title }: SongListHeaderProps) => {
|
|||||||
<Stack gap={0}>
|
<Stack gap={0}>
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<Flex justify="space-between" w="100%">
|
<Flex justify="space-between" w="100%">
|
||||||
<LibraryHeaderBar>
|
<LibraryHeaderBar ignoreMaxWidth>
|
||||||
<PlayButton />
|
<PlayButton />
|
||||||
<PageTitle title={title} />
|
<PageTitle title={title} />
|
||||||
<LibraryHeaderBar.Badge
|
<LibraryHeaderBar.Badge
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { useParams } from 'react-router';
|
|||||||
|
|
||||||
import { ListContext } from '/@/renderer/context/list-context';
|
import { ListContext } from '/@/renderer/context/list-context';
|
||||||
import { AnimatedPage } from '/@/renderer/features/shared/components/animated-page';
|
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';
|
import { PageErrorBoundary } from '/@/renderer/features/shared/components/page-error-boundary';
|
||||||
import { SongListContent } from '/@/renderer/features/songs/components/song-list-content';
|
import { SongListContent } from '/@/renderer/features/songs/components/song-list-content';
|
||||||
import { SongListHeader } from '/@/renderer/features/songs/components/song-list-header';
|
import { SongListHeader } from '/@/renderer/features/songs/components/song-list-header';
|
||||||
@@ -48,10 +47,8 @@ const SongListRoute = () => {
|
|||||||
return (
|
return (
|
||||||
<AnimatedPage>
|
<AnimatedPage>
|
||||||
<ListContext.Provider value={providerValue}>
|
<ListContext.Provider value={providerValue}>
|
||||||
<LibraryContainer>
|
|
||||||
<SongListHeader />
|
<SongListHeader />
|
||||||
<SongListContent />
|
<SongListContent />
|
||||||
</LibraryContainer>
|
|
||||||
</ListContext.Provider>
|
</ListContext.Provider>
|
||||||
</AnimatedPage>
|
</AnimatedPage>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user