1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-26 22:56:23 -04:00

Convert getLanguageName to hook

This commit is contained in:
Mark McDowall
2026-02-07 19:20:30 -08:00
parent 06aba5fe18
commit 944e33f24b
5 changed files with 72 additions and 46 deletions
+53
View File
@@ -0,0 +1,53 @@
import { useCallback } from 'react';
import useApiQuery from 'Helpers/Hooks/useApiQuery';
interface LanguageResponse {
identifier: string;
}
function getDisplayName(code: string) {
return Intl.DisplayNames
? new Intl.DisplayNames([code], { type: 'language' })
: null;
}
const useLanguage = () => {
return useApiQuery<LanguageResponse>({
path: '/localization/language',
queryOptions: {
staleTime: Infinity,
gcTime: Infinity,
},
});
};
export const useInitializeLanguage = () => {
useLanguage();
};
const useLanguageName = () => {
const { data } = useLanguage();
const getLanguageName = useCallback(
(code: string): string => {
const languageNames = data?.identifier
? getDisplayName(data.identifier)
: getDisplayName('en');
if (!languageNames) {
return code;
}
try {
return languageNames.of(code) ?? code;
} catch {
return code;
}
},
[data]
);
return getLanguageName;
};
export default useLanguageName;