diff --git a/frontend/src/components/widgets/floating-menus/MenuList.vue b/frontend/src/components/widgets/floating-menus/MenuList.vue index d6ed94e5..00c68563 100644 --- a/frontend/src/components/widgets/floating-menus/MenuList.vue +++ b/frontend/src/components/widgets/floating-menus/MenuList.vue @@ -215,25 +215,25 @@ const MenuList = defineComponent({ const floatingMenu = this.$refs.floatingMenu as typeof FloatingMenu; return Boolean(floatingMenu && floatingMenu.isOpen()); }, - measureAndReportWidth() { - // API is experimental but supported in all browsers - https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet + async measureAndReportWidth() { + // API is experimental but supported in all browsers - https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/ready // eslint-disable-next-line @typescript-eslint/no-explicit-any - (document as any).fonts.ready.then(() => { - const floatingMenu = this.$refs.floatingMenu as typeof FloatingMenu; + await (document as any).fonts.ready; - // Save open/closed state before forcing open, if necessary, for measurement - const initiallyOpen = floatingMenu.isOpen(); - if (!initiallyOpen) floatingMenu.setOpen(); + const floatingMenu = this.$refs.floatingMenu as typeof FloatingMenu; - floatingMenu.disableMinWidth((initialMinWidth: string) => { - floatingMenu.getWidth((width: number) => { - floatingMenu.enableMinWidth(initialMinWidth); + // Save open/closed state before forcing open, if necessary, for measurement + const initiallyOpen = floatingMenu.isOpen(); + if (!initiallyOpen) floatingMenu.setOpen(); - // Restore open/closed state if it was forced open for measurement - if (!initiallyOpen) floatingMenu.setClosed(); + floatingMenu.disableMinWidth((initialMinWidth: string) => { + floatingMenu.getWidth((width: number) => { + floatingMenu.enableMinWidth(initialMinWidth); - this.$emit("width-changed", width); - }); + // Restore open/closed state if it was forced open for measurement + if (!initiallyOpen) floatingMenu.setClosed(); + + this.$emit("width-changed", width); }); }); },