0.0.2 • Published 4 years ago

@efinitytech/forkey v0.0.2

Weekly downloads
1
License
-
Repository
github
Last release
4 years ago

forkey

Map actions to keys in KeyboardEvents.

npm version

Usage

forkey(km: KeyMap): (e: KeyboardEvent) => void

The declaration for KeyMap looks like:

type KeyMap = { [key: string]: boolean | FunctionAcceptsKeyboardEventReturnsBoolean };

If a key matches event.key or event.code, it will run the associated function. If the function returns true, it will call event.preventDefault(). Or, if a boolean value is provided instead of the function, true will call event.preventDefault().

Browser

<input id="target" />

<script>
    // preventDefault() on Enter key.
    const fn = forkey({
        'Enter': true
    });

    document.getElementById('#target')
        .addEventListenter('keydown', fn);
</script>

JSX

import forkey from 'forkey';


// in markup:
<input onKeydown={forkey({ 
    // Case-insensitive. Evaluating to true calls preventDefault on the event.
    'enter': true,

    // Custom handler.
    ShiftLeft(e) => {
        console.log('event:', e);

        // Returning true will also call preventDefault on the event.
        return true;
    }
})} />