diff options
Diffstat (limited to 'src/client/components')
| -rw-r--r-- | src/client/components/signup-dialog.vue | 19 | ||||
| -rw-r--r-- | src/client/components/signup.vue | 20 |
2 files changed, 35 insertions, 4 deletions
diff --git a/src/client/components/signup-dialog.vue b/src/client/components/signup-dialog.vue index 76421d44ec..10cdf3a567 100644 --- a/src/client/components/signup-dialog.vue +++ b/src/client/components/signup-dialog.vue @@ -1,7 +1,7 @@ <template> -<x-window @closed="() => { $emit('closed'); destroyDom(); }"> +<x-window ref="window" @closed="() => { $emit('closed'); destroyDom(); }"> <template #header>{{ $t('signup') }}</template> - <x-signup/> + <x-signup :auto-set="autoSet" @signup="onSignup"/> </x-window> </template> @@ -18,5 +18,20 @@ export default Vue.extend({ XSignup, XWindow, }, + + props: { + autoSet: { + type: Boolean, + required: false, + default: false, + } + }, + + methods: { + onSignup(res) { + this.$emit('signup', res); + this.$refs.window.close(); + } + } }); </script> diff --git a/src/client/components/signup.vue b/src/client/components/signup.vue index b821af396c..34765a7a26 100644 --- a/src/client/components/signup.vue +++ b/src/client/components/signup.vue @@ -84,6 +84,14 @@ export default Vue.extend({ } }, + props: { + autoSet: { + type: Boolean, + required: false, + default: false, + } + }, + computed: { meta() { return this.$store.state.instance.meta; @@ -97,6 +105,15 @@ export default Vue.extend({ } }, + created() { + if (this.autoSet) { + this.$once('signup', res => { + localStorage.setItem('i', res.i); + location.reload(); + }); + } + }, + mounted() { const head = document.getElementsByTagName('head')[0]; const script = document.createElement('script'); @@ -166,8 +183,7 @@ export default Vue.extend({ username: this.username, password: this.password }).then(res => { - localStorage.setItem('i', res.i); - location.href = '/'; + this.$emit('signup', res); }); }).catch(() => { this.submitting = false; |