From 3804dee24e8b062bcc1d1a0a4ce16ff23613a8fe Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Tue, 22 Feb 2022 01:40:25 +0100 Subject: [PATCH] Add dropdown --- frontend-new/package.json | 1 + frontend-new/pnpm-lock.yaml | 11 +++++ frontend-new/src/components/Header.vue | 64 ++++++++++++++++++++++++-- frontend-new/src/types/components.d.ts | 10 ++++ 4 files changed, 82 insertions(+), 4 deletions(-) diff --git a/frontend-new/package.json b/frontend-new/package.json index 6e71a99f4..6abef4e31 100644 --- a/frontend-new/package.json +++ b/frontend-new/package.json @@ -12,6 +12,7 @@ "format": "prettier . --write" }, "dependencies": { + "@headlessui/vue": "^1.5.0", "@vueuse/core": "^7.5.5", "@vueuse/head": "^0.7.5", "@vueuse/integrations": "^7.5.5", diff --git a/frontend-new/pnpm-lock.yaml b/frontend-new/pnpm-lock.yaml index 22c6768c4..dbc9da5d3 100644 --- a/frontend-new/pnpm-lock.yaml +++ b/frontend-new/pnpm-lock.yaml @@ -2,6 +2,7 @@ lockfileVersion: 5.3 specifiers: '@antfu/eslint-config': ^0.16.1 + '@headlessui/vue': ^1.5.0 '@iconify/json': ^2.1.3 '@intlify/vite-plugin-vue-i18n': ^3.3.0 '@types/markdown-it-link-attributes': ^3.0.1 @@ -47,6 +48,7 @@ specifiers: vue-router: ^4.0.12 dependencies: + '@headlessui/vue': 1.5.0_vue@3.2.31 '@vueuse/core': 7.5.5_vue@3.2.31 '@vueuse/head': 0.7.5_vue@3.2.31 '@vueuse/integrations': 7.5.5_vue@3.2.31 @@ -1398,6 +1400,15 @@ packages: - supports-color dev: true + /@headlessui/vue/1.5.0_vue@3.2.31: + resolution: {integrity: sha512-jAp6XYpqdEv32xhszaj5ejvjaX5qhu20sCbxu7lplePEfZL+4ffabivJBBTZAiPWczqAXmnZWNWG5DOyqjRa4w==} + engines: {node: '>=10'} + peerDependencies: + vue: ^3.2.0 + dependencies: + vue: 3.2.31 + dev: false + /@humanwhocodes/config-array/0.5.0: resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} engines: {node: '>=10.10.0'} diff --git a/frontend-new/src/components/Header.vue b/frontend-new/src/components/Header.vue index 804e624a6..800510ba3 100644 --- a/frontend-new/src/components/Header.vue +++ b/frontend-new/src/components/Header.vue @@ -4,6 +4,7 @@ import {useThemeStore} from '~/store/theme' import {useInitialState} from "~/composables/useInitialState"; import {useInternalApi} from "~/composables/useApi"; +import { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue' // not sure if they need to be part of the initial state, since we directly render them, would only save a request on page switch at most, but I guess its a good demonstration /* const announcements = await useInitialState( @@ -27,12 +28,67 @@ const navBarLinks = [