diff --git a/assets/vue/composables/language.js b/assets/vue/composables/language.js new file mode 100644 index 0000000000..b098553de4 --- /dev/null +++ b/assets/vue/composables/language.js @@ -0,0 +1,22 @@ +export function useLanguage() { + const defaultLanguage = { originalName: "English", isocode: "en" } + + /** + * @type {{originalName: string, isocode: string}[]} + */ + const languageList = window.languages || [defaultLanguage] + + /** + * @param {string} isoCode + * @returns {{originalName: string, isocode: string}|undefined} + */ + function findByIsoCode(isoCode) { + return languageList.find((language) => isoCode === language.isocode) + } + + return { + defaultLanguage, + languageList, + findByIsoCode, + } +} diff --git a/assets/vue/views/course/CatalogueCourses.vue b/assets/vue/views/course/CatalogueCourses.vue index c46ac79a11..1d03746d6e 100644 --- a/assets/vue/views/course/CatalogueCourses.vue +++ b/assets/vue/views/course/CatalogueCourses.vue @@ -207,8 +207,10 @@ import courseService from "../../services/courseService" import * as trackCourseRanking from "../../services/trackCourseRankingService" import { useNotification } from "../../composables/notification" +import { useLanguage } from "../../composables/language" const { showErrorNotification } = useNotification() +const { findByIsoCode: findLanguageByIsoCode } = useLanguage() const securityStore = useSecurityStore() const status = ref(false) @@ -227,7 +229,7 @@ async function load() { courses.value = items.map((course) => ({ ...course, - courseLanguage: getOriginalLanguageName(course.courseLanguage), + courseLanguage: findLanguageByIsoCode(course.courseLanguage)?.originalName, })) } catch (error) { showErrorNotification(error) @@ -294,16 +296,6 @@ const initFilters = function () { } } -const getOriginalLanguageName = function (courseLanguage) { - const languages = window.languages - let language = languages.find((element) => element.isocode === courseLanguage) - if (language) { - return language.originalName - } else { - return "" - } -} - const onRatingChange = function (event, trackCourseRanking, courseId) { let { value } = event if (value > 0) {