mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-29 06:28:24 +00:00
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { type BaseItemDto } from "@jellyfin/sdk/lib/generated-client";
|
|
import { useMemo } from "react";
|
|
import type { Settings } from "@/utils/atoms/settings";
|
|
import {
|
|
getDefaultPlaySettings,
|
|
type PlaySettingsOptions,
|
|
} from "@/utils/jellyfin/getDefaultPlaySettings";
|
|
|
|
/**
|
|
* React hook wrapper for getDefaultPlaySettings.
|
|
* Used in UI components for initial playback (no previous track state).
|
|
*
|
|
* @param item - The media item to play
|
|
* @param settings - User settings (language preferences, bitrate, etc.)
|
|
* @param options - Optional flags to control behavior (e.g., applyLanguagePreferences for TV)
|
|
*/
|
|
const useDefaultPlaySettings = (
|
|
item: BaseItemDto | null | undefined,
|
|
settings: Settings | null,
|
|
options?: PlaySettingsOptions,
|
|
) =>
|
|
useMemo(() => {
|
|
const { mediaSource, audioIndex, subtitleIndex, bitrate } =
|
|
getDefaultPlaySettings(item, settings, undefined, options);
|
|
|
|
return {
|
|
defaultMediaSource: mediaSource,
|
|
defaultAudioIndex: audioIndex,
|
|
defaultSubtitleIndex: subtitleIndex,
|
|
defaultBitrate: bitrate,
|
|
};
|
|
}, [item, settings, options]);
|
|
|
|
export default useDefaultPlaySettings;
|