Files
habitica/website/client/src/components/userMenu/profileModal.vue
T
2022-12-15 14:48:08 -06:00

65 lines
1.1 KiB
Vue

<template>
<b-modal
id="profile"
size="lg"
:hide-footer="true"
:hide-header="true"
@hide="beforeHide"
@shown="onShown()"
>
<profile
:user-id="userId"
:starting-page="startingPage"
style="margin-top:24px;"
/>
</b-modal>
</template>
<style lang="scss" scoped>
@import '~@/assets/scss/colors.scss';
.header {
width: 100%;
}
</style>
<script>
import profile from './profile';
export default {
components: {
profile,
},
data () {
return {
userId: undefined,
startingPage: undefined,
path: undefined,
};
},
mounted () {
this.$root.$on('habitica:show-profile', data => {
this.userId = data.userId;
this.startingPage = data.startingPage || 'profile';
this.path = data.path;
this.$root.$emit('bv::show::modal', 'profile');
});
},
beforeDestroy () {
this.$root.$off('habitica:show-profile');
},
methods: {
onShown () {
window.history.pushState('', null, this.path);
},
beforeHide () {
if (this.$route.path !== window.location.pathname) {
this.$router.back();
}
},
},
};
</script>