45 lines
1.2 KiB
Vue
45 lines
1.2 KiB
Vue
|
|
<template lang="pug">
|
||
|
|
b-modal(hide-header hide-footer @hide='$router.push("/")' :visible='true')
|
||
|
|
h4.text-center {{$t('Settings')}}
|
||
|
|
b-form
|
||
|
|
b-input-group.mt-1(prepend='Email')
|
||
|
|
b-form-input(v-model="user.email")
|
||
|
|
//- b-form-checkbox(v-model="tmpUser.user.autoboost") Autoboost
|
||
|
|
b-input-group.mt-1(prepend='Mastodon instance')
|
||
|
|
b-form-input(v-model="mastodon_instance")
|
||
|
|
b-input-group-append
|
||
|
|
b-button(@click='associate', variant='primary') Associate
|
||
|
|
|
||
|
|
</template>
|
||
|
|
<script>
|
||
|
|
import { mapState, mapActions } from 'vuex'
|
||
|
|
import api from '@/api'
|
||
|
|
export default {
|
||
|
|
props: ['code'],
|
||
|
|
data () {
|
||
|
|
return {
|
||
|
|
mastodon_instance: '',
|
||
|
|
user: {}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
computed: mapState(['oauth']),
|
||
|
|
async mounted () {
|
||
|
|
const code = this.$route.query.code
|
||
|
|
if (code) {
|
||
|
|
const res = await api.setCode({code})
|
||
|
|
}
|
||
|
|
|
||
|
|
const user = await api.getUser()
|
||
|
|
this.user = user
|
||
|
|
this.mastodon_instance = user.instance
|
||
|
|
},
|
||
|
|
methods: {
|
||
|
|
async associate () {
|
||
|
|
const url = await api.getAuthURL({instance: this.mastodon_instance})
|
||
|
|
setTimeout( () => window.location.href=url, 100);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</script>
|
||
|
|
|