Fixed types of tabsState

This commit is contained in:
Lucas Oliveira 2023-12-30 21:02:13 -03:00
commit 3241c795ad
7 changed files with 35 additions and 38 deletions

View file

@ -98,7 +98,6 @@ export default function BuildTrigger({
// If the event is a log, log it
setSuccessData({ title: parsedData.log });
} else if (parsedData.input_keys !== undefined) {
//@ts-ignore
setTabsState((old: FlowsState) => {
return {
...old,

View file

@ -91,7 +91,7 @@ const FlowsContextInitialValue: FlowsContextType = {
isPending: false,
setPending: (pending: boolean) => {},
tabsState: {},
setTabsState: (state: FlowsState) => {},
setTabsState: () => {},
getNodeId: (nodeType: string) => "",
setTweak: (tweak: any) => {},
getTweak: [],
@ -136,19 +136,17 @@ export function FlowsProvider({ children }: { children: ReactNode }) {
const [edges, setEdgesInternal, onEdgesChangeInternal] = useEdgesState([]);
const setPending =
(pending: boolean) => {
//@ts-ignore
setTabsState((prev: FlowsState) => {
return {
...prev,
[tabId]: {
...prev[tabId],
isPending: pending,
},
};
});
}
const setPending = (pending: boolean) => {
setTabsState((prev: FlowsState) => {
return {
...prev,
[tabId]: {
...prev[tabId],
isPending: pending,
},
};
});
};
const isPending = tabsState[tabId]?.isPending ?? false;
@ -172,7 +170,11 @@ export function FlowsProvider({ children }: { children: ReactNode }) {
let newChange = typeof change === "function" ? change(nodes) : change;
let newEdges = cleanEdges(newChange, edges);
saveCurrentFlow(newChange, newEdges, reactFlowInstance?.getViewport() ?? { zoom: 1, x: 0, y: 0 });
saveCurrentFlow(
newChange,
newEdges,
reactFlowInstance?.getViewport() ?? { zoom: 1, x: 0, y: 0 }
);
setEdgesInternal(newEdges);
setNodesInternal(newChange);
};
@ -200,7 +202,11 @@ export function FlowsProvider({ children }: { children: ReactNode }) {
const setEdges = (change: Edge[] | ((oldState: Edge[]) => Edge[])) => {
let newChange = typeof change === "function" ? change(edges) : change;
saveCurrentFlow(nodes, newChange, reactFlowInstance?.getViewport() ?? { zoom: 1, x: 0, y: 0 });
saveCurrentFlow(
nodes,
newChange,
reactFlowInstance?.getViewport() ?? { zoom: 1, x: 0, y: 0 }
);
setEdgesInternal(newChange);
};
@ -738,7 +744,14 @@ export function FlowsProvider({ children }: { children: ReactNode }) {
let newFlow;
if (!flow) {
const currentFlow = flows.find((flow) => flow.id === tabId)!;
newFlow = { ...currentFlow, data: { nodes, edges, viewport: reactFlowInstance?.getViewport() ?? { zoom: 1, x: 0, y: 0 } } }
newFlow = {
...currentFlow,
data: {
nodes,
edges,
viewport: reactFlowInstance?.getViewport() ?? { zoom: 1, x: 0, y: 0 },
},
};
} else {
newFlow = flow;
}
@ -789,22 +802,13 @@ export function FlowsProvider({ children }: { children: ReactNode }) {
}, []);
function deleteNode(idx: string | Array<string>) {
setEdges((oldEdges) =>
oldEdges.filter((edge) =>
typeof idx === "string"
? edge.source !== idx && edge.target !== idx
: !idx.includes(edge.source) && !idx.includes(edge.target)
)
);
setNodes((oldNodes) =>
oldNodes.filter((node) =>
typeof idx === "string" ? node.id !== idx : !idx.includes(node.id)
)
);
}
function deleteEdge(idx: string | Array<string>) {
setEdges((oldEdges) =>
oldEdges.filter((edge) =>

View file

@ -62,7 +62,7 @@ const EditNodeModal = forwardRef(
const [myData, setMyData] = useState(data);
const { setTabsState, tabId, edges } = useContext(FlowsContext);
const { setPending, tabId, edges } = useContext(FlowsContext);
const { setModalContextOpen } = useContext(alertContext);
function changeAdvanced(n) {
@ -535,7 +535,6 @@ const EditNodeModal = forwardRef(
className="mt-3"
onClick={() => {
data.node = myData.node;
//@ts-ignore
setPending(true);
setOpen(false);
}}

View file

@ -401,7 +401,6 @@ export default function FormModal({
description: flow.description,
chatKey: chatKey!,
});
//@ts-ignore
setTabsState((old: FlowsState) => {
if (!chatKey) return old;
let newTabsState = _.cloneDeep(old);
@ -522,7 +521,6 @@ export default function FormModal({
]
}
onChange={(e) => {
//@ts-ignore
setTabsState((old: FlowsState) => {
let newTabsState = _.cloneDeep(old);
newTabsState[
@ -634,7 +632,6 @@ export default function FormModal({
sendMessage={sendMessage}
setChatValue={(value) => {
setChatValue(value);
//@ts-ignore
setTabsState((old: FlowsState) => {
let newTabsState = _.cloneDeep(old);
newTabsState[id.current].formKeysData.input_keys![

View file

@ -42,7 +42,7 @@ export default function GenericModal({
const [wordsHighlight, setWordsHighlight] = useState<string[]>([]);
const { setErrorData, setSuccessData, setNoticeData, setModalContextOpen } =
useContext(alertContext);
const ref = useRef();
const textRef = useRef<HTMLTextAreaElement>(null);
const divRef = useRef(null);
const divRefPrompt = useRef(null);
@ -228,8 +228,7 @@ export default function GenericModal({
/>
) : type !== TypeModal.PROMPT ? (
<Textarea
//@ts-ignore
ref={ref}
ref={textRef}
className="form-input h-full w-full rounded-lg focus-visible:ring-1"
value={inputValue}
onChange={(event) => {

View file

@ -370,7 +370,6 @@ export default function Page({
}, []);
const onMove = useCallback(() => {
//@ts-ignore
setPending(true);
}, [setPending]);

View file

@ -46,7 +46,7 @@ export type FlowsContextType = {
isPending: boolean;
setPending: (pending: boolean) => void;
tabsState: FlowsState;
setTabsState: (state: FlowsState) => void;
setTabsState: (update: FlowsState | ((oldState: FlowsState) => FlowsState)) => void;
paste: (
selection: { nodes: any; edges: any },
position: { x: number; y: number; paneX?: number; paneY?: number }