import { createContext, FC, useContext, useState } from "react"; import { BuilderMethod } from "../../types"; export interface BuilderContextType { builderMethod: BuilderMethod | null; isCharacterLoading: boolean; isCharacterLoaded: boolean; pdfUrl: string | null; setBuilderMethod: (method: BuilderMethod) => void; suggestedNames: string[]; } export const BuilderContext = createContext({ builderMethod: null, isCharacterLoading: true, isCharacterLoaded: false, pdfUrl: null, setBuilderMethod: () => {}, suggestedNames: [], }); export const BuilderProvider: FC = ({ children }) => { const [builderMethod, setBuilderMethodState] = useState( null ); const [isCharacterLoading, setIsCharacterLoading] = useState(true); const [isCharacterLoaded, setIsCharacterLoaded] = useState(false); const [pdfUrl, setPdfUrl] = useState(null); const [suggestedNames, setSuggestedNames] = useState([]); const setBuilderMethod = async (method: BuilderMethod) => { // Handle setting the builder method via fetch }; // const response = yield call(ApiRequests.getCharacterRuleData, { // params: { v: appConfig.version }, // }); // const data: UnpackMakeApiResponseData< // typeof ApiRequests.getCharacterRuleData // > | null = ApiAdapterUtils.getResponseData(response); // if (data !== null) { // yield put(ruleDataActions.dataSet(data)); // } // yield put(builderActions.builderMethodSetCommit(action.payload)); return ( {children} ); }; export const useBuilderContext = () => { return useContext(BuilderContext); };