rhf-stepper 0.2.4 → 1.0.0
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 +202 -157
- package/dist/index.d.mts +18 -21
- package/dist/index.d.ts +18 -21
- package/dist/index.js +180 -274
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +180 -275
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/step.tsx","../src/form.tsx","../src/controller.tsx"],"names":["createContext","useContext","useMemo","useRef","useState","useCallback","steps","useEffect","stepRef","prev","jsx","forwardRef","RHFController"],"mappings":"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","file":"index.js","sourcesContent":["import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { useInternalFormContext } from './form'\nimport { type StepTree } from './types'\n\ntype StepContextValue = {\n step?: number\n registrationKey: number\n registerField: (elements: StepTree) => void\n registerStep: (elements: StepTree, stepRef: React.RefObject<number | undefined>, step?: number) => void\n rebuildSteps: () => void\n changeStepAtIndex: (steps: StepTree, index: number) => void\n}\n\nconst StepContext = createContext<StepContextValue | null>(null)\n\nfunction useStep(): StepContextValue | null {\n return useContext(StepContext)\n}\n\nfunction Step({ children }: { children: React.ReactNode }) {\n const stepContext = useStep()\n const formContext = useInternalFormContext()\n\n const {\n registerStep: registerStepFromParent,\n step: stepFromParent,\n rebuildSteps: rebuildStepsFromParent,\n changeStepAtIndex: changeStepAtIndexFromParent,\n registrationKey: registrationKeyFromParent,\n } = stepContext ?? formContext\n\n const isRoot = useMemo(() => {\n if (!stepContext) return true\n return false\n }, [stepContext])\n const stepRef = useRef<number | undefined>(undefined)\n const [steps, setSteps] = useState<StepTree>([])\n const [registrationKey, setRegistrationKey] = useState(0)\n\n const changeStepAtIndex = useCallback((steps: StepTree, index: number): void => {\n setSteps((prevSteps) => {\n const newSteps = [...prevSteps]\n newSteps[index] = steps\n return newSteps\n })\n }, [])\n\n useEffect(() => {\n if (isRoot && steps.length === 0) return\n const stepList = steps.length ? steps : ['']\n if (stepRef.current !== undefined) {\n changeStepAtIndexFromParent(stepList, stepRef.current)\n } else {\n registerStepFromParent(stepList, stepRef)\n }\n }, [registrationKeyFromParent, steps, isRoot])\n\n useEffect(() => {\n if (stepFromParent !== undefined) {\n rebuildStepsFromParent()\n }\n return () => {\n rebuildStepsFromParent()\n }\n }, [])\n\n const registerField = useCallback(\n (elements: StepTree): void => {\n setSteps((prevSteps) => {\n return [...prevSteps, ...elements]\n })\n },\n [steps],\n )\n\n const registerStep = useCallback(\n (elements: StepTree, stepRef: React.RefObject<number | undefined>, step?: number): void => {\n setSteps((prevSteps: StepTree) => {\n const stepNumber = step ?? prevSteps.length\n stepRef.current = stepNumber\n const newSteps = [...prevSteps]\n newSteps.splice(stepNumber, 0, elements)\n return newSteps\n })\n },\n [steps],\n )\n\n const rebuildSteps = useCallback(() => {\n setSteps([])\n setRegistrationKey((prev) => prev + 1)\n }, [])\n\n const contextValue = useMemo<StepContextValue>(\n () => ({\n // eslint-disable-next-line react-hooks/refs\n step: stepRef.current,\n registrationKey,\n changeStepAtIndex,\n registerField,\n registerStep,\n rebuildSteps,\n }),\n [registrationKey, changeStepAtIndex, registerField, registerStep, rebuildSteps],\n )\n\n // eslint-disable-next-line react-hooks/refs\n return <StepContext.Provider value={contextValue}>{children}</StepContext.Provider>\n}\n\nStep.displayName = 'Step'\n\nexport { Step, useStep }\nexport type { StepContextValue }\n","import { createContext, forwardRef, useCallback, useContext, useMemo, useRef, useState } from 'react'\nimport { type FieldValues, Path, type UseFormReturn } from 'react-hook-form'\n\nimport { Step } from './step'\nimport { type StepTree, type StepValidationMode } from './types'\n\nfunction buildNestedValues(fields: string[], values: unknown[]): Record<string, unknown> {\n const result: Record<string, unknown> = {}\n for (let i = 0; i < fields.length; i++) {\n const segments = fields[i].split('.')\n let current: Record<string, unknown> = result\n for (let j = 0; j < segments.length - 1; j++) {\n const segment = segments[j]\n const nextSegment = segments[j + 1]\n const isNextNumeric = /^\\d+$/.test(nextSegment)\n if (current[segment] === undefined) {\n current[segment] = isNextNumeric ? [] : {}\n }\n current = current[segment] as Record<string, unknown>\n }\n current[segments[segments.length - 1]] = values[i]\n }\n return result\n}\n\nfunction comparePaths(a: number[], b: number[]): number {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const ai = a[i] ?? -1\n const bi = b[i] ?? -1\n if (ai !== bi) return ai - bi\n }\n return 0\n}\n\nfunction getNodeAtPath(tree: StepTree, path: number[]): StepTree | undefined {\n let current: StepTree = tree\n for (const index of path) {\n if (!Array.isArray(current) || index >= current.length) return undefined\n current = current[index]\n }\n return current\n}\n\nfunction isLeafParent(node: StepTree): node is string[] {\n return Array.isArray(node) && node.length > 0 && node.every((child) => typeof child === 'string')\n}\n\nfunction getFirstLeafParentPath(tree: StepTree, path: number[]): number[] | null {\n const node = getNodeAtPath(tree, path)\n if (node === undefined) return null\n if (isLeafParent(node)) return path\n if (Array.isArray(node) && node.length > 0) {\n for (let i = 0; i < node.length; i++) {\n const found = getFirstLeafParentPath(tree, [...path, i])\n if (found) return found\n }\n }\n return null\n}\n\nfunction getLastLeafParentPath(tree: StepTree, path: number[]): number[] | null {\n const node = getNodeAtPath(tree, path)\n if (node === undefined) return null\n if (isLeafParent(node)) return path\n if (Array.isArray(node) && node.length > 0) {\n for (let i = node.length - 1; i >= 0; i--) {\n const found = getLastLeafParentPath(tree, [...path, i])\n if (found) return found\n }\n }\n return null\n}\n\nfunction getPrevLeafParentPath(tree: StepTree, path: number[]): number[] | null {\n const current = [...path]\n while (current.length > 0) {\n const lastIndex = current[current.length - 1]\n const parentPath = current.slice(0, -1)\n const parent = getNodeAtPath(tree, parentPath)\n\n if (Array.isArray(parent)) {\n for (let i = lastIndex - 1; i >= 0; i--) {\n const found = getLastLeafParentPath(tree, [...parentPath, i])\n if (found) return found\n }\n }\n\n current.pop()\n }\n\n return null\n}\n\nfunction getNextLeafParentPath(tree: StepTree, path: number[]): number[] | null {\n const current = [...path]\n while (current.length > 0) {\n const lastIndex = current[current.length - 1]\n const parentPath = current.slice(0, -1)\n const parent = getNodeAtPath(tree, parentPath)\n\n if (Array.isArray(parent)) {\n for (let i = lastIndex + 1; i < parent.length; i++) {\n const found = getFirstLeafParentPath(tree, [...parentPath, i])\n if (found) return found\n }\n }\n\n current.pop()\n }\n\n return null\n}\n\ntype FormContextValue<TFieldValues extends FieldValues = FieldValues> = {\n form: UseFormReturn<TFieldValues>\n currentStep: number | number[] | null\n setCurrentStep: (step: number | number[], beforeStepChange?: (values: Partial<TFieldValues>) => Promise<void>) => Promise<boolean>\n currentStepNode: StepTree | undefined\n currentStepArr: string[] | null\n validatedFields: string[]\n isFirstStep: boolean\n isLastStep: boolean\n next: (beforeStepChange?: (values: Partial<TFieldValues>) => Promise<void>) => Promise<boolean>\n prev: (beforeStepChange?: (values: Partial<TFieldValues>) => Promise<void>) => Promise<boolean>\n}\n\ntype InternalFormContextValue = {\n step?: number\n registrationKey: number\n rebuildSteps: () => void\n registerStep: (elements: StepTree, stepRef: React.RefObject<number | undefined>, step?: number) => void\n changeStepAtIndex: (elements: StepTree, index: number) => void\n}\n\nconst FormContext = createContext<FormContextValue | null>(null)\nconst InternalFormContext = createContext<InternalFormContextValue | null>(null)\n\nfunction useFormContext<TFieldValues extends FieldValues = FieldValues>(): FormContextValue<TFieldValues> {\n const context = useContext(FormContext)\n if (!context) {\n throw new Error('useFormContext must be used within a <Form>')\n }\n return context as unknown as FormContextValue<TFieldValues>\n}\n\nfunction useInternalFormContext(): InternalFormContextValue {\n const context = useContext(InternalFormContext)\n if (!context) {\n throw new Error('useInternalFormContext must be used within a <Form>')\n }\n return context\n}\n\ninterface FormProps<TFieldValues extends FieldValues = FieldValues>\n extends Omit<React.ComponentProps<'form'>, 'onSubmit' | 'children'> {\n form: UseFormReturn<TFieldValues>\n onSubmit: (values: TFieldValues) => void\n stepValidationMode?: StepValidationMode\n children: React.ReactNode | ((context: FormContextValue<TFieldValues>) => React.ReactNode)\n}\n\nfunction FormInner<TFieldValues extends FieldValues = FieldValues>(\n { form, onSubmit, stepValidationMode = 'forward', children, ...props }: FormProps<TFieldValues>,\n ref: React.Ref<HTMLFormElement>,\n) {\n const [steps, setSteps] = useState<StepTree>([])\n const [currentStep, setCurrentStep] = useState<number[] | null>(null)\n const [validatedFields, setValidatedFields] = useState<string[]>([])\n const [registrationKey, setRegistrationKey] = useState(0)\n\n const stepRef = useRef<number | undefined>(undefined)\n\n const _currentStep = useMemo<number | number[] | null>(() => {\n if (!currentStep) return null\n const sliced = currentStep.slice(1)\n return sliced.length === 1 ? sliced[0] : sliced\n }, [currentStep])\n\n const currentStepNode = useMemo(\n () => (currentStep ? getNodeAtPath(steps, currentStep) : undefined),\n [steps, currentStep],\n )\n\n const currentStepArr = useMemo<string[] | null>(() => {\n if (!currentStepNode) return null\n return isLeafParent(currentStepNode) ? currentStepNode : null\n }, [currentStepNode])\n\n const _setCurrentStep = useCallback(\n async (step: number | number[], beforeStepChange?: (values: Partial<TFieldValues>) => Promise<void>): Promise<boolean> => {\n const path = typeof step === 'number' ? [0, step] : [0, ...step]\n if (currentStep && currentStepArr && stepValidationMode !== 'none') {\n const isForward = comparePaths(path, currentStep) > 0\n const shouldValidate = stepValidationMode === 'all' || (stepValidationMode === 'forward' && isForward)\n if (shouldValidate) {\n const isValid = await form.trigger(currentStepArr as Path<TFieldValues>[])\n if (!isValid) {\n setValidatedFields((prev) => prev.filter((field) => !currentStepArr.includes(field)))\n return false\n }\n setValidatedFields((prev) => [...new Set([...prev, ...currentStepArr])])\n }\n }\n if (beforeStepChange && currentStepArr) {\n const watchedValues = form.watch(currentStepArr as Path<TFieldValues>[])\n const values = buildNestedValues(currentStepArr, watchedValues) as Partial<TFieldValues>\n await beforeStepChange(values)\n }\n setCurrentStep(path)\n return true\n },\n [currentStep, currentStepArr, form, stepValidationMode],\n )\n\n const isFirstStep = useMemo(\n () => (currentStep ? getPrevLeafParentPath(steps, currentStep) === null : true),\n [steps, currentStep],\n )\n\n const isLastStep = useMemo(\n () => (currentStep ? getNextLeafParentPath(steps, currentStep) === null : true),\n [steps, currentStep],\n )\n\n const next = useCallback(async (beforeStepChange?: (values: Partial<TFieldValues>) => Promise<void>): Promise<boolean> => {\n if (!currentStep) return false\n const nextPath = getNextLeafParentPath(steps, currentStep)\n if (currentStepArr && stepValidationMode !== 'none') {\n const isValid = await form.trigger(currentStepArr as Path<TFieldValues>[])\n if (!isValid) {\n setValidatedFields((prev) => prev.filter((field) => !currentStepArr.includes(field)))\n return false\n }\n setValidatedFields((prev) => [...new Set([...prev, ...currentStepArr])])\n }\n if (nextPath) {\n if (beforeStepChange && currentStepArr) {\n const watchedValues = form.watch(currentStepArr as Path<TFieldValues>[])\n const values = buildNestedValues(currentStepArr, watchedValues) as Partial<TFieldValues>\n await beforeStepChange(values)\n }\n setCurrentStep(nextPath)\n return true\n }\n return false\n }, [steps, currentStep, currentStepArr, form, stepValidationMode])\n\n const prev = useCallback(async (beforeStepChange?: (values: Partial<TFieldValues>) => Promise<void>): Promise<boolean> => {\n if (!currentStep) return false\n const prevPath = getPrevLeafParentPath(steps, currentStep)\n if (currentStepArr && stepValidationMode === 'all') {\n const isValid = await form.trigger(currentStepArr as Path<TFieldValues>[])\n if (!isValid) {\n setValidatedFields((prev) => prev.filter((field) => !currentStepArr.includes(field)))\n return false\n }\n setValidatedFields((prev) => [...new Set([...prev, ...currentStepArr])])\n }\n if (prevPath) {\n if (beforeStepChange && currentStepArr) {\n const watchedValues = form.watch(currentStepArr as Path<TFieldValues>[])\n const values = buildNestedValues(currentStepArr, watchedValues) as Partial<TFieldValues>\n await beforeStepChange(values)\n }\n setCurrentStep(prevPath)\n return true\n }\n return false\n }, [steps, currentStep, currentStepArr, form, stepValidationMode])\n\n const registerStep = useCallback(\n (elements: StepTree, stepRef: React.RefObject<number | undefined>, step?: number): void => {\n setSteps((prevSteps: StepTree) => {\n const stepNumber = step ?? (Array.isArray(prevSteps) ? prevSteps.length : 0)\n stepRef.current = stepNumber\n const newSteps = Array.isArray(prevSteps) ? [...prevSteps] : [prevSteps]\n newSteps.splice(stepNumber, 0, elements)\n\n if (currentStep === null) {\n const firstLeafParent = getFirstLeafParentPath(newSteps, [0])\n if (firstLeafParent) {\n setCurrentStep(firstLeafParent)\n }\n }\n\n return newSteps\n })\n },\n [currentStep],\n )\n\n const rebuildSteps = useCallback(() => {\n setSteps([])\n setRegistrationKey((prev) => prev + 1)\n }, [])\n\n const changeStepAtIndex = useCallback((steps: StepTree, index: number): void => {\n setSteps((prevSteps) => {\n const newSteps = Array.isArray(prevSteps) ? [...prevSteps] : [prevSteps]\n newSteps[index] = steps\n return newSteps\n })\n }, [])\n\n const publicContextValue = useMemo<FormContextValue>(\n () => ({\n currentStep: _currentStep,\n setCurrentStep: _setCurrentStep,\n currentStepNode,\n currentStepArr,\n validatedFields,\n isFirstStep,\n isLastStep,\n form: form as unknown as UseFormReturn<FieldValues>,\n next,\n prev,\n }),\n [\n form,\n _currentStep,\n _setCurrentStep,\n currentStepNode,\n currentStepArr,\n validatedFields,\n isFirstStep,\n isLastStep,\n next,\n prev,\n ],\n )\n\n const internalContextValue = useMemo<InternalFormContextValue>(\n () => ({\n // eslint-disable-next-line react-hooks/refs\n step: stepRef.current,\n registrationKey,\n rebuildSteps,\n registerStep,\n changeStepAtIndex,\n }),\n [registrationKey, rebuildSteps, registerStep, changeStepAtIndex],\n )\n\n const resolvedChildren =\n // eslint-disable-next-line react-hooks/refs\n typeof children === 'function' ? children(publicContextValue as unknown as FormContextValue<TFieldValues>) : children\n\n return (\n // eslint-disable-next-line react-hooks/refs\n <FormContext.Provider value={publicContextValue}>\n <InternalFormContext.Provider value={internalContextValue}>\n <form ref={ref} onSubmit={form.handleSubmit(onSubmit)} {...props}>\n <Step>{resolvedChildren}</Step>\n </form>\n </InternalFormContext.Provider>\n </FormContext.Provider>\n )\n}\n\nconst Form = forwardRef(FormInner) as <TFieldValues extends FieldValues = FieldValues>(\n props: FormProps<TFieldValues> & { ref?: React.Ref<HTMLFormElement> },\n) => React.JSX.Element\n\n;(Form as React.NamedExoticComponent & { displayName?: string }).displayName = 'Form'\n\nexport { Form, useFormContext, useInternalFormContext }\nexport type { FormContextValue, FormProps, InternalFormContextValue }\n","import { ComponentProps, useEffect } from 'react'\nimport {\n type Control,\n Controller as RHFController,\n type ControllerFieldState,\n type ControllerRenderProps,\n type FieldPath,\n type FieldValues,\n type UseFormStateReturn,\n} from 'react-hook-form'\n\nimport { useFormContext } from './form'\nimport { useStep } from './step'\n\ntype ControllerRenderArgs<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n field: ControllerRenderProps<TFieldValues, TName>\n fieldState: ControllerFieldState\n formState: UseFormStateReturn<TFieldValues>\n}\n\ntype ControllerProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = ComponentProps<typeof RHFController<TFieldValues, TName>>\n\nfunction Controller<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({ name, control, ...rest }: ControllerProps<TFieldValues, TName>) {\n const formContext = useFormContext<TFieldValues>()\n const stepContext = useStep()\n const resolvedControl = control ?? (formContext.form.control as unknown as Control<TFieldValues>)\n\n useEffect(() => {\n if (stepContext) {\n stepContext.registerField([name as string])\n }\n }, [stepContext?.registrationKey])\n\n useEffect(() => {\n if (stepContext?.step !== undefined) {\n stepContext?.rebuildSteps()\n }\n return () => {\n stepContext?.rebuildSteps()\n }\n }, [])\n\n return <RHFController name={name} control={resolvedControl} {...rest} />\n}\n\nController.displayName = 'Controller'\n\nexport { Controller }\nexport type { ControllerProps, ControllerRenderArgs }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/helper.ts","../src/stepper.tsx","../src/step.tsx","../src/controller.tsx","../src/use-controller.tsx"],"names":["createContext","useContext","useFormContext","useState","useRef","useMemo","useCallback","prev","stepRef","jsx","useEffect","RHFController","useRHFController"],"mappings":"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","file":"index.js","sourcesContent":["function buildNestedValues(fields: string[], values: unknown[]): Record<string, unknown> {\n const result: Record<string, unknown> = {}\n for (let i = 0; i < fields.length; i++) {\n const segments = fields[i].split('.')\n let current: Record<string, unknown> = result\n for (let j = 0; j < segments.length - 1; j++) {\n const segment = segments[j]\n const nextSegment = segments[j + 1]\n const isNextNumeric = /^\\d+$/.test(nextSegment)\n if (current[segment] === undefined) {\n current[segment] = isNextNumeric ? [] : {}\n }\n current = current[segment] as Record<string, unknown>\n }\n current[segments[segments.length - 1]] = values[i]\n }\n return result\n}\n\nexport { buildNestedValues }\n","import { createContext, useCallback, useContext, useMemo, useRef, useState } from 'react'\nimport { type FieldValues, Path, useFormContext, type UseFormReturn } from 'react-hook-form'\n\nimport { buildNestedValues } from './helper'\nimport { type StepValidationMode, type MaybePromise } from './types'\n\ntype StepperContextValue<TFieldValues extends FieldValues = FieldValues> = {\n activeStep: number\n jumpTo: (step: number, onLeave?: (values: Partial<TFieldValues>) => MaybePromise<void>) => Promise<boolean>\n fields: string[] | null\n validSteps: number[]\n isFirstStep: boolean\n isLastStep: boolean\n next: (onLeave?: ((values: Partial<TFieldValues>) => MaybePromise<void>) | unknown) => Promise<boolean>\n prev: (onLeave?: ((values: Partial<TFieldValues>) => MaybePromise<void>) | unknown) => Promise<boolean>\n}\n\ntype InternalStepperContextValue = {\n step?: number\n registrationKey: number\n rebuildSteps: () => void\n registerStep: (elements: string[], stepRef: React.RefObject<number | undefined>, step?: number) => void\n changeStepAtIndex: (elements: string[], index: number) => void\n}\n\nconst StepperContext = createContext<StepperContextValue | null>(null)\nconst InternalStepperContext = createContext<InternalStepperContextValue | null>(null)\n\n\nfunction useInternalStepperContext(): InternalStepperContextValue {\n const context = useContext(InternalStepperContext)\n if (!context) {\n throw new Error('useInternalStepperContext must be used within a <Stepper>')\n }\n return context\n}\n\ninterface StepperProps<TFieldValues extends FieldValues = FieldValues> {\n form?: UseFormReturn<TFieldValues>\n stepValidationMode?: StepValidationMode\n children: React.ReactNode | ((context: StepperContextValue<TFieldValues>) => React.ReactNode)\n}\n\nfunction Stepper<TFieldValues extends FieldValues = FieldValues>(\n { form:formProps, stepValidationMode = 'forward', children }: StepperProps<TFieldValues>,\n) {\n const formContext = useFormContext()\n\n const form = formProps ?? formContext as UseFormReturn<TFieldValues>\n const [steps, setSteps] = useState<string[][]>([])\n const [activeStep, setActiveStep] = useState(-1)\n const [validSteps, setValidSteps] = useState<number[]>([])\n const [registrationKey, setRegistrationKey] = useState(0)\n\n const stepRef = useRef<number | undefined>(undefined)\n\n const fields = useMemo<string[] | null>(() => {\n if (activeStep === -1 || !steps[activeStep]) return null\n return Array.from(new Set(steps[activeStep]))\n }, [steps, activeStep])\n\n const jumpTo = useCallback(\n async (step: number, onLeave?: (values: Partial<TFieldValues>) => MaybePromise<void>): Promise<boolean> => {\n if (activeStep !== -1 && fields && stepValidationMode !== 'none') {\n const isForward = step > activeStep\n const shouldValidate = stepValidationMode === 'all' || (stepValidationMode === 'forward' && isForward)\n if (shouldValidate) {\n const isValid = await form.trigger(fields as Path<TFieldValues>[])\n if (!isValid) {\n setValidSteps((prev) => prev.filter((s) => s !== activeStep))\n return false\n }\n setValidSteps((prev) => [...new Set([...prev, activeStep])])\n }\n }\n if (onLeave && fields) {\n const watchedValues = form.watch(fields as Path<TFieldValues>[])\n const values = buildNestedValues(fields, watchedValues) as Partial<TFieldValues>\n await onLeave(values)\n }\n setActiveStep(step)\n return true\n },\n [activeStep, fields, form, stepValidationMode],\n )\n\n const isFirstStep = useMemo(\n () => activeStep === -1 || activeStep === 0,\n [activeStep],\n )\n\n const isLastStep = useMemo(\n () => activeStep === -1 || activeStep === steps.length - 1,\n [activeStep, steps.length],\n )\n\n const next = useCallback(async (onLeave?: ((values: Partial<TFieldValues>) => MaybePromise<void>) | unknown): Promise<boolean> => {\n const callback = typeof onLeave === 'function' ? onLeave as (values: Partial<TFieldValues>) => MaybePromise<void> : undefined\n if (activeStep === -1 || activeStep >= steps.length - 1) return false\n if (fields && stepValidationMode !== 'none') {\n const isValid = await form.trigger(fields as Path<TFieldValues>[])\n if (!isValid) {\n setValidSteps((prev) => prev.filter((s) => s !== activeStep))\n return false\n }\n setValidSteps((prev) => [...new Set([...prev, activeStep])])\n }\n if (callback && fields) {\n const watchedValues = form.watch(fields as Path<TFieldValues>[])\n const values = buildNestedValues(fields, watchedValues) as Partial<TFieldValues>\n await callback(values)\n }\n setActiveStep(activeStep + 1)\n return true\n }, [steps.length, activeStep, fields, form, stepValidationMode])\n\n const prev = useCallback(async (onLeave?: ((values: Partial<TFieldValues>) => MaybePromise<void>) | unknown): Promise<boolean> => {\n const callback = typeof onLeave === 'function' ? onLeave as (values: Partial<TFieldValues>) => MaybePromise<void> : undefined\n if (activeStep === -1 || activeStep <= 0) return false\n if (fields && stepValidationMode === 'all') {\n const isValid = await form.trigger(fields as Path<TFieldValues>[])\n if (!isValid) {\n setValidSteps((prev) => prev.filter((s) => s !== activeStep))\n return false\n }\n setValidSteps((prev) => [...new Set([...prev, activeStep])])\n }\n if (callback && fields) {\n const watchedValues = form.watch(fields as Path<TFieldValues>[])\n const values = buildNestedValues(fields, watchedValues) as Partial<TFieldValues>\n await callback(values)\n }\n setActiveStep(activeStep - 1)\n return true\n }, [activeStep, fields, form, stepValidationMode])\n\n const registerStep = useCallback(\n (elements: string[], stepRef: React.RefObject<number | undefined>, step?: number): void => {\n setSteps((prevSteps) => {\n const stepNumber = step ?? prevSteps.length\n stepRef.current = stepNumber\n const newSteps = [...prevSteps]\n newSteps.splice(stepNumber, 0, elements)\n\n if (activeStep === -1 && newSteps.length > 0) {\n setActiveStep(0)\n }\n\n return newSteps\n })\n },\n [activeStep],\n )\n\n const rebuildSteps = useCallback(() => {\n setSteps([])\n setRegistrationKey((prev) => prev + 1)\n }, [])\n\n\n const changeStepAtIndex = useCallback((elements: string[], index: number): void => {\n setSteps((prevSteps) => {\n const newSteps = [...prevSteps]\n newSteps[index] = elements\n return newSteps\n })\n }, [])\n\n\n const publicContextValue = useMemo<StepperContextValue>(\n () => ({\n activeStep,\n jumpTo,\n fields,\n validSteps,\n isFirstStep,\n isLastStep,\n next,\n prev,\n }),\n [\n activeStep,\n jumpTo,\n fields,\n validSteps,\n isFirstStep,\n isLastStep,\n next,\n prev,\n ],\n )\n\n const internalContextValue = useMemo<InternalStepperContextValue>(\n () => ({\n // eslint-disable-next-line react-hooks/refs\n step: stepRef.current,\n registrationKey,\n rebuildSteps,\n registerStep,\n changeStepAtIndex,\n }),\n [registrationKey, rebuildSteps, registerStep, changeStepAtIndex],\n )\n\n const resolvedChildren =\n // eslint-disable-next-line react-hooks/refs\n typeof children === 'function' ? children(publicContextValue as unknown as StepperContextValue<TFieldValues>) : children\n\n return (\n // eslint-disable-next-line react-hooks/refs\n <StepperContext.Provider value={publicContextValue}>\n <InternalStepperContext.Provider value={internalContextValue}>\n {resolvedChildren}\n </InternalStepperContext.Provider>\n </StepperContext.Provider>\n )\n}\n\nfunction useStepper<TFieldValues extends FieldValues = FieldValues>(): StepperContextValue<TFieldValues> {\n const context = useContext(StepperContext)\n return context as unknown as StepperContextValue<TFieldValues>\n}\n\nexport { Stepper, StepperContext, InternalStepperContext, useInternalStepperContext, useStepper }\nexport type { StepperProps, StepperContextValue, InternalStepperContextValue }\n","import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { useInternalStepperContext } from './stepper'\n\ntype StepContextValue = {\n step?: number\n registrationKey: number\n registerField: (elements: string) => void\n registerStep: (elements: string[], stepRef: React.RefObject<number | undefined>, step?: number) => void\n rebuildSteps: () => void\n changeStepAtIndex: (elements: string[], index: number) => void\n}\n\nconst StepContext = createContext<StepContextValue | null>(null)\n\nfunction useStep(): StepContextValue | null {\n return useContext(StepContext)\n}\n\nfunction Step({ children }: { children: React.ReactNode }) {\n const formContext = useInternalStepperContext()\n\n const {\n registerStep: registerStepFromParent,\n step: stepFromParent,\n rebuildSteps: rebuildStepsFromParent,\n changeStepAtIndex: changeStepAtIndexFromParent,\n registrationKey: registrationKeyFromParent,\n } = formContext\n\n\n const stepRef = useRef<number | undefined>(undefined)\n const [steps, setSteps] = useState<string[]>([])\n\n const [registrationKey, setRegistrationKey] = useState(0)\n\n const changeStepAtIndex = useCallback((elements: string[], _index: number): void => {\n setSteps(elements)\n }, [])\n\n useEffect(() => {\n const stepList = steps.length ? steps : ['']\n if (stepRef.current !== undefined) {\n changeStepAtIndexFromParent(stepList, stepRef.current)\n } else {\n registerStepFromParent(stepList, stepRef)\n }\n }, [registrationKeyFromParent, steps])\n\n useEffect(() => {\n if (stepFromParent !== undefined) {\n rebuildStepsFromParent()\n }\n return () => {\n rebuildStepsFromParent()\n }\n }, [])\n\n const registerField = useCallback(\n (element: string): void => {\n setSteps((prevSteps) => {\n return [...prevSteps, element]\n })\n },\n [steps],\n )\n\n const registerStep = useCallback(\n (elements: string[], stepRef: React.RefObject<number | undefined>, step?: number): void => {\n setSteps((prevSteps) => {\n const stepNumber = step ?? prevSteps.length\n stepRef.current = stepNumber\n const newSteps = [...prevSteps]\n newSteps.splice(stepNumber, 0, ...elements)\n return newSteps\n })\n },\n [steps],\n )\n\n const rebuildSteps = useCallback(() => {\n setSteps([])\n setRegistrationKey((prev) => prev + 1)\n }, [])\n\n const contextValue = useMemo<StepContextValue>(\n () => ({\n // eslint-disable-next-line react-hooks/refs\n step: stepRef.current,\n registrationKey,\n changeStepAtIndex,\n registerField,\n registerStep,\n rebuildSteps,\n }),\n [registrationKey, changeStepAtIndex, registerField, registerStep, rebuildSteps],\n )\n\n // eslint-disable-next-line react-hooks/refs\n return <StepContext.Provider value={contextValue}>{children}</StepContext.Provider>\n}\n\nStep.displayName = 'Step'\n\nexport { Step, useStep }\nexport type { StepContextValue }\n","import { ComponentProps, useEffect } from 'react'\nimport {\n type Control,\n Controller as RHFController,\n type ControllerFieldState,\n type ControllerRenderProps,\n type FieldPath,\n type FieldValues,\n type UseFormStateReturn,\n} from 'react-hook-form'\n\nimport { useStep } from './step'\n\ntype ControllerRenderArgs<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n field: ControllerRenderProps<TFieldValues, TName>\n fieldState: ControllerFieldState\n formState: UseFormStateReturn<TFieldValues>\n}\n\ntype ControllerProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = ComponentProps<typeof RHFController<TFieldValues, TName>>\n\nfunction Controller<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({ name, ...rest }: ControllerProps<TFieldValues, TName>) {\n const stepContext = useStep()\n\n useEffect(() => {\n if (stepContext && stepContext?.registrationKey !== 0) {\n stepContext.registerField(name)\n }\n }, [stepContext?.registrationKey])\n\n useEffect(() => {\n if (stepContext?.step !== undefined) {\n stepContext?.rebuildSteps()\n }\n return () => {\n stepContext?.rebuildSteps()\n }\n }, [])\n\n return <RHFController name={name} {...rest} />\n}\n\nController.displayName = 'Controller'\n\nexport { Controller }\nexport type { ControllerProps, ControllerRenderArgs }\n","import { useEffect } from 'react'\nimport {\n type Control,\n type FieldPath,\n type FieldValues,\n type UseControllerProps,\n type UseControllerReturn,\n useController as useRHFController,\n} from 'react-hook-form'\n\nimport { useStep } from './step'\n\nfunction useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(props: UseControllerProps<TFieldValues, TName>): UseControllerReturn<TFieldValues, TName> {\n const stepContext = useStep()\n\n useEffect(() => {\n if (stepContext && stepContext?.registrationKey !== 0) {\n stepContext.registerField(props.name)\n }\n }, [stepContext?.registrationKey])\n\n useEffect(() => {\n if (stepContext?.step !== undefined) {\n stepContext?.rebuildSteps()\n }\n return () => {\n stepContext?.rebuildSteps()\n }\n }, [])\n\n return useRHFController({ ...props })\n}\n\nexport { useController }\n"]}
|