From 5e7985387ef7ab4e586e553224f336f68abbe9fd Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Tue, 21 Aug 2018 18:22:57 +0200
Subject: [PATCH] Fix #490: Ensure we always have a default api url set on
 first load to avoid displaying the instance picker

---
 .gitlab-ci.yml                 |  2 +-
 changes/changelog.d/490.bugfix |  1 +
 front/src/App.vue              | 11 ++++++-----
 front/src/store/instance.js    |  2 +-
 4 files changed, 9 insertions(+), 7 deletions(-)
 create mode 100644 changes/changelog.d/490.bugfix

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4ddde5b79..57b7dfc7f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,7 +28,7 @@ review_front:
     - yarn run i18n-compile
     # this is to ensure we don't have any errors in the output,
     # cf https://code.eliotberriot.com/funkwhale/funkwhale/issues/169
-    - INSTANCE_URL=$REVIEW_INSTANCE_URL yarn run build | tee /dev/stderr | (! grep -i 'ERROR in')
+    - VUE_APP_INSTANCE_URL=$REVIEW_INSTANCE_URL yarn run build | tee /dev/stderr | (! grep -i 'ERROR in')
     - mkdir -p /static/front/$CI_PROJECT_PATH_SLUG-$CI_BUILD_REF_SLUG
     - cp -r dist/* /static/front/$CI_PROJECT_PATH_SLUG-$CI_BUILD_REF_SLUG
   cache:
diff --git a/changes/changelog.d/490.bugfix b/changes/changelog.d/490.bugfix
new file mode 100644
index 000000000..da37bdf4b
--- /dev/null
+++ b/changes/changelog.d/490.bugfix
@@ -0,0 +1 @@
+Ensure we always have a default api url set on first load to avoid displaying the instance picker (#490)
diff --git a/front/src/App.vue b/front/src/App.vue
index f80020e93..c8134a4a0 100644
--- a/front/src/App.vue
+++ b/front/src/App.vue
@@ -124,12 +124,13 @@ export default {
       // used to redraw ago dates every minute
       self.$store.commit('ui/computeLastDate')
     }, 1000 * 60)
-    if (this.$store.state.instance.instanceUrl) {
-      this.$store.commit('instance/instanceUrl', this.$store.state.instance.instanceUrl)
-      this.$store.dispatch('auth/check')
-      this.$store.dispatch('instance/fetchSettings')
-      this.fetchNodeInfo()
+    if (!this.$store.state.instance.instanceUrl) {
+      let defaultInstanceUrl = process.env.VUE_APP_INSTANCE_URL || this.$store.getters['instance/defaultUrl']()
+      this.$store.commit('instance/instanceUrl', defaultInstanceUrl)
     }
+    this.$store.dispatch('auth/check')
+    this.$store.dispatch('instance/fetchSettings')
+    this.fetchNodeInfo()
   },
   methods: {
     fetchNodeInfo () {
diff --git a/front/src/store/instance.js b/front/src/store/instance.js
index 5610b0ec7..163c595e3 100644
--- a/front/src/store/instance.js
+++ b/front/src/store/instance.js
@@ -14,7 +14,7 @@ export default {
   state: {
     maxEvents: 200,
     frontSettings: {},
-    instanceUrl: process.env.INSTANCE_URL,
+    instanceUrl: process.env.VUE_APP_INSTANCE_URL,
     events: [],
     settings: {
       instance: {
-- 
GitLab