Skip to content

Commit

Permalink
Merge branch 'release/v0.10.7'
Browse files Browse the repository at this point in the history
  • Loading branch information
holtwick committed Mar 7, 2024
2 parents c9df46e + 10a389f commit c79f9fa
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 23 deletions.
3 changes: 2 additions & 1 deletion lib/float/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export { default as OuiMenu } from './oui-menu.vue'
export { default as OuiMenuItems } from './oui-menu-items.vue'
export { default as OuiTooltipActivator } from './oui-tooltip-activator.vue'

export { vMenu, useMenu, useMenuWithValue } from './use-menu'
export { useMenu, useMenuWithValue } from './use-menu'
export { vMenu } from './v-menu'

// export { vActionToggle } from './lib'
21 changes: 0 additions & 21 deletions lib/float/use-menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,24 +105,3 @@ export function useMenuWithValue<T = any>(itemsSource: OuiMenuCreator) {
return (...args: any) => menu(value, ...args)
}
}

// export function menuWithArgs(value: any) {
// return (...args: any) => menu(value, ...args)
// }

/** Vue3 Directive! */
export const vMenu = {
mounted: (element: HTMLElement, binding: DirectiveBinding) => {
log('v-menu', element, binding)
log.assert(typeof binding.value === 'function', 'v-menu requires function as argument')
element.addEventListener('contextmenu', (event: MouseEvent) => {
log('v-menu context')
event.preventDefault() // no system menu
binding.value(event, element)
})
element.addEventListener('click', (event: MouseEvent) => {
log('v-menu click')
binding.value(event, element)
})
},
}
36 changes: 36 additions & 0 deletions lib/float/v-menu.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import type { DirectiveBinding } from 'vue'
import type { LoggerInterface } from 'zeed'
import { Logger } from 'zeed'

const log: LoggerInterface = Logger('oui:v-menu')

const menuElements = new Map<HTMLElement, any>()

export const vMenu = {
updated: (element: HTMLElement, binding: DirectiveBinding) => {
// log('v-menu:updated', element, binding)
log.assert(typeof binding.value === 'function', 'v-menu requires function as argument')
menuElements.set(element, binding.value)
},
mounted: (element: HTMLElement, binding: DirectiveBinding) => {
// log('v-menu:mounted', element, binding)
log.assert(typeof binding.value === 'function', 'v-menu requires function as argument')

menuElements.set(element, binding.value)
element.addEventListener('contextmenu', (event: MouseEvent) => {
// log('v-menu context')
event.preventDefault() // no system menu
const fn = menuElements.get(element)
fn?.(event, element)
})
element.addEventListener('click', (event: MouseEvent) => {
// log('v-menu click')
const fn = menuElements.get(element)
fn?.(event, element)
})
},
beforeUnmount: (element: HTMLElement, binding: DirectiveBinding) => {
// log('v-menu:beforeUnmount', element, binding)
menuElements.delete(element)
},
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "oui-kit",
"type": "module",
"version": "0.10.6",
"version": "0.10.7",
"author": {
"name": "Dirk Holtwick",
"email": "[email protected]",
Expand Down

0 comments on commit c79f9fa

Please sign in to comment.