mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
fix loading state on queue restoration button
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
|
import { useIsFetching } from '@tanstack/react-query';
|
||||||
import { t } from 'i18next';
|
import { t } from 'i18next';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
|
import { queryKeys } from '/@/renderer/api/query-keys';
|
||||||
import { SONG_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
|
import { SONG_TABLE_COLUMNS } from '/@/renderer/components/item-list/item-table-list/default-columns';
|
||||||
import { useIsPlayerFetching, usePlayer } from '/@/renderer/features/player/context/player-context';
|
import { usePlayer } from '/@/renderer/features/player/context/player-context';
|
||||||
import { useRestoreQueue, useSaveQueue } from '/@/renderer/features/player/hooks/use-queue-restore';
|
import { useRestoreQueue, useSaveQueue } from '/@/renderer/features/player/hooks/use-queue-restore';
|
||||||
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';
|
||||||
@@ -85,7 +87,7 @@ const QueueRestoreActions = () => {
|
|||||||
const server = useCurrentServer();
|
const server = useCurrentServer();
|
||||||
const supportsQueue = hasFeature(server, ServerFeature.SERVER_PLAY_QUEUE);
|
const supportsQueue = hasFeature(server, ServerFeature.SERVER_PLAY_QUEUE);
|
||||||
|
|
||||||
const isFetching = useIsPlayerFetching();
|
const isFetching = useIsFetching({ queryKey: queryKeys.player.fetch({ type: 'queue' }) });
|
||||||
|
|
||||||
const { isPending: isSavingQueue, mutate: handleSaveQueue } = useSaveQueue();
|
const { isPending: isSavingQueue, mutate: handleSaveQueue } = useSaveQueue();
|
||||||
|
|
||||||
@@ -98,7 +100,7 @@ const QueueRestoreActions = () => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<ActionIcon
|
<ActionIcon
|
||||||
disabled={isFetching}
|
disabled={Boolean(isFetching)}
|
||||||
icon="upload"
|
icon="upload"
|
||||||
iconProps={{ size: 'lg' }}
|
iconProps={{ size: 'lg' }}
|
||||||
loading={isSavingQueue}
|
loading={isSavingQueue}
|
||||||
@@ -111,10 +113,10 @@ const QueueRestoreActions = () => {
|
|||||||
variant="subtle"
|
variant="subtle"
|
||||||
/>
|
/>
|
||||||
<ActionIcon
|
<ActionIcon
|
||||||
disabled={isSavingQueue}
|
disabled={isSavingQueue || Boolean(isFetching)}
|
||||||
icon="download"
|
icon="download"
|
||||||
iconProps={{ size: 'lg' }}
|
iconProps={{ size: 'lg' }}
|
||||||
loading={isFetching}
|
loading={Boolean(isFetching)}
|
||||||
onClick={handleRestoreQueue}
|
onClick={handleRestoreQueue}
|
||||||
tooltip={{
|
tooltip={{
|
||||||
label: t('player.restoreQueueFromServer', {
|
label: t('player.restoreQueueFromServer', {
|
||||||
|
|||||||
Reference in New Issue
Block a user