claude-code/components/wizard/WizardProvider.tsx

213 lines
18 KiB
TypeScript
Raw Permalink Normal View History

import { c as _c } from "react/compiler-runtime";
import React, { createContext, type ReactNode, useCallback, useEffect, useMemo, useState } from 'react';
import { useExitOnCtrlCDWithKeybindings } from '../../hooks/useExitOnCtrlCDWithKeybindings.js';
import type { WizardContextValue, WizardProviderProps } from './types.js';
// Use any here for the context since it will be cast properly when used
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const WizardContext = createContext<WizardContextValue<any> | null>(null);
export function WizardProvider(t0) {
const $ = _c(38);
const {
steps,
initialData: t1,
onComplete,
onCancel,
children,
title,
showStepCounter: t2
} = t0;
let t3;
if ($[0] !== t1) {
t3 = t1 === undefined ? {} as T : t1;
$[0] = t1;
$[1] = t3;
} else {
t3 = $[1];
}
const initialData = t3;
const showStepCounter = t2 === undefined ? true : t2;
const [currentStepIndex, setCurrentStepIndex] = useState(0);
const [wizardData, setWizardData] = useState(initialData);
const [isCompleted, setIsCompleted] = useState(false);
let t4;
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
t4 = [];
$[2] = t4;
} else {
t4 = $[2];
}
const [navigationHistory, setNavigationHistory] = useState(t4);
useExitOnCtrlCDWithKeybindings();
let t5;
let t6;
if ($[3] !== isCompleted || $[4] !== onComplete || $[5] !== wizardData) {
t5 = () => {
if (isCompleted) {
setNavigationHistory([]);
onComplete(wizardData);
}
};
t6 = [isCompleted, wizardData, onComplete];
$[3] = isCompleted;
$[4] = onComplete;
$[5] = wizardData;
$[6] = t5;
$[7] = t6;
} else {
t5 = $[6];
t6 = $[7];
}
useEffect(t5, t6);
let t7;
if ($[8] !== currentStepIndex || $[9] !== navigationHistory || $[10] !== steps.length) {
t7 = () => {
if (currentStepIndex < steps.length - 1) {
if (navigationHistory.length > 0) {
setNavigationHistory(prev => [...prev, currentStepIndex]);
}
setCurrentStepIndex(_temp);
} else {
setIsCompleted(true);
}
};
$[8] = currentStepIndex;
$[9] = navigationHistory;
$[10] = steps.length;
$[11] = t7;
} else {
t7 = $[11];
}
const goNext = t7;
let t8;
if ($[12] !== currentStepIndex || $[13] !== navigationHistory || $[14] !== onCancel) {
t8 = () => {
if (navigationHistory.length > 0) {
const previousStep = navigationHistory[navigationHistory.length - 1];
if (previousStep !== undefined) {
setNavigationHistory(_temp2);
setCurrentStepIndex(previousStep);
}
} else {
if (currentStepIndex > 0) {
setCurrentStepIndex(_temp3);
} else {
if (onCancel) {
onCancel();
}
}
}
};
$[12] = currentStepIndex;
$[13] = navigationHistory;
$[14] = onCancel;
$[15] = t8;
} else {
t8 = $[15];
}
const goBack = t8;
let t9;
if ($[16] !== currentStepIndex || $[17] !== steps.length) {
t9 = index => {
if (index >= 0 && index < steps.length) {
setNavigationHistory(prev_3 => [...prev_3, currentStepIndex]);
setCurrentStepIndex(index);
}
};
$[16] = currentStepIndex;
$[17] = steps.length;
$[18] = t9;
} else {
t9 = $[18];
}
const goToStep = t9;
let t10;
if ($[19] !== onCancel) {
t10 = () => {
setNavigationHistory([]);
if (onCancel) {
onCancel();
}
};
$[19] = onCancel;
$[20] = t10;
} else {
t10 = $[20];
}
const cancel = t10;
let t11;
if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
t11 = updates => {
setWizardData(prev_4 => ({
...prev_4,
...updates
}));
};
$[21] = t11;
} else {
t11 = $[21];
}
const updateWizardData = t11;
let t12;
if ($[22] !== cancel || $[23] !== currentStepIndex || $[24] !== goBack || $[25] !== goNext || $[26] !== goToStep || $[27] !== showStepCounter || $[28] !== steps.length || $[29] !== title || $[30] !== wizardData) {
t12 = {
currentStepIndex,
totalSteps: steps.length,
wizardData,
setWizardData,
updateWizardData,
goNext,
goBack,
goToStep,
cancel,
title,
showStepCounter
};
$[22] = cancel;
$[23] = currentStepIndex;
$[24] = goBack;
$[25] = goNext;
$[26] = goToStep;
$[27] = showStepCounter;
$[28] = steps.length;
$[29] = title;
$[30] = wizardData;
$[31] = t12;
} else {
t12 = $[31];
}
const contextValue = t12;
const CurrentStepComponent = steps[currentStepIndex];
if (!CurrentStepComponent || isCompleted) {
return null;
}
let t13;
if ($[32] !== CurrentStepComponent || $[33] !== children) {
t13 = children || <CurrentStepComponent />;
$[32] = CurrentStepComponent;
$[33] = children;
$[34] = t13;
} else {
t13 = $[34];
}
let t14;
if ($[35] !== contextValue || $[36] !== t13) {
t14 = <WizardContext.Provider value={contextValue}>{t13}</WizardContext.Provider>;
$[35] = contextValue;
$[36] = t13;
$[37] = t14;
} else {
t14 = $[37];
}
return t14;
}
function _temp3(prev_2) {
return prev_2 - 1;
}
function _temp2(prev_1) {
return prev_1.slice(0, -1);
}
function _temp(prev_0) {
return prev_0 + 1;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJSZWFjdE5vZGUiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyIsIldpemFyZENvbnRleHRWYWx1ZSIsIldpemFyZFByb3ZpZGVyUHJvcHMiLCJXaXphcmRDb250ZXh0IiwiV2l6YXJkUHJvdmlkZXIiLCJ0MCIsIiQiLCJfYyIsInN0ZXBzIiwiaW5pdGlhbERhdGEiLCJ0MSIsIm9uQ29tcGxldGUiLCJvbkNhbmNlbCIsImNoaWxkcmVuIiwidGl0bGUiLCJzaG93U3RlcENvdW50ZXIiLCJ0MiIsInQzIiwidW5kZWZpbmVkIiwiVCIsImN1cnJlbnRTdGVwSW5kZXgiLCJzZXRDdXJyZW50U3RlcEluZGV4Iiwid2l6YXJkRGF0YSIsInNldFdpemFyZERhdGEiLCJpc0NvbXBsZXRlZCIsInNldElzQ29tcGxldGVkIiwidDQiLCJTeW1ib2wiLCJmb3IiLCJuYXZpZ2F0aW9uSGlzdG9yeSIsInNldE5hdmlnYXRpb25IaXN0b3J5IiwidDUiLCJ0NiIsInQ3IiwibGVuZ3RoIiwicHJldiIsIl90ZW1wIiwiZ29OZXh0IiwidDgiLCJwcmV2aW91c1N0ZXAiLCJfdGVtcDIiLCJfdGVtcDMiLCJnb0JhY2siLCJ0OSIsImluZGV4IiwicHJldl8zIiwiZ29Ub1N0ZXAiLCJ0MTAiLCJjYW5jZWwiLCJ0MTEiLCJ1cGRhdGVzIiwicHJldl80IiwidXBkYXRlV2l6YXJkRGF0YSIsInQxMiIsInRvdGFsU3RlcHMiLCJjb250ZXh0VmFsdWUiLCJDdXJyZW50U3RlcENvbXBvbmVudCIsInQxMyIsInQxNCIsInByZXZfMiIsInByZXZfMSIsInNsaWNlIiwicHJldl8wIl0sInNvdXJjZXMiOlsiV2l6YXJkUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBjcmVhdGVDb250ZXh0LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzLmpzJ1xuaW1wb3J0IHR5cGUgeyBXaXphcmRDb250ZXh0VmFsdWUsIFdpemFyZFByb3ZpZGVyUHJvcHMgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG4vLyBVc2UgYW55IGhlcmUgZm9yIHRoZSBjb250ZXh0IHNpbmNlIGl0IHdpbGwgYmUgY2FzdCBwcm9wZXJseSB3aGVuIHVzZWRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgV2l6YXJkQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8V2l6YXJkQ29udGV4dFZhbHVlPGFueT4gfCBudWxsPihudWxsKVxuXG5leHBvcnQgZnVuY3Rpb24gV2l6YXJkUHJvdmlkZXI8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7XG4gIHN0ZXBzLFxuICBpbml0aWFsRGF0YSA9IHt9IGFzIFQsXG4gIG9uQ29tcGxldGUsXG4gIG9uQ2FuY2VsLFxuICBjaGlsZHJlbixcbiAgdGl0bGUsXG4gIHNob3dTdGVwQ291bnRlciA9IHRydWUsXG59OiBXaXphcmRQcm92aWRlclByb3BzPFQ+KTogUmVhY3ROb2RlIHtcbiAgY29uc3QgW2N1cnJlbnRTdGVwSW5kZXgsIHNldEN1cnJlbnRTdGVwSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3dpemFyZERhdGEsIHNldFdpemFyZERhdGFdID0gdXNlU3RhdGU8VD4oaW5pdGlhbERhdGEpXG4gIGNvbnN0IFtpc0NvbXBsZXRlZCwgc2V0SXNDb21wbGV0ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtuYXZpZ2F0aW9uSGlzdG9yeSwgc2V0TmF2aWdhdGlvbkhpc3RvcnldID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKVxuXG4gIHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncygpXG5cbiAgLy8gSGFuZGxlIGNvbXBsZXRpb24gaW4gdXNlRWZmZWN0IHRvIGF2b2lkIHVwZGF0aW5nIHBhcmVudCBkdXJpbmcgcmVuZGVyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzQ29tcGxldGVkKSB7XG4gICAgICBzZXROYXZpZ2F0aW9uSGlzdG9yeShbXSlcbiAgICAgIHZvaWQgb25Db21wbGV0ZSh3aXphcmREYXRhKVxuICAgIH1cbiAgfSwgW2lzQ29tcGxldGVkLCB3aXphcmREYXRhLCBvbkNvbXBsZXRlXSlcblxuICBjb25zdCBnb05leHQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGN1cnJlbnRTdGVwSW5kZXggPCBzdGVwcy5sZW5ndGggLSAxKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIGhpc3RvcnkgKG5vbi1saW5lYXIgZmxvdyksIGFkZCBjdXJyZW50IHN0ZXAgdG8gaXRcbiAgICAgIGlmIChuYXZpZ2F0aW9uSGlzdG9yeS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHNldE5hdmlnYXRpb25IaXN0b3J5KHByZXYgPT4gWy4uLnByZXYsIGN1cnJlbnRTdGVwSW5kZXhdKVxuICAgICAgfVxuXG4gICAgICBzZXRDdXJyZW50U3RlcEluZGV4KHByZXYgPT4gcHJldiArIDEpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE1hcmsgYXMgY29tcGxldGVkLCB3aGljaCB3aWxsIHRyaWdnZXIgdXNlRWZmZWN0XG4gICAgICBzZXRJc0NvbXBsZXRlZCh0cnVlKVxuICAgIH1cbiAgfSwgW2N1cnJlbnRTdGVwSW5kZXgsIHN0ZXBzLmxlbmd0aCwgbmF2aWdhdGlvbkhpc3RvcnldKVxuXG4gIGNvbnN0IGdvQmFjayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIG5hdmlnYXRpb24gaGlzdG9yeSB0byB1c2VcbiAgICBpZiAobmF2aWdhdGlvbkhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcHJldmlvdXNTdGVwID0gbmF2aWdhdGlvbkhpc3RvcnlbbmF2aWdhdGlvbkhpc3RvcnkubGVuZ3RoIC0gMV1cbiAgICAgIGlmIChwcmV2aW91c1N0ZXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZXROYXZpZ2F0aW9uSGlzdG9yeShwcmV2ID0+IHByZXYuc2xpY2UoMCwgLTEpKVxuICAgICAgICBzZXRDdXJyZW50U3RlcEluZGV4KHByZXZpb3VzU3RlcClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRTdGVwSW5kZXggPiAwKSB7XG4