diff --git a/src/pages/Feedback.vue b/src/pages/Feedback.vue index 2ac3c2812443cb16977424d3513f6555c42e9d20..8126f4348089ea66d8e0b7a03812c544e699afca 100644 --- a/src/pages/Feedback.vue +++ b/src/pages/Feedback.vue @@ -1,3 +1,68 @@ <template lang='pug'> -p Hello world -</template> \ No newline at end of file +.q-pa-lg(style='max-width: 1024px') + .row.justify-center.q-pb-md + q-btn.bg-grey-2.fixed-top-left.q-ma-sm(@click='$router.go(-1)', icon='arrow_back', label='Back') + q-avatar(size='9em') + img( + src='https://avataaars.io/?avatarStyle=Circle&topType=Eyepatch&facialHairType=Blank&clotheType=ShirtVNeck&clotheColor=Pink&eyeType=Squint&eyebrowType=AngryNatural&mouthType=Default&skinColor=Light' + ) + q-input.q-py-md(v-model='localDetails.name', label='Full Name', stack-label, :readonly='isEditing') + q-input.q-pb-md(v-model='localDetails.username', label='Username', stack-label, :readonly='isEditing') + q-input.q-pb-md(v-model='localDetails.email', label='Email', stack-label, :readonly='isEditing') + template(v-slot:append) + q-menu + q-input.q-pb-xl(v-model='localDetails.feedback', label='Feedback', stack-label='', autogrow='') + div + q-btn.float-right(@click='saveUserDetails()', icon='mail', color='green', label='Send Feedback') +</template> + +<script> +import { mapState, mapMutations, mapActions, mapGetters } from 'vuex' + +export default { + data() { + return { + localDetails: { + name: null, + username: null, + email: null, + feedback: null + }, + editing: false + } + }, + + methods: { + saveUserDetails() { + this.firebaseUpdateUser({ + userId: this.userDetails.userId, + updates: this.localDetails + }) + + this.localDetails['userId'] = this.userDetails.userId + this.setUserDetails(JSON.parse(JSON.stringify(this.localDetails))) + + this.editing = false + }, + ...mapMutations('firebase', ['setUserDetails']), + ...mapActions('firebase', ['firebaseUpdateUser']) + }, + + computed: { + isEditing() { + return this.editing ? false : true + }, + ...mapState('firebase', ['userDetails']), + ...mapGetters('firebase', ['userDetailsKeys']) + }, + + mounted() { + this.userDetailsKeys.forEach(key => { + this.localDetails[key] = this.userDetails[key] + }) + } +} +</script> + +<style> +</style> \ No newline at end of file