mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-06-20 04:40:27 +01:00
Added fix that fully stops the UseEffect hook from been calling indefinetly
This commit is contained in:
@@ -37,7 +37,6 @@ export const MediaProvider = ({ children }: { children: ReactNode }) => {
|
|||||||
const [settings, updateSettings] = useSettings();
|
const [settings, updateSettings] = useSettings();
|
||||||
const api = useAtomValue(apiAtom);
|
const api = useAtomValue(apiAtom);
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
const [pulledPreferences, setPulledPreferences] = useState(false);
|
|
||||||
|
|
||||||
const updateSetingsWrapper = (update: Partial<Settings>) => {
|
const updateSetingsWrapper = (update: Partial<Settings>) => {
|
||||||
const updateUserConfiguration = async (
|
const updateUserConfiguration = async (
|
||||||
@@ -94,16 +93,14 @@ export const MediaProvider = ({ children }: { children: ReactNode }) => {
|
|||||||
queryKey: ["authUser"],
|
queryKey: ["authUser"],
|
||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
if (!api) return;
|
if (!api) return;
|
||||||
|
|
||||||
const userApi = await getUserApi(api).getCurrentUser();
|
const userApi = await getUserApi(api).getCurrentUser();
|
||||||
return userApi.data;
|
return userApi.data;
|
||||||
},
|
},
|
||||||
enabled: !!api,
|
enabled: !!api,
|
||||||
staleTime: 0,
|
staleTime: 0,
|
||||||
refetchOnMount: true,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const { data: cultures = [] } = useQuery({
|
const { data: cultures = [], isFetched: isCulturesFetched } = useQuery({
|
||||||
queryKey: ["cultures"],
|
queryKey: ["cultures"],
|
||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
if (!api) return [];
|
if (!api) return [];
|
||||||
@@ -112,36 +109,33 @@ export const MediaProvider = ({ children }: { children: ReactNode }) => {
|
|||||||
return cultures;
|
return cultures;
|
||||||
},
|
},
|
||||||
enabled: !!api,
|
enabled: !!api,
|
||||||
staleTime: 0,
|
staleTime: 43200000, // 12 hours
|
||||||
refetchOnMount: true,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set default settings from user configuration.s
|
// Set default settings from user configuration.s
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (user && cultures.length != 0 && !pulledPreferences) {
|
if (!user || cultures.length === 0) return;
|
||||||
const userSubtitlePreference =
|
const userSubtitlePreference =
|
||||||
user?.Configuration?.SubtitleLanguagePreference;
|
user?.Configuration?.SubtitleLanguagePreference;
|
||||||
const userAudioPreference = user?.Configuration?.AudioLanguagePreference;
|
const userAudioPreference = user?.Configuration?.AudioLanguagePreference;
|
||||||
|
|
||||||
const subtitlePreference = cultures.find(
|
const subtitlePreference = cultures.find(
|
||||||
(x) => x.ThreeLetterISOLanguageName === userSubtitlePreference
|
(x) => x.ThreeLetterISOLanguageName === userSubtitlePreference
|
||||||
);
|
);
|
||||||
const audioPreference = cultures.find(
|
const audioPreference = cultures.find(
|
||||||
(x) => x.ThreeLetterISOLanguageName === userAudioPreference
|
(x) => x.ThreeLetterISOLanguageName === userAudioPreference
|
||||||
);
|
);
|
||||||
|
|
||||||
updateSettings({
|
updateSettings({
|
||||||
defaultSubtitleLanguage: subtitlePreference,
|
defaultSubtitleLanguage: subtitlePreference,
|
||||||
defaultAudioLanguage: audioPreference,
|
defaultAudioLanguage: audioPreference,
|
||||||
subtitleMode: user?.Configuration?.SubtitleMode,
|
subtitleMode: user?.Configuration?.SubtitleMode,
|
||||||
playDefaultAudioTrack: user?.Configuration?.PlayDefaultAudioTrack,
|
playDefaultAudioTrack: user?.Configuration?.PlayDefaultAudioTrack,
|
||||||
rememberAudioSelections: user?.Configuration?.RememberAudioSelections,
|
rememberAudioSelections: user?.Configuration?.RememberAudioSelections,
|
||||||
rememberSubtitleSelections:
|
rememberSubtitleSelections:
|
||||||
user?.Configuration?.RememberSubtitleSelections,
|
user?.Configuration?.RememberSubtitleSelections,
|
||||||
});
|
});
|
||||||
setPulledPreferences(true);
|
}, [user, isCulturesFetched]);
|
||||||
}
|
|
||||||
}, [user, cultures, pulledPreferences]);
|
|
||||||
|
|
||||||
if (!api) return null;
|
if (!api) return null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user