diff --git a/frontend/src/components/Controls/Code.vue b/frontend/src/components/Controls/Code.vue index 3440f90e..175bd937 100644 --- a/frontend/src/components/Controls/Code.vue +++ b/frontend/src/components/Controls/Code.vue @@ -107,7 +107,7 @@ async function setLanguageExtension() { if (!languageImport) return const module = await languageImport() - languageExtension.value = (module as any)[props.language]() + languageExtension.value = (module as any)[props.language]?.() if (props.completions) { const languageData = (module as any)[`${props.language}Language`] diff --git a/frontend/src/components/InstallPrompt.vue b/frontend/src/components/InstallPrompt.vue index eea93d0c..ab913feb 100644 --- a/frontend/src/components/InstallPrompt.vue +++ b/frontend/src/components/InstallPrompt.vue @@ -76,7 +76,14 @@ const isIos = () => { const isInStandaloneMode = () => 'standalone' in window.navigator && window.navigator.standalone -if (isIos() && !isInStandaloneMode()) iosInstallMessage.value = true +if ( + isIos() && + !isInStandaloneMode() && + localStorage.getItem('learningIosInstallPromptShown') !== 'true' +) { + iosInstallMessage.value = true + localStorage.setItem('learningIosInstallPromptShown', 'true') +} window.addEventListener('beforeinstallprompt', (e) => { e.preventDefault() diff --git a/frontend/src/components/UpcomingEvaluations.vue b/frontend/src/components/UpcomingEvaluations.vue index 8a64bfc6..edc5551c 100644 --- a/frontend/src/components/UpcomingEvaluations.vue +++ b/frontend/src/components/UpcomingEvaluations.vue @@ -14,7 +14,10 @@