/ components / wizard / WizardProvider.tsx
WizardProvider.tsx
  1  import { c as _c } from "react/compiler-runtime";
  2  import React, { createContext, type ReactNode, useCallback, useEffect, useMemo, useState } from 'react';
  3  import { useExitOnCtrlCDWithKeybindings } from '../../hooks/useExitOnCtrlCDWithKeybindings.js';
  4  import type { WizardContextValue, WizardProviderProps } from './types.js';
  5  
  6  // Use any here for the context since it will be cast properly when used
  7  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  8  export const WizardContext = createContext<WizardContextValue<any> | null>(null);
  9  export function WizardProvider(t0) {
 10    const $ = _c(38);
 11    const {
 12      steps,
 13      initialData: t1,
 14      onComplete,
 15      onCancel,
 16      children,
 17      title,
 18      showStepCounter: t2
 19    } = t0;
 20    let t3;
 21    if ($[0] !== t1) {
 22      t3 = t1 === undefined ? {} as T : t1;
 23      $[0] = t1;
 24      $[1] = t3;
 25    } else {
 26      t3 = $[1];
 27    }
 28    const initialData = t3;
 29    const showStepCounter = t2 === undefined ? true : t2;
 30    const [currentStepIndex, setCurrentStepIndex] = useState(0);
 31    const [wizardData, setWizardData] = useState(initialData);
 32    const [isCompleted, setIsCompleted] = useState(false);
 33    let t4;
 34    if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
 35      t4 = [];
 36      $[2] = t4;
 37    } else {
 38      t4 = $[2];
 39    }
 40    const [navigationHistory, setNavigationHistory] = useState(t4);
 41    useExitOnCtrlCDWithKeybindings();
 42    let t5;
 43    let t6;
 44    if ($[3] !== isCompleted || $[4] !== onComplete || $[5] !== wizardData) {
 45      t5 = () => {
 46        if (isCompleted) {
 47          setNavigationHistory([]);
 48          onComplete(wizardData);
 49        }
 50      };
 51      t6 = [isCompleted, wizardData, onComplete];
 52      $[3] = isCompleted;
 53      $[4] = onComplete;
 54      $[5] = wizardData;
 55      $[6] = t5;
 56      $[7] = t6;
 57    } else {
 58      t5 = $[6];
 59      t6 = $[7];
 60    }
 61    useEffect(t5, t6);
 62    let t7;
 63    if ($[8] !== currentStepIndex || $[9] !== navigationHistory || $[10] !== steps.length) {
 64      t7 = () => {
 65        if (currentStepIndex < steps.length - 1) {
 66          if (navigationHistory.length > 0) {
 67            setNavigationHistory(prev => [...prev, currentStepIndex]);
 68          }
 69          setCurrentStepIndex(_temp);
 70        } else {
 71          setIsCompleted(true);
 72        }
 73      };
 74      $[8] = currentStepIndex;
 75      $[9] = navigationHistory;
 76      $[10] = steps.length;
 77      $[11] = t7;
 78    } else {
 79      t7 = $[11];
 80    }
 81    const goNext = t7;
 82    let t8;
 83    if ($[12] !== currentStepIndex || $[13] !== navigationHistory || $[14] !== onCancel) {
 84      t8 = () => {
 85        if (navigationHistory.length > 0) {
 86          const previousStep = navigationHistory[navigationHistory.length - 1];
 87          if (previousStep !== undefined) {
 88            setNavigationHistory(_temp2);
 89            setCurrentStepIndex(previousStep);
 90          }
 91        } else {
 92          if (currentStepIndex > 0) {
 93            setCurrentStepIndex(_temp3);
 94          } else {
 95            if (onCancel) {
 96              onCancel();
 97            }
 98          }
 99        }
100      };
101      $[12] = currentStepIndex;
102      $[13] = navigationHistory;
103      $[14] = onCancel;
104      $[15] = t8;
105    } else {
106      t8 = $[15];
107    }
108    const goBack = t8;
109    let t9;
110    if ($[16] !== currentStepIndex || $[17] !== steps.length) {
111      t9 = index => {
112        if (index >= 0 && index < steps.length) {
113          setNavigationHistory(prev_3 => [...prev_3, currentStepIndex]);
114          setCurrentStepIndex(index);
115        }
116      };
117      $[16] = currentStepIndex;
118      $[17] = steps.length;
119      $[18] = t9;
120    } else {
121      t9 = $[18];
122    }
123    const goToStep = t9;
124    let t10;
125    if ($[19] !== onCancel) {
126      t10 = () => {
127        setNavigationHistory([]);
128        if (onCancel) {
129          onCancel();
130        }
131      };
132      $[19] = onCancel;
133      $[20] = t10;
134    } else {
135      t10 = $[20];
136    }
137    const cancel = t10;
138    let t11;
139    if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
140      t11 = updates => {
141        setWizardData(prev_4 => ({
142          ...prev_4,
143          ...updates
144        }));
145      };
146      $[21] = t11;
147    } else {
148      t11 = $[21];
149    }
150    const updateWizardData = t11;
151    let t12;
152    if ($[22] !== cancel || $[23] !== currentStepIndex || $[24] !== goBack || $[25] !== goNext || $[26] !== goToStep || $[27] !== showStepCounter || $[28] !== steps.length || $[29] !== title || $[30] !== wizardData) {
153      t12 = {
154        currentStepIndex,
155        totalSteps: steps.length,
156        wizardData,
157        setWizardData,
158        updateWizardData,
159        goNext,
160        goBack,
161        goToStep,
162        cancel,
163        title,
164        showStepCounter
165      };
166      $[22] = cancel;
167      $[23] = currentStepIndex;
168      $[24] = goBack;
169      $[25] = goNext;
170      $[26] = goToStep;
171      $[27] = showStepCounter;
172      $[28] = steps.length;
173      $[29] = title;
174      $[30] = wizardData;
175      $[31] = t12;
176    } else {
177      t12 = $[31];
178    }
179    const contextValue = t12;
180    const CurrentStepComponent = steps[currentStepIndex];
181    if (!CurrentStepComponent || isCompleted) {
182      return null;
183    }
184    let t13;
185    if ($[32] !== CurrentStepComponent || $[33] !== children) {
186      t13 = children || <CurrentStepComponent />;
187      $[32] = CurrentStepComponent;
188      $[33] = children;
189      $[34] = t13;
190    } else {
191      t13 = $[34];
192    }
193    let t14;
194    if ($[35] !== contextValue || $[36] !== t13) {
195      t14 = <WizardContext.Provider value={contextValue}>{t13}</WizardContext.Provider>;
196      $[35] = contextValue;
197      $[36] = t13;
198      $[37] = t14;
199    } else {
200      t14 = $[37];
201    }
202    return t14;
203  }
204  function _temp3(prev_2) {
205    return prev_2 - 1;
206  }
207  function _temp2(prev_1) {
208    return prev_1.slice(0, -1);
209  }
210  function _temp(prev_0) {
211    return prev_0 + 1;
212  }
213  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJSZWFjdE5vZGUiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyIsIldpemFyZENvbnRleHRWYWx1ZSIsIldpemFyZFByb3ZpZGVyUHJvcHMiLCJXaXphcmRDb250ZXh0IiwiV2l6YXJkUHJvdmlkZXIiLCJ0MCIsIiQiLCJfYyIsInN0ZXBzIiwiaW5pdGlhbERhdGEiLCJ0MSIsIm9uQ29tcGxldGUiLCJvbkNhbmNlbCIsImNoaWxkcmVuIiwidGl0bGUiLCJzaG93U3RlcENvdW50ZXIiLCJ0MiIsInQzIiwidW5kZWZpbmVkIiwiVCIsImN1cnJlbnRTdGVwSW5kZXgiLCJzZXRDdXJyZW50U3RlcEluZGV4Iiwid2l6YXJkRGF0YSIsInNldFdpemFyZERhdGEiLCJpc0NvbXBsZXRlZCIsInNldElzQ29tcGxldGVkIiwidDQiLCJTeW1ib2wiLCJmb3IiLCJuYXZpZ2F0aW9uSGlzdG9yeSIsInNldE5hdmlnYXRpb25IaXN0b3J5IiwidDUiLCJ0NiIsInQ3IiwibGVuZ3RoIiwicHJldiIsIl90ZW1wIiwiZ29OZXh0IiwidDgiLCJwcmV2aW91c1N0ZXAiLCJfdGVtcDIiLCJfdGVtcDMiLCJnb0JhY2siLCJ0OSIsImluZGV4IiwicHJldl8zIiwiZ29Ub1N0ZXAiLCJ0MTAiLCJjYW5jZWwiLCJ0MTEiLCJ1cGRhdGVzIiwicHJldl80IiwidXBkYXRlV2l6YXJkRGF0YSIsInQxMiIsInRvdGFsU3RlcHMiLCJjb250ZXh0VmFsdWUiLCJDdXJyZW50U3RlcENvbXBvbmVudCIsInQxMyIsInQxNCIsInByZXZfMiIsInByZXZfMSIsInNsaWNlIiwicHJldl8wIl0sInNvdXJjZXMiOlsiV2l6YXJkUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVDb250ZXh0LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzLmpzJ1xuaW1wb3J0IHR5cGUgeyBXaXphcmRDb250ZXh0VmFsdWUsIFdpemFyZFByb3ZpZGVyUHJvcHMgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG4vLyBVc2UgYW55IGhlcmUgZm9yIHRoZSBjb250ZXh0IHNpbmNlIGl0IHdpbGwgYmUgY2FzdCBwcm9wZXJseSB3aGVuIHVzZWRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgV2l6YXJkQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8V2l6YXJkQ29udGV4dFZhbHVlPGFueT4gfCBudWxsPihudWxsKVxuXG5leHBvcnQgZnVuY3Rpb24gV2l6YXJkUHJvdmlkZXI8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7XG4gIHN0ZXBzLFxuICBpbml0aWFsRGF0YSA9IHt9IGFzIFQsXG4gIG9uQ29tcGxldGUsXG4gIG9uQ2FuY2VsLFxuICBjaGlsZHJlbixcbiAgdGl0bGUsXG4gIHNob3dTdGVwQ291bnRlciA9IHRydWUsXG59OiBXaXphcmRQcm92aWRlclByb3BzPFQ+KTogUmVhY3ROb2RlIHtcbiAgY29uc3QgW2N1cnJlbnRTdGVwSW5kZXgsIHNldEN1cnJlbnRTdGVwSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3dpemFyZERhdGEsIHNldFdpemFyZERhdGFdID0gdXNlU3RhdGU8VD4oaW5pdGlhbERhdGEpXG4gIGNvbnN0IFtpc0NvbXBsZXRlZCwgc2V0SXNDb21wbGV0ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtuYXZpZ2F0aW9uSGlzdG9yeSwgc2V0TmF2aWdhdGlvbkhpc3RvcnldID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKVxuXG4gIHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncygpXG5cbiAgLy8gSGFuZGxlIGNvbXBsZXRpb24gaW4gdXNlRWZmZWN0IHRvIGF2b2lkIHVwZGF0aW5nIHBhcmVudCBkdXJpbmcgcmVuZGVyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzQ29tcGxldGVkKSB7XG4gICAgICBzZXROYXZpZ2F0aW9uSGlzdG9yeShbXSlcbiAgICAgIHZvaWQgb25Db21wbGV0ZSh3aXphcmREYXRhKVxuICAgIH1cbiAgfSwgW2lzQ29tcGxldGVkLCB3aXphcmREYXRhLCBvbkNvbXBsZXRlXSlcblxuICBjb25zdCBnb05leHQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRTdGVwSW5kZXggPCBzdGVwcy5sZW5ndGggLSAxKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIGhpc3RvcnkgKG5vbi1saW5lYXIgZmxvdyksIGFkZCBjdXJyZW50IHN0ZXAgdG8gaXRcbiAgICAgIGlmIChuYXZpZ2F0aW9uSGlzdG9yeS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHNldE5hdmlnYXRpb25IaXN0b3J5KHByZXYgPT4gWy4uLnByZXYsIGN1cnJlbnRTdGVwSW5kZXhdKVxuICAgICAgfVxuXG4gICAgICBzZXRDdXJyZW50U3RlcEluZGV4KHByZXYgPT4gcHJldiArIDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE1hcmsgYXMgY29tcGxldGVkLCB3aGljaCB3aWxsIHRyaWdnZXIgdXNlRWZmZWN0XG4gICAgICBzZXRJc0NvbXBsZXRlZCh0cnVlKVxuICAgIH1cbiAgfSwgW2N1cnJlbnRTdGVwSW5kZXgsIHN0ZXBzLmxlbmd0aCwgbmF2aWdhdGlvbkhpc3RvcnldKVxuXG4gIGNvbnN0IGdvQmFjayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIG5hdmlnYXRpb24gaGlzdG9yeSB0byB1c2VcbiAgICBpZiAobmF2aWdhdGlvbkhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcHJldmlvdXNTdGVwID0gbmF2aWdhdGlvbkhpc3RvcnlbbmF2aWdhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMV1cbiAgICAgIGlmIChwcmV2aW91c1N0ZXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZXROYXZpZ2F0aW9uSGlzdG9yeShwcmV2ID0+IHByZXYuc2xpY2UoMCwgLTEpKVxuICAgICAgICBzZXRDdXJyZW50U3RlcEluZGV4KHByZXZpb3VzU3RlcClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRTdGVwSW5kZXggPiAwKSB7XG4gICAgICAvLyBGYWxsYmFjayB0byBzaW1wbGUgZGVjcmVtZW50IGlmIG5vIGhpc3RvcnlcbiAgICAgIHNldEN1cnJlbnRTdGVwSW5kZXgocHJldiA9PiBwcmV2IC0gMSlcbiAgICB9IGVsc2UgaWYgKG9uQ2FuY2VsKSB7XG4gICAgICBvbkNhbmNlbCgpXG4gICAgfVxuICB9LCBbY3VycmVudFN0ZXBJbmRleCwgbmF2aWdhdGlvbkhpc3RvcnksIG9uQ2FuY2VsXSlcblxuICBjb25zdCBnb1RvU3RlcCA9IHVzZUNhbGxiYWNrKFxuICAgIChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHN0ZXBzLmxlbmd0aCkge1xuICAgICAgICAvLyBQdXNoIGN1cnJlbnQgc3RlcCB0byBoaXN0b3J5IGJlZm9yZSBqdW1waW5nXG4gICAgICAgIHNldE5hdmlnYXRpb25IaXN0b3J5KHByZXYgPT4gWy4uLnByZXYsIGN1cnJlbnRTdGVwSW5kZXhdKVxuICAgICAgICBzZXRDdXJyZW50U3RlcEluZGV4KGluZGV4KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2N1cnJlbnRTdGVwSW5kZXgsIHN0ZXBzLmxlbmd0aF0sXG4gIClcblxuICBjb25zdCBjYW5jZWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0TmF2aWdhdGlvbkhpc3RvcnkoW10pXG4gICAgaWYgKG9uQ2FuY2VsKSB7XG4gICAgICBvbkNhbmNlbCgpXG4gICAgfVxuICB9LCBbb25DYW5jZWxdKVxuXG4gIGNvbnN0IHVwZGF0ZVdpemFyZERhdGEgPSB1c2VDYWxsYmFjaygodXBkYXRlczogUGFydGlhbDxUPikgPT4ge1xuICAgIHNldFdpemFyZERhdGEocHJldiA9PiAoeyAuLi5wcmV2LCAuLi51cGRhdGVzIH0pKVxuICB9LCBbXSlcblxuICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vPFdpemFyZENvbnRleHRWYWx1ZTxUPj4oXG4gICAgKCkgPT4gKHtcbiAgICAgIGN1cnJlbnRTdGVwSW5kZXgsXG4gICAgICB0b3RhbFN0ZXBzOiBzdGVwcy5sZW5ndGgsXG4gICAgICB3aXphcmREYXRhLFxuICAgICAgc2V0V2l6YXJkRGF0YSxcbiAgICAgIHVwZGF0ZVdpemFyZERhdGEsXG4gICAgICBnb05leHQsXG4gICAgICBnb0JhY2ssXG4gICAgICBnb1RvU3RlcCxcbiAgICAgIGNhbmNlbCxcbiAgICAgIHRpdGxlLFxuICAgICAgc2hvd1N0ZXBDb3VudGVyLFxuICAgIH0pLFxuICAgIFtcbiAgICAgIGN1cnJlbnRTdGVwSW5kZXgsXG4gICAgICBzdGVwcy5sZW5ndGgsXG4gICAgICB3aXphcmREYXRhLFxuICAgICAgdXBkYXRlV2l6YXJkRGF0YSxcbiAgICAgIGdvTmV4dCxcbiAgICAgIGdvQmFjayxcbiAgICAgIGdvVG9TdGVwLFxuICAgICAgY2FuY2VsLFxuICAgICAgdGl0bGUsXG4gICAgICBzaG93U3RlcENvdW50ZXIsXG4gICAgXSxcbiAgKVxuXG4gIGNvbnN0IEN1cnJlbnRTdGVwQ29tcG9uZW50ID0gc3RlcHNbY3VycmVudFN0ZXBJbmRleF1cblxuICBpZiAoIUN1cnJlbnRTdGVwQ29tcG9uZW50IHx8IGlzQ29tcGxldGVkKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFdpemFyZENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICB7Y2hpbGRyZW4gfHwgPEN1cnJlbnRTdGVwQ29tcG9uZW50IC8+fVxuICAgIDwvV2l6YXJkQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUNWQyxhQUFhLEVBQ2IsS0FBS0MsU0FBUyxFQUNkQyxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxRQUFRLFFBQ0gsT0FBTztBQUNkLFNBQVNDLDhCQUE4QixRQUFRLCtDQUErQztBQUM5RixjQUFjQyxrQkFBa0IsRUFBRUMsbUJBQW1CLFFBQVEsWUFBWTs7QUFFekU7QUFDQTtBQUNBLE9BQU8sTUFBTUMsYUFBYSxHQUFHVCxhQUFhLENBQUNPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztBQUVoRixPQUFPLFNBQUFHLGVBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBMkQ7SUFBQUMsS0FBQTtJQUFBQyxXQUFBLEVBQUFDLEVBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFFBQUE7SUFBQUMsS0FBQTtJQUFBQyxlQUFBLEVBQUFDO0VBQUEsSUFBQVgsRUFRekM7RUFBQSxJQUFBWSxFQUFBO0VBQUEsSUFBQVgsQ0FBQSxRQUFBSSxFQUFBO0lBTnZCTyxFQUFBLEdBQUFQLEVBQXFCLEtBQXJCUSxTQUFxQixHQUFQLENBQUMsQ0FBQyxJQUFJQyxDQUFDLEdBQXJCVCxFQUFxQjtJQUFBSixDQUFBLE1BQUFJLEVBQUE7SUFBQUosQ0FBQSxNQUFBVyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBWCxDQUFBO0VBQUE7RUFBckIsTUFBQUcsV0FBQSxHQUFBUSxFQUFxQjtFQUtyQixNQUFBRixlQUFBLEdBQUFDLEVBQXNCLEtBQXRCRSxTQUFzQixHQUF0QixJQUFzQixHQUF0QkYsRUFBc0I7RUFFdEIsT0FBQUksZ0JBQUEsRUFBQUMsbUJBQUEs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