diff --git a/.github/workflows/theseus-build.yml b/.github/workflows/theseus-build.yml
index 46bb693b8c..36547186e3 100644
--- a/.github/workflows/theseus-build.yml
+++ b/.github/workflows/theseus-build.yml
@@ -27,12 +27,15 @@ on:
options:
- prod
- staging
+ - prod-with-staging-archon
default: prod
required: false
jobs:
build:
name: Build
+ env:
+ VITE_STRIPE_PUBLISHABLE_KEY: pk_live_51JbFxJJygY5LJFfKLVVldb10HlLt24p421OWRsTOWc5sXYFOnFUXWieSc6HD3PHo25ktx8db1WcHr36XGFvZFVUz00V9ixrCs5
strategy:
fail-fast: false
matrix:
diff --git a/apps/app-frontend/src/App.vue b/apps/app-frontend/src/App.vue
index 041209b551..d37b0b8225 100644
--- a/apps/app-frontend/src/App.vue
+++ b/apps/app-frontend/src/App.vue
@@ -5,6 +5,7 @@ import {
nodeAuthState,
PanelVersionFeature,
TauriModrinthClient,
+ VerboseLoggingFeature,
} from '@modrinth/api-client'
import {
ArrowBigUpDashIcon,
@@ -25,7 +26,7 @@ import {
RefreshCwIcon,
RestoreIcon,
RightArrowIcon,
- ServerIcon,
+ ServerStackIcon,
SettingsIcon,
UserIcon,
WorldIcon,
@@ -86,6 +87,7 @@ import QuickInstanceSwitcher from '@/components/ui/QuickInstanceSwitcher.vue'
import RunningAppBar from '@/components/ui/RunningAppBar.vue'
import SplashScreen from '@/components/ui/SplashScreen.vue'
import { useCheckDisableMouseover } from '@/composables/macCssFix.js'
+import { config } from '@/config'
import { hide_ads_window, init_ads_window, show_ads_window } from '@/helpers/ads.js'
import { debugAnalytics, initAnalytics, trackEvent } from '@/helpers/analytics'
import { check_reachable } from '@/helpers/auth.js'
@@ -133,6 +135,8 @@ const { addPopupNotification } = popupNotificationManager
const tauriApiClient = new TauriModrinthClient({
userAgent: `modrinth/theseus/${getVersion()} (support@modrinth.com)`,
+ labrinthBaseUrl: config.labrinthBaseUrl,
+ archonBaseUrl: config.archonBaseUrl,
features: [
new NodeAuthFeature({
getAuth: () => nodeAuthState.getAuth?.() ?? null,
@@ -146,12 +150,14 @@ const tauriApiClient = new TauriModrinthClient({
token: async () => (await getCreds())?.session,
}),
new PanelVersionFeature(),
+ new VerboseLoggingFeature(),
],
})
provideModrinthClient(tauriApiClient)
providePageContext({
hierarchicalSidebarAvailable: ref(true),
showAds: ref(false),
+ openExternalUrl: (url) => openUrl(url),
})
provideModalBehavior({
noblur: computed(() => !themeStore.advancedRendering),
@@ -409,17 +415,30 @@ const handleClose = async () => {
}
const router = useRouter()
+const route = useRoute()
+
+const loading = useLoading()
+loading.setEnabled(false)
+loading.startLoading()
+
+let suspensePending = false
+
+router.beforeEach(() => {
+ suspensePending = false
+ loading.startLoading()
+})
router.afterEach((to, from, failure) => {
trackEvent('PageView', {
path: to.path,
fromPath: from.path,
failed: failure,
})
+ setTimeout(() => {
+ if (!suspensePending) {
+ loading.stopLoading()
+ }
+ }, 100)
})
-const route = useRoute()
-
-const loading = useLoading()
-loading.setEnabled(false)
const error = useError()
const errorModal = ref()
@@ -1010,6 +1029,7 @@ provideAppUpdateDownloadProgress(appUpdateDownload)