extra-react-hooks 0.6.7 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -147,7 +147,10 @@ function useForceUpdate(): () => void
147
147
 
148
148
  ### useFiniteStateMachine
149
149
  ```ts
150
- function useFiniteStateMachine<State extends string, Event extends string>(
150
+ function useFiniteStateMachine<
151
+ State extends string | number | symbol
152
+ , Event extends string | number | symbol
153
+ >(
151
154
  schema: IFiniteStateMachineSchema<State, Event>
152
155
  , initialState: State
153
156
  ): ObservableFiniteStateMachine<State, Event>
@@ -182,3 +185,11 @@ function useGetSet<T>(
182
185
  initialValue: T
183
186
  ): [get: () => T, set: (value: T) => void]
184
187
  ```
188
+
189
+ ### useIsomorphicLayoutEffect
190
+ ```ts
191
+ function useIsomorphicLayoutEffect(
192
+ effect: EffectCallback
193
+ , deps?: DependencyList
194
+ ): void
195
+ ```
package/lib/index.d.ts CHANGED
@@ -20,3 +20,4 @@ export * from './use-finite-state-machine.js';
20
20
  export * from './use-iife.js';
21
21
  export * from './use-memo-with-cleanup.js';
22
22
  export * from './use-get-set.js';
23
+ export * from './use-isomorphic-layout-effect.js';
package/lib/index.js CHANGED
@@ -20,4 +20,5 @@ export * from './use-finite-state-machine.js';
20
20
  export * from './use-iife.js';
21
21
  export * from './use-memo-with-cleanup.js';
22
22
  export * from './use-get-set.js';
23
+ export * from './use-isomorphic-layout-effect.js';
23
24
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,kBAAkB,CAAA;AAChC,cAAc,mCAAmC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { ObservableFiniteStateMachine, IFiniteStateMachineSchema } from 'extra-fsm';
2
2
  export type { ObservableFiniteStateMachine, IFiniteStateMachineSchema } from 'extra-fsm';
3
- export declare function useFiniteStateMachine<State extends string, Event extends string>(schema: IFiniteStateMachineSchema<State, Event>, initialState: State): ObservableFiniteStateMachine<State, Event>;
3
+ export declare function useFiniteStateMachine<State extends string | number | symbol, Event extends string | number | symbol>(schema: IFiniteStateMachineSchema<State, Event>, initialState: State): ObservableFiniteStateMachine<State, Event>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-finite-state-machine.js","sourceRoot":"","sources":["../src/use-finite-state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,4BAA4B,EAA6B,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAOtD,MAAM,UAAU,qBAAqB,CACnC,MAA+C,EAC/C,YAAmB;IAEnB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,IAAI,4BAA4B,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5D,CAAC,MAAM,EAAE,YAAY,CAAC,CACvB,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAA;QAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9D,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;IACzC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"use-finite-state-machine.js","sourceRoot":"","sources":["../src/use-finite-state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,4BAA4B,EAA6B,MAAM,WAAW,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAOtD,MAAM,UAAU,qBAAqB,CAInC,MAA+C,EAC/C,YAAmB;IAEnB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,IAAI,4BAA4B,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5D,CAAC,MAAM,EAAE,YAAY,CAAC,CACvB,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,GAAG,CAAC,mBAAmB,EAAE,CAAA;QAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QAE9D,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;IACzC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { useEffect } from 'react';
2
+ export declare const useIsomorphicLayoutEffect: typeof useEffect;
@@ -0,0 +1,5 @@
1
+ import { useLayoutEffect, useEffect } from 'react';
2
+ export const useIsomorphicLayoutEffect = typeof window === 'undefined'
3
+ ? useEffect
4
+ : useLayoutEffect;
5
+ //# sourceMappingURL=use-isomorphic-layout-effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-isomorphic-layout-effect.js","sourceRoot":"","sources":["../src/use-isomorphic-layout-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAElD,MAAM,CAAC,MAAM,yBAAyB,GACpC,OAAO,MAAM,KAAK,WAAW;IAC/B,CAAC,CAAC,SAAS;IACX,CAAC,CAAC,eAAe,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extra-react-hooks",
3
- "version": "0.6.7",
3
+ "version": "0.6.9",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [
package/src/index.ts CHANGED
@@ -20,3 +20,4 @@ export * from './use-finite-state-machine.js'
20
20
  export * from './use-iife.js'
21
21
  export * from './use-memo-with-cleanup.js'
22
22
  export * from './use-get-set.js'
23
+ export * from './use-isomorphic-layout-effect.js'
@@ -7,7 +7,10 @@ export type {
7
7
  , IFiniteStateMachineSchema
8
8
  } from 'extra-fsm'
9
9
 
10
- export function useFiniteStateMachine<State extends string, Event extends string>(
10
+ export function useFiniteStateMachine<
11
+ State extends string | number | symbol
12
+ , Event extends string | number | symbol
13
+ >(
11
14
  schema: IFiniteStateMachineSchema<State, Event>
12
15
  , initialState: State
13
16
  ): ObservableFiniteStateMachine<State, Event> {
@@ -0,0 +1,6 @@
1
+ import { useLayoutEffect, useEffect } from 'react'
2
+
3
+ export const useIsomorphicLayoutEffect =
4
+ typeof window === 'undefined'
5
+ ? useEffect // SSR
6
+ : useLayoutEffect // Browser