react-losen
Advanced tools
Comparing version 2.0.0-3 to 2.0.0-4
@@ -1,3 +0,4 @@ | ||
import Wizard from "./Wizard.js"; | ||
import Step from "./Step.js"; | ||
export { Wizard, Step }; | ||
import Wizard, { ValidationError } from "./Wizard.js"; | ||
import Step, { StepContext } from "./Step.js"; | ||
import { ControlsContext } from "./Controls.js"; | ||
export { Wizard, Step, StepContext, ValidationError, ControlsContext }; |
@@ -1,2 +0,2 @@ | ||
import Wizard from"./Wizard.js";import Step from"./Step.js";export{Wizard,Step}; | ||
import Wizard,{ValidationError}from"./Wizard.js";import Step,{StepContext}from"./Step.js";import{ControlsContext}from"./Controls.js";export{Wizard,Step,StepContext,ValidationError,ControlsContext}; | ||
//# sourceMappingURL=index.min.js.map |
@@ -1,3 +0,3 @@ | ||
import { useEffect } from 'react'; | ||
import { useStepContext } from "./Wizard.js"; | ||
import { useEffect, createContext, useContext } from 'react'; | ||
export const StepContext = createContext(null); | ||
@@ -15,3 +15,3 @@ const Step = ({ | ||
initialized | ||
} = useStepContext(); | ||
} = useContext(StepContext); | ||
const stepInfo = { | ||
@@ -18,0 +18,0 @@ name, |
@@ -1,12 +0,6 @@ | ||
import React, { createContext, useState, useContext, useEffect } from 'react'; | ||
import React, { useState, useEffect } from 'react'; | ||
import { findNextValid, findPreviousValid } from "./utils.js"; | ||
import { ControlsContext } from "./Controls.js"; | ||
import { StepContext } from "./Step.js"; | ||
export class ValidationError extends Error {} | ||
export const StepContext = createContext(null); | ||
export const ControlsContext = createContext(null); | ||
export function useStepContext() { | ||
return useContext(StepContext); | ||
} | ||
export function useControlsContext() { | ||
return useContext(ControlsContext); | ||
} | ||
@@ -13,0 +7,0 @@ const Wizard = ({ |
@@ -1,2 +0,2 @@ | ||
import React, { createContext, useState, useEffect, useContext } from 'react'; | ||
import React, { createContext, useContext, useEffect, useState } from 'react'; | ||
@@ -87,9 +87,48 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { | ||
class ValidationError extends Error {} | ||
const StepContext = createContext(null); | ||
const ControlsContext = createContext(null); | ||
function useStepContext() { | ||
return useContext(StepContext); | ||
} | ||
const StepContext = createContext(null); | ||
const Step = (_ref) => { | ||
let children = _ref.children, | ||
name = _ref.name, | ||
validator = _ref.validator, | ||
autoSkip = _ref.autoSkip; | ||
const _useContext = useContext(StepContext), | ||
registerStep = _useContext.registerStep, | ||
activeStep = _useContext.activeStep, | ||
updateStep = _useContext.updateStep, | ||
initialized = _useContext.initialized; | ||
const stepInfo = { | ||
name, | ||
validator, | ||
autoSkip | ||
}; | ||
useEffect(() => { | ||
if (!initialized) { | ||
registerStep(stepInfo); | ||
} | ||
}, [name]); | ||
useEffect(() => { | ||
if (initialized) { | ||
updateStep(stepInfo); | ||
} | ||
}, [autoSkip, validator]); | ||
if (activeStep.name !== name) { | ||
return null; | ||
} | ||
return children; | ||
}; | ||
Step.defaultProps = { | ||
validator: null, | ||
autoSkip: false | ||
}; | ||
class ValidationError extends Error {} | ||
const Wizard = (_ref) => { | ||
@@ -185,42 +224,2 @@ let children = _ref.children, | ||
const Step = (_ref) => { | ||
let children = _ref.children, | ||
name = _ref.name, | ||
validator = _ref.validator, | ||
autoSkip = _ref.autoSkip; | ||
const _useStepContext = useStepContext(), | ||
registerStep = _useStepContext.registerStep, | ||
activeStep = _useStepContext.activeStep, | ||
updateStep = _useStepContext.updateStep, | ||
initialized = _useStepContext.initialized; | ||
const stepInfo = { | ||
name, | ||
validator, | ||
autoSkip | ||
}; | ||
useEffect(() => { | ||
if (!initialized) { | ||
registerStep(stepInfo); | ||
} | ||
}, [name]); | ||
useEffect(() => { | ||
if (initialized) { | ||
updateStep(stepInfo); | ||
} | ||
}, [autoSkip, validator]); | ||
if (activeStep.name !== name) { | ||
return null; | ||
} | ||
return children; | ||
}; | ||
Step.defaultProps = { | ||
validator: null, | ||
autoSkip: false | ||
}; | ||
export { Step, Wizard }; | ||
export { ControlsContext, Step, StepContext, ValidationError, Wizard }; |
@@ -1,2 +0,2 @@ | ||
import React,{createContext,useState,useEffect,useContext}from"react";function asyncGeneratorStep(e,t,n,r,i,o,a){try{var l=e[o](a),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,i)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){asyncGeneratorStep(o,r,i,a,l,"next",e)}function l(e){asyncGeneratorStep(o,r,i,a,l,"throw",e)}a(void 0)})}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==l.return||l.return()}finally{if(i)throw o}}return n}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function findNextValid(e,t){const n=t+e.slice(t+1).findIndex(e=>!e.autoSkip);return e.length>n?n+1:n}function findPreviousValid(e,t){return t-1-[...e].reverse().slice(e.length-t).findIndex(e=>!e.autoSkip)}class ValidationError extends Error{}const StepContext=createContext(null),ControlsContext=createContext(null);function useStepContext(){return useContext(StepContext)}const Wizard=e=>{let t=e.children,n=e.onComplete;const r=_slicedToArray(useState(0),2),i=r[0],o=r[1],a=_slicedToArray(useState([]),2),l=a[0],s=a[1],u=_slicedToArray(useState(!1),2),c=u[0],d=u[1];function f(){return(f=_asyncToGenerator(function*(){const e=l[i].validator,t=findNextValid(l,i),r=findNextValid(l,i)===i?()=>n(l[i].name):()=>o(t);if(e)try{d(!0),yield new Promise(e),r()}catch(e){if(!(e instanceof ValidationError))throw e;console.error("ReactLosen",e)}finally{d(!1)}else r()})).apply(this,arguments)}return useEffect(()=>{console.debug("steps updated",l)},[l]),React.createElement(ControlsContext.Provider,{value:{onNext:function(){return f.apply(this,arguments)},onPrevious:function(){const e=findPreviousValid(l,i);o(e)},isLoading:c,isFirst:findPreviousValid(l,i)===i,isLast:findNextValid(l,i)===i}},React.createElement(StepContext.Provider,{value:{registerStep:function(e){l.map(e=>e.name).includes(e.name)||s(t=>[...t,e])},activeStep:l[i]||{},initialized:!!l[i],updateStep:function(e){const t=l.findIndex(t=>t.name===e.name);s(n=>[...n.slice(0,t),e,...n.slice(t+1)])}}},t))},Step=e=>{let t=e.children,n=e.name,r=e.validator,i=e.autoSkip;const o=useStepContext(),a=o.registerStep,l=o.activeStep,s=o.updateStep,u=o.initialized,c={name:n,validator:r,autoSkip:i};return useEffect(()=>{u||a(c)},[n]),useEffect(()=>{u&&s(c)},[i,r]),l.name!==n?null:t};Step.defaultProps={validator:null,autoSkip:!1};export{Step,Wizard}; | ||
import React,{createContext,useContext,useEffect,useState}from"react";function asyncGeneratorStep(e,t,n,r,i,o,a){try{var l=e[o](a),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,i)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise(function(r,i){var o=e.apply(t,n);function a(e){asyncGeneratorStep(o,r,i,a,l,"next",e)}function l(e){asyncGeneratorStep(o,r,i,a,l,"throw",e)}a(void 0)})}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,l=e[Symbol.iterator]();!(r=(a=l.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==l.return||l.return()}finally{if(i)throw o}}return n}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function findNextValid(e,t){const n=t+e.slice(t+1).findIndex(e=>!e.autoSkip);return e.length>n?n+1:n}function findPreviousValid(e,t){return t-1-[...e].reverse().slice(e.length-t).findIndex(e=>!e.autoSkip)}const ControlsContext=createContext(null),StepContext=createContext(null),Step=e=>{let t=e.children,n=e.name,r=e.validator,i=e.autoSkip;const o=useContext(StepContext),a=o.registerStep,l=o.activeStep,s=o.updateStep,c=o.initialized,u={name:n,validator:r,autoSkip:i};return useEffect(()=>{c||a(u)},[n]),useEffect(()=>{c&&s(u)},[i,r]),l.name!==n?null:t};Step.defaultProps={validator:null,autoSkip:!1};class ValidationError extends Error{}const Wizard=e=>{let t=e.children,n=e.onComplete;const r=_slicedToArray(useState(0),2),i=r[0],o=r[1],a=_slicedToArray(useState([]),2),l=a[0],s=a[1],c=_slicedToArray(useState(!1),2),u=c[0],d=c[1];function f(){return(f=_asyncToGenerator(function*(){const e=l[i].validator,t=findNextValid(l,i),r=findNextValid(l,i)===i?()=>n(l[i].name):()=>o(t);if(e)try{d(!0),yield new Promise(e),r()}catch(e){if(!(e instanceof ValidationError))throw e;console.error("ReactLosen",e)}finally{d(!1)}else r()})).apply(this,arguments)}return useEffect(()=>{console.debug("steps updated",l)},[l]),React.createElement(ControlsContext.Provider,{value:{onNext:function(){return f.apply(this,arguments)},onPrevious:function(){const e=findPreviousValid(l,i);o(e)},isLoading:u,isFirst:findPreviousValid(l,i)===i,isLast:findNextValid(l,i)===i}},React.createElement(StepContext.Provider,{value:{registerStep:function(e){l.map(e=>e.name).includes(e.name)||s(t=>[...t,e])},activeStep:l[i]||{},initialized:!!l[i],updateStep:function(e){const t=l.findIndex(t=>t.name===e.name);s(n=>[...n.slice(0,t),e,...n.slice(t+1)])}}},t))};export{ControlsContext,Step,StepContext,ValidationError,Wizard}; | ||
//# sourceMappingURL=index.min.js.map |
{ | ||
"name": "react-losen", | ||
"description": "A super customisable Wizard for React and React Native", | ||
"version": "2.0.0-3", | ||
"version": "2.0.0-4", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "esnext": "dist-src/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
22890
13
0
320