feat: init

This commit is contained in:
Morten Olsen
2023-09-06 10:56:36 +02:00
commit 1f3401a961
55 changed files with 6098 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
import { createContext, useCallback, useMemo } from 'react';
type Vars = Record<string, unknown>;
type RunnerContextValue = {
vars: Vars;
run: (fn: (vars: Vars) => Promise<void>) => Promise<void>;
};
type RunnerProviderProps = {
vars?: Vars;
children: React.ReactNode;
};
const RunnerContext = createContext<RunnerContextValue>({
vars: {},
run: async () => {},
});
const RunnerProvider: React.FC<RunnerProviderProps> = ({
vars = {},
children,
}) => {
const currentVars = useMemo(() => vars, [vars]);
const run = useCallback(
async (fn: (vars: Vars) => Promise<void>) => {
const output = await fn(currentVars);
return output;
},
[currentVars],
);
return (
<RunnerContext.Provider value={{ vars, run }}>
{children}
</RunnerContext.Provider>
);
};
export type { Vars };
export { RunnerContext, RunnerProvider };