diff --git a/frontend/components/standard/Avatar.vue b/frontend/components/standard/Avatar.vue new file mode 100644 index 0000000..b5f8623 --- /dev/null +++ b/frontend/components/standard/Avatar.vue @@ -0,0 +1,20 @@ + + + + + + {{ singleCharacter }} + + + diff --git a/frontend/components/standard/Nav.vue b/frontend/components/standard/Nav.vue index cb2d0e8..7ac8b7c 100644 --- a/frontend/components/standard/Nav.vue +++ b/frontend/components/standard/Nav.vue @@ -1,5 +1,6 @@ @@ -74,15 +97,26 @@ const menuItems = computed(() => { class="h-3rem pb-2" @click="() => router.push(localePath('/'))" /> - menuHidden = !menuHidden" - /> + + + menuHidden = !menuHidden" + /> + { :key="index" :class="mi.to === router.currentRoute.value.fullPath ? 'border-noround sm:border-round' : 'p-button-text'" :to="mi.to" + :external="mi.external" :label="`${mi.label}`" /> { @click="mi.command" /> + + userMenuVisible = false" + @show="() => userMenuVisible = true" + > + + + + + + {{ maybeMe?.name }} + + + {{ maybeMe?.enteredEmail }} + + + + + + + + + + + + + diff --git a/frontend/lang/en.json b/frontend/lang/en.json index 53ae04a..4805e5f 100644 --- a/frontend/lang/en.json +++ b/frontend/lang/en.json @@ -267,7 +267,10 @@ "Home": "Portfolio Analysis Tool", "My Data": "My Data", "Sign In": "Sign In", - "Sign Out": "Sign Out" + "Sign Out": "Sign Out", + "Account": "Account", + "Audit Logs": "Audit Logs", + "Settings": "Settings" }, "components/user/Editor": { "The name that will be associated with": "The name that will be associated with ", diff --git a/frontend/plugins/primevue.ts b/frontend/plugins/primevue.ts index 6353731..bb77250 100644 --- a/frontend/plugins/primevue.ts +++ b/frontend/plugins/primevue.ts @@ -22,6 +22,7 @@ import Textarea from 'primevue/textarea' import Tooltip from 'primevue/tooltip' import TriStateCheckbox from 'primevue/tristatecheckbox' import Message from 'primevue/message' +import Menu from 'primevue/menu' import MultiSelect from 'primevue/multiselect' import OverlayPanel from 'primevue/overlaypanel' import ProgressSpinner from 'primevue/progressspinner' @@ -48,6 +49,7 @@ export default defineNuxtPlugin(({ vueApp }) => { vueApp.component('PVInputText', InputText) vueApp.component('PVInputSwitch', InputSwitch) vueApp.component('PVMessage', Message) + vueApp.component('PVMenu', Menu) vueApp.component('PVMultiSelect', MultiSelect) vueApp.component('PVOverlayPanel', OverlayPanel) vueApp.component('PVProgressSpinner', ProgressSpinner)