@solid-primitives/keyboard
Advanced tools
Comparing version 1.0.10 to 1.0.11
@@ -8,3 +8,3 @@ import { Accessor } from 'solid-js'; | ||
* | ||
* This is a [shared root primitive](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSharedRoot). *(signals and event-listeners are reused across dependents)* | ||
* This is a [singleton root primitive](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot). *(signals and event-listeners are reused across dependents)* | ||
* | ||
@@ -33,3 +33,3 @@ * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#useKeyDownList | ||
* | ||
* This is a [shared root primitive](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSharedRoot). *(signals and event-listeners are reused across dependents)* | ||
* This is a [singleton root primitive](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot). *(signals and event-listeners are reused across dependents)* | ||
* | ||
@@ -55,3 +55,3 @@ * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#useCurrentlyHeldKey | ||
* | ||
* This is a [shared root primitive](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSharedRoot). *(signals and event-listeners are reused across dependents)* | ||
* This is a [singleton root primitive](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot). *(signals and event-listeners are reused across dependents)* | ||
* | ||
@@ -58,0 +58,0 @@ * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyboard#useKeyDownSequence |
import { makeEventListener } from '@solid-primitives/event-listener'; | ||
import { createSharedRoot } from '@solid-primitives/rootless'; | ||
import { createSingletonRoot } from '@solid-primitives/rootless'; | ||
import { arrayEquals } from '@solid-primitives/utils'; | ||
import { createSignal, batch, untrack, createMemo, createEffect, on } from 'solid-js'; | ||
import { isServer } from 'solid-js/web'; | ||
@@ -15,3 +16,6 @@ // src/index.ts | ||
} | ||
var useKeyDownList = /* @__PURE__ */ createSharedRoot(() => { | ||
var useKeyDownList = /* @__PURE__ */ createSingletonRoot(() => { | ||
if (isServer) { | ||
return [() => [], { event: () => null }]; | ||
} | ||
const [pressedKeys, setPressedKeys] = createSignal([]); | ||
@@ -43,16 +47,24 @@ const [event, setEvent] = createSignal(null); | ||
}); | ||
var useCurrentlyHeldKey = /* @__PURE__ */ createSharedRoot(() => { | ||
var useCurrentlyHeldKey = /* @__PURE__ */ createSingletonRoot( | ||
() => { | ||
if (isServer) { | ||
return () => null; | ||
} | ||
const [keys] = useKeyDownList(); | ||
let prevKeys = untrack(keys); | ||
return createMemo(() => { | ||
const _keys = keys(); | ||
const prev = prevKeys; | ||
prevKeys = _keys; | ||
if (prev.length === 0 && _keys.length === 1) | ||
return _keys[0]; | ||
return null; | ||
}); | ||
} | ||
); | ||
var useKeyDownSequence = /* @__PURE__ */ createSingletonRoot(() => { | ||
if (isServer) { | ||
return () => []; | ||
} | ||
const [keys] = useKeyDownList(); | ||
let prevKeys = untrack(keys); | ||
return createMemo(() => { | ||
const _keys = keys(); | ||
const prev = prevKeys; | ||
prevKeys = _keys; | ||
if (prev.length === 0 && _keys.length === 1) | ||
return _keys[0]; | ||
return null; | ||
}); | ||
}); | ||
var useKeyDownSequence = /* @__PURE__ */ createSharedRoot(() => { | ||
const [keys] = useKeyDownList(); | ||
return createMemo((prev) => { | ||
@@ -65,2 +77,5 @@ if (keys().length === 0) | ||
function createKeyHold(key, options = {}) { | ||
if (isServer) { | ||
return () => false; | ||
} | ||
key = key.toUpperCase(); | ||
@@ -79,3 +94,3 @@ const { preventDefault = true } = options; | ||
function createShortcut(keys, callback, options = {}) { | ||
if (!keys.length) { | ||
if (isServer || !keys.length) { | ||
return; | ||
@@ -82,0 +97,0 @@ } |
{ | ||
"name": "@solid-primitives/keyboard", | ||
"version": "1.0.10", | ||
"version": "1.0.11", | ||
"description": "A library of reactive promitives helping handling user's keyboard input.", | ||
@@ -41,38 +41,7 @@ "author": "Damian Tarnwski <gthetarnav@gmail.com>", | ||
"type": "module", | ||
"main": "./dist/server.cjs", | ||
"module": "./dist/server.js", | ||
"main": "./dist/index.cjs", | ||
"module": "./dist/index.js", | ||
"types": "./dist/index.d.ts", | ||
"browser": { | ||
"./dist/server.js": "./dist/index.js", | ||
"./dist/server.cjs": "./dist/index.cjs" | ||
}, | ||
"browser": {}, | ||
"exports": { | ||
"worker": { | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/server.js" | ||
}, | ||
"require": "./dist/server.cjs" | ||
}, | ||
"browser": { | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/index.js" | ||
}, | ||
"require": "./dist/index.cjs" | ||
}, | ||
"deno": { | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/server.js" | ||
}, | ||
"require": "./dist/server.cjs" | ||
}, | ||
"node": { | ||
"import": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/server.js" | ||
}, | ||
"require": "./dist/server.cjs" | ||
}, | ||
"import": { | ||
@@ -85,8 +54,8 @@ "types": "./dist/index.d.ts", | ||
"dependencies": { | ||
"@solid-primitives/event-listener": "^2.2.8", | ||
"@solid-primitives/rootless": "^1.2.6", | ||
"@solid-primitives/utils": "^5.4.0" | ||
"@solid-primitives/event-listener": "^2.2.9", | ||
"@solid-primitives/rootless": "^1.3.1", | ||
"@solid-primitives/utils": "^5.5.1" | ||
}, | ||
"peerDependencies": { | ||
"solid-js": "^1.6.0" | ||
"solid-js": "^1.6.12" | ||
}, | ||
@@ -97,3 +66,3 @@ "typesVersions": {}, | ||
"page": "vite build dev", | ||
"build": "jiti ../../scripts/build.ts --ssr", | ||
"build": "jiti ../../scripts/build.ts", | ||
"test": "vitest -c ../../configs/vitest.config.ts", | ||
@@ -100,0 +69,0 @@ "test:ssr": "pnpm run test --mode ssr" |
@@ -32,3 +32,3 @@ <p> | ||
This is a [shared root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSharedRoot) primitive that will reuse event listeners and signals across dependents. | ||
This is a [singleton root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) primitive that will reuse event listeners and signals across dependents. | ||
@@ -58,3 +58,3 @@ ### How to use it | ||
This is a [shared root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSharedRoot) primitive that will reuse event listeners and signals across dependents. | ||
This is a [singleton root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) primitive that will reuse event listeners and signals across dependents. | ||
@@ -79,3 +79,3 @@ ### How to use it | ||
This is a [shared root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSharedRoot) primitive that will reuse event listeners and signals across dependents. | ||
This is a [singleton root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) primitive that will reuse event listeners and signals across dependents. | ||
@@ -82,0 +82,0 @@ ### How to use it |
Sorry, the diff of this file is not supported yet
21765
6
394