feishin/src/renderer/features/settings/components/playback/playback-tab.tsx

29 lines
1 KiB
TypeScript
Raw Normal View History

import { lazy, Suspense, useMemo } from 'react';
2023-03-30 06:44:33 -07:00
import { Divider, Stack } from '@mantine/core';
import { AudioSettings } from '/@/renderer/features/settings/components/playback/audio-settings';
import { ScrobbleSettings } from '/@/renderer/features/settings/components/playback/scrobble-settings';
import isElectron from 'is-electron';
import { LyricSettings } from '/@/renderer/features/settings/components/playback/lyric-settings';
const MpvSettings = lazy(() =>
2023-07-01 19:10:05 -07:00
import('/@/renderer/features/settings/components/playback/mpv-settings').then((module) => {
return { default: module.MpvSettings };
}),
);
2022-12-19 15:59:14 -08:00
export const PlaybackTab = () => {
const hasFancyAudio = useMemo(() => {
return isElectron() || 'AudioContext' in window;
}, []);
2023-07-01 19:10:05 -07:00
return (
<Stack spacing="md">
<AudioSettings />
<Suspense fallback={<></>}>{hasFancyAudio && <MpvSettings />}</Suspense>
2023-07-01 19:10:05 -07:00
<Divider />
<ScrobbleSettings />
<Divider />
2023-07-01 19:10:05 -07:00
<LyricSettings />
</Stack>
);
2022-12-19 15:59:14 -08:00
};