mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-08 13:00:13 +02:00
add loading overlay to playqueue on fetching
This commit is contained in:
@@ -5,8 +5,10 @@ import { forwardRef, useEffect, useMemo, useRef } from 'react';
|
||||
|
||||
import { ItemTableList } from '/@/renderer/components/item-list/item-table-list/item-table-list';
|
||||
import { ItemTableListColumn } from '/@/renderer/components/item-list/item-table-list/item-table-list-column';
|
||||
import { useIsPlayerFetching } from '/@/renderer/features/player/context/player-context';
|
||||
import { useListSettings, usePlayerQueue } from '/@/renderer/store';
|
||||
import { searchSongs } from '/@/renderer/utils/search-songs';
|
||||
import { LoadingOverlay } from '/@/shared/components/loading-overlay/loading-overlay';
|
||||
import { LibraryItem, QueueSong } from '/@/shared/types/domain-types';
|
||||
import { ItemListKey } from '/@/shared/types/types';
|
||||
|
||||
@@ -19,6 +21,7 @@ export const PlayQueue = forwardRef(({ listKey, searchTerm }: QueueProps, ref: R
|
||||
const { table } = useListSettings(listKey);
|
||||
|
||||
const queue = usePlayerQueue();
|
||||
const isFetching = useIsPlayerFetching();
|
||||
|
||||
const data: QueueSong[] = useMemo(() => {
|
||||
if (searchTerm) {
|
||||
@@ -58,26 +61,29 @@ export const PlayQueue = forwardRef(({ listKey, searchTerm }: QueueProps, ref: R
|
||||
}, [data.length, playQueueKeyRef]);
|
||||
|
||||
return (
|
||||
<ItemTableList
|
||||
CellComponent={ItemTableListColumn}
|
||||
columns={table.columns}
|
||||
data={data || []}
|
||||
enableAlternateRowColors={table.enableAlternateRowColors}
|
||||
enableDrag={true}
|
||||
enableExpansion={false}
|
||||
enableHeader={true}
|
||||
enableHorizontalBorders={table.enableHorizontalBorders}
|
||||
enableRowHoverHighlight={table.enableRowHoverHighlight}
|
||||
enableSelection={true}
|
||||
enableVerticalBorders={table.enableVerticalBorders}
|
||||
initialTop={{
|
||||
to: 0,
|
||||
type: 'offset',
|
||||
}}
|
||||
itemType={LibraryItem.QUEUE_SONG}
|
||||
key={playQueueKeyRef.current.key}
|
||||
ref={ref}
|
||||
size={table.size}
|
||||
/>
|
||||
<>
|
||||
<LoadingOverlay visible={isFetching} />
|
||||
<ItemTableList
|
||||
CellComponent={ItemTableListColumn}
|
||||
columns={table.columns}
|
||||
data={data || []}
|
||||
enableAlternateRowColors={table.enableAlternateRowColors}
|
||||
enableDrag={true}
|
||||
enableExpansion={false}
|
||||
enableHeader={true}
|
||||
enableHorizontalBorders={table.enableHorizontalBorders}
|
||||
enableRowHoverHighlight={table.enableRowHoverHighlight}
|
||||
enableSelection={true}
|
||||
enableVerticalBorders={table.enableVerticalBorders}
|
||||
initialTop={{
|
||||
to: 0,
|
||||
type: 'offset',
|
||||
}}
|
||||
itemType={LibraryItem.QUEUE_SONG}
|
||||
key={playQueueKeyRef.current.key}
|
||||
ref={ref}
|
||||
size={table.size}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -7,11 +7,10 @@ import { ItemListKey } from '/@/shared/types/types';
|
||||
|
||||
export const SidebarPlayQueue = () => {
|
||||
const tableRef = useRef<null>(null);
|
||||
// const queueRef = useRef<null | { grid: AgGridReactType<Song> }>(null);
|
||||
const [search, setSearch] = useState<string | undefined>(undefined);
|
||||
|
||||
return (
|
||||
<Flex direction="column" h="100%">
|
||||
<Flex direction="column" h="100%" w="100%">
|
||||
<PlayQueueListControls
|
||||
handleSearch={setSearch}
|
||||
searchTerm={search}
|
||||
|
||||
Reference in New Issue
Block a user