@@ -28,7 +28,7 @@ app.component('SyncTab', {
2828 </div>
2929 <span class="sync-card-description">{{ $i18n.preferences.sync.githubGistDesc }}</span>
3030 </div>
31- <div class="sync-card-body">
31+ <div class="sync-card-body" v-if="settingsLoaded" >
3232 <div class="sync-field">
3333 <label>{{ $i18n.preferences.sync.personalAccessToken }}</label>
3434 <div class="input-group input-group-sm">
@@ -45,11 +45,15 @@ app.component('SyncTab', {
4545 </div>
4646 </div>
4747 <div class="sync-card-actions">
48- <button class="btn btn-sm btn-secondary" :disabled="!gist.token || loading" @click="gistPull">
48+ <button v-if="!settingsLoaded" class="btn btn-sm btn-secondary" :disabled="loading" @click="loadSettings">
49+ <span v-if="loading === 'load-settings'" class="spinner-border spinner-border-sm me-1"></span>
50+ {{ $i18n.preferences.sync.loadSettings }}
51+ </button>
52+ <button v-if="settingsLoaded" class="btn btn-sm btn-secondary" :disabled="!gist.token || loading" @click="gistPull">
4953 <span v-if="loading === 'gist-pull'" class="spinner-border spinner-border-sm me-1"></span>
5054 {{ $i18n.preferences.sync.import }}
5155 </button>
52- <button class="btn btn-sm btn-secondary" :disabled="!gist.token || loading" @click="gistPush">
56+ <button v-if="settingsLoaded" class="btn btn-sm btn-secondary" :disabled="!gist.token || loading" @click="gistPush">
5357 <span v-if="loading === 'gist-push'" class="spinner-border spinner-border-sm me-1"></span>
5458 {{ $i18n.preferences.sync.export }}
5559 </button>
@@ -65,19 +69,22 @@ app.component('SyncTab', {
6569 return {
6670 showToken : false ,
6771 loading : null ,
72+ settingsLoaded : false ,
6873 gist : { token : '' , id : '' }
6974 }
7075 } ,
7176
72- async created ( ) {
73- await this . loadSettings ( )
74- } ,
75-
7677 methods : {
7778 async loadSettings ( ) {
78- const settings = await this . $remote . sync . getSettings ( )
79- this . gist . token = settings . gistToken || ''
80- this . gist . id = settings . gistId || ''
79+ this . loading = 'load-settings'
80+ try {
81+ const settings = await this . $remote . sync . getSettings ( )
82+ this . gist . token = settings . gistToken || ''
83+ this . gist . id = settings . gistId || ''
84+ this . settingsLoaded = true
85+ } finally {
86+ this . loading = null
87+ }
8188 } ,
8289
8390 saveGistSettings ( ) {
0 commit comments