event-modifier
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

Event Modifier

npm version

Usage

Modifiers:

// Also a shortcut alias 'em'
import { eventModifier } from 'event-modifier'

function listener() {
  // do something
}

eventModifier()
  .stop()
  .prevent()
  .keys('Enter', 'Space')
  .apply(listener)

Create custom guards:

import { em, createGuard } from 'event-modifier'

createGuard('stopOthers', e => e.stopImmediatePropagation())

// for inferring type
declare module 'event-modifier' {
  interface CustomModifier {
    stopOthers: () => this
  }
}

// use
em().stopOthers()

Inspiration

<template>
  <div
    tabindex="0"
    @click="handle"
    @keydown.tab="handle"
    @keydown.enter.stop="handle"
    @keydown.space.stop.prevent="handle"
  ></div>
</template>

<script setup>
function handle() {
  // do something
}
</script>

Pretty good.

function handle() {
  // do something
}

function keyHandle(event: KeyboardEvent) {
  const key = event.code || event.key

  switch (key) {
    case 'Tab': return handle()
    case 'Enter':
      event.stopPropagation()
      return handle()
    case 'Space':
      event.stopPropagation()
      event.preventDefault()
      return handle()
  }
}

function render() {
  return (
    <div tabindex={'0'} onClick={handle} onKeydown={keyHandle}></div>
  )
}

Lots of template code, Sad.

License

All in MIT license.

Readme

Keywords

none

Package Sidebar

Install

npm i event-modifier

Weekly Downloads

0

Version

0.2.0

License

MIT

Unpacked Size

45.3 kB

Total Files

37

Last publish

Collaborators

  • qmhc