fix(GenericNode/index.tsx): import alertContext from correct file path to fix compilation error

feat(alertContext.tsx): add modalContextOpen state and setModalContextOpen function to manage modal context open state
fix(genericModal/index.tsx): add useEffect to update modalContextOpen state when modalOpen prop changes
feat(typesContext/index.ts): add modalContextOpen state and setModalContextOpen function to typesContext
This commit is contained in:
cristhianzl 2023-12-08 19:45:25 -03:00
commit c6eb90c00c
5 changed files with 22 additions and 4 deletions

View file

@ -7,13 +7,18 @@ import InputComponent from "../../components/inputComponent";
import { Textarea } from "../../components/ui/textarea";
import { priorityFields } from "../../constants/constants";
import { useSSE } from "../../contexts/SSEContext";
import { alertContext } from "../../contexts/alertContext";
import { FlowsContext } from "../../contexts/flowsContext";
import { typesContext } from "../../contexts/typesContext";
import { undoRedoContext } from "../../contexts/undoRedoContext";
import NodeToolbarComponent from "../../pages/FlowPage/components/nodeToolbarComponent";
import { validationStatusType } from "../../types/components";
import { NodeDataType } from "../../types/flow";
import { handleKeyDown, scapedJSONStringfy } from "../../utils/reactflowUtils";
import {
cleanEdges,
handleKeyDown,
scapedJSONStringfy,
} from "../../utils/reactflowUtils";
import { nodeColors, nodeIconsLucide } from "../../utils/styleUtils";
import { classNames, getFieldTitle } from "../../utils/utils";
import ParameterComponent from "./components/parameterComponent";
@ -45,6 +50,7 @@ export default function GenericNode({
useState<validationStatusType | null>(null);
const [handles, setHandles] = useState<boolean[] | []>([]);
let numberOfInputs: boolean[] = [];
const { modalContextOpen } = useContext(alertContext);
const { takeSnapshot } = useContext(undoRedoContext);
@ -83,7 +89,7 @@ export default function GenericNode({
// State for outline color
const { sseData, isBuilding } = useSSE();
/* useEffect(() => {
useEffect(() => {
let flow = flows.find((flow) => flow.id === tabId);
if (reactFlowInstance && flow && flow.data) {
cleanEdges({
@ -99,7 +105,7 @@ export default function GenericNode({
updateFlow(flow);
}
countHandles();
}, [data]); */
}, [modalContextOpen]);
useEffect(() => {
setNodeDescription(data.node!.description);

View file

@ -26,6 +26,8 @@ const initialValue: alertContextType = {
pushNotificationList: () => {},
clearNotificationList: () => {},
removeFromNotificationList: () => {},
modalContextOpen: false,
setModalContextOpen: (open: boolean) => {},
};
export const alertContext = createContext<alertContextType>(initialValue);
@ -49,6 +51,7 @@ export function AlertProvider({ children }: { children: ReactNode }) {
const [notificationCenter, setNotificationCenter] = useState(false);
const [notificationList, setNotificationList] = useState<AlertItemType[]>([]);
const [isTweakPage, setIsTweakPage] = useState<boolean>(false);
const [modalContextOpen, setModalContextOpen] = useState<boolean>(false);
const pushNotificationList = (notification: AlertItemType) => {
setNotificationList((old) => {
let newNotificationList = _.cloneDeep(old);
@ -141,6 +144,8 @@ export function AlertProvider({ children }: { children: ReactNode }) {
setSuccessData,
successOpen,
setSuccessOpen,
modalContextOpen,
setModalContextOpen,
}}
>
{children}

View file

@ -40,7 +40,7 @@ export default function GenericModal({
const [inputValue, setInputValue] = useState(value);
const [isEdit, setIsEdit] = useState(true);
const [wordsHighlight, setWordsHighlight] = useState<string[]>([]);
const { setErrorData, setSuccessData, setNoticeData } =
const { setErrorData, setSuccessData, setNoticeData, setModalContextOpen } =
useContext(alertContext);
const ref = useRef();
const divRef = useRef(null);
@ -160,6 +160,10 @@ export default function GenericModal({
});
}
useEffect(() => {
setModalContextOpen(modalOpen);
}, [modalOpen]);
return (
<BaseModal
onChangeOpenModal={(open) => {}}

View file

@ -54,6 +54,7 @@ export type ParameterComponentType = {
proxy?: { field: string; id: string };
showNode?: boolean;
index?: string;
onCloseModal?: (close: boolean) => void;
};
export type InputListComponentType = {
value: string[];

View file

@ -44,6 +44,8 @@ export type alertContextType = {
removeFromNotificationList: (index: string) => void;
loading: boolean;
setLoading: (newState: boolean) => void;
modalContextOpen: boolean | null;
setModalContextOpen: (newState: boolean) => void;
};
export type darkContextType = {