<template>\r
- <div\r
+ <LoadingIndicator\r
+ ref="loadingIndicator"\r
class="container mx-auto flex h-screen flex-col px-2 py-4 print:max-w-full"\r
>\r
<PrimeToast />\r
@toggleSearchModal="toggleSearchModal"\r
/>\r
<RouterView />\r
- </div>\r
+ </LoadingIndicator>\r
</template>\r
\r
<script setup>\r
import NavBar from "./partials/NavBar.vue";\r
import SearchModal from "./partials/SearchModal.vue";\r
import { loadStoredToken } from "./tokenStorage.js";\r
+import LoadingIndicator from "./components/LoadingIndicator.vue";\r
\r
const globalStore = useGlobalStore();\r
const isSearchModalVisible = ref(false);\r
+const loadingIndicator = ref();\r
const navBar = ref();\r
const route = useRoute();\r
const toast = useToast();\r
.then((data) => {\r
globalStore.authType = data.authType;\r
globalStore.hideRecentlyModified = data.hideRecentlyModified;\r
+ loadingIndicator.value.setLoaded();\r
})\r
.catch((error) => {\r
apiErrorHandler(error, toast);\r
+ loadingIndicator.value.setFailed();\r
});\r
\r
loadStoredToken();\r