removed save on browser application state to prevent bugs and fixed error on star for websockets
This commit is contained in:
parent
5049e59530
commit
3b12a76a65
2 changed files with 65 additions and 46 deletions
|
|
@ -38,7 +38,7 @@ export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
const { setNoticeData } = useContext(alertContext);
|
const { setNoticeData } = useContext(alertContext);
|
||||||
const [tabIndex, setTabIndex] = useState(0);
|
const [tabIndex, setTabIndex] = useState(0);
|
||||||
const [flows, setFlows] = useState<Array<FlowType>>([]);
|
const [flows, setFlows] = useState<Array<FlowType>>([]);
|
||||||
const [id, setId] = useState("");
|
const [id, setId] = useState(uuidv4());
|
||||||
const { templates } = useContext(typesContext);
|
const { templates } = useContext(typesContext);
|
||||||
|
|
||||||
const newNodeId = useRef(0);
|
const newNodeId = useRef(0);
|
||||||
|
|
@ -47,46 +47,50 @@ export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
return newNodeId.current;
|
return newNodeId.current;
|
||||||
}
|
}
|
||||||
function save() {
|
function save() {
|
||||||
if (flows.length !== 0)
|
//disabled until flows can be saved on local storage again without bugs
|
||||||
window.localStorage.setItem(
|
// if (flows.length !== 0)
|
||||||
"tabsData",
|
// window.localStorage.setItem(
|
||||||
JSON.stringify({ tabIndex, flows, id, nodeId: newNodeId.current })
|
// "tabsData",
|
||||||
);
|
// JSON.stringify({ tabIndex, flows, id, nodeId: newNodeId.current })
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
//disabled until flows can be saved on local storage again without bugs
|
||||||
//save tabs locally
|
//save tabs locally
|
||||||
save();
|
// save();
|
||||||
|
|
||||||
}, [flows, id, tabIndex, newNodeId]);
|
}, [flows, id, tabIndex, newNodeId]);
|
||||||
|
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
//get tabs locally saved
|
// //get tabs locally saved
|
||||||
let cookie = window.localStorage.getItem("tabsData");
|
// let cookie = window.localStorage.getItem("tabsData");
|
||||||
if (cookie && Object.keys(templates).length > 0) {
|
// if (cookie && Object.keys(templates).length > 0) {
|
||||||
let cookieObject: LangFlowState = JSON.parse(cookie);
|
// let cookieObject: LangFlowState = JSON.parse(cookie);
|
||||||
cookieObject.flows.forEach((flow) => {
|
// cookieObject.flows.forEach((flow) => {
|
||||||
flow.data.nodes.forEach((node) => {
|
// flow.data.nodes.forEach((node) => {
|
||||||
if (Object.keys(templates[node.data.type]["template"]).length > 0) {
|
// if (Object.keys(templates[node.data.type]["template"]).length > 0) {
|
||||||
node.data.node.template = updateTemplate(
|
// node.data.node.template = updateTemplate(
|
||||||
templates[node.data.type][
|
// templates[node.data.type][
|
||||||
"template"
|
// "template"
|
||||||
] as unknown as APITemplateType,
|
// ] as unknown as APITemplateType,
|
||||||
|
|
||||||
|
// node.data.node.template as APITemplateType
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
// setTabIndex(cookieObject.tabIndex);
|
||||||
|
// setFlows(cookieObject.flows);
|
||||||
|
// setId(cookieObject.id);
|
||||||
|
// newNodeId.current = cookieObject.nodeId;
|
||||||
|
// }
|
||||||
|
// }, [templates]);
|
||||||
|
|
||||||
node.data.node.template as APITemplateType
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
setTabIndex(cookieObject.tabIndex);
|
|
||||||
setFlows(cookieObject.flows);
|
|
||||||
setId(cookieObject.id);
|
|
||||||
newNodeId.current = cookieObject.nodeId;
|
|
||||||
}
|
|
||||||
}, [templates]);
|
|
||||||
function hardReset() {
|
function hardReset() {
|
||||||
newNodeId.current = 0;
|
newNodeId.current = 0;
|
||||||
setTabIndex(0);
|
setTabIndex(0);
|
||||||
setFlows([]);
|
setFlows([]);
|
||||||
setId("");
|
setId(uuidv4());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -182,7 +186,7 @@ export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
let newFlow: FlowType = {
|
let newFlow: FlowType = {
|
||||||
description,
|
description,
|
||||||
name: flow?.name ?? "New Flow",
|
name: flow?.name ?? "New Flow",
|
||||||
id: id.toString(),
|
id: uuidv4(),
|
||||||
data,
|
data,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,16 @@ export default function ChatModal({
|
||||||
const ws = useRef<WebSocket | null>(null);
|
const ws = useRef<WebSocket | null>(null);
|
||||||
const [lockChat, setLockChat] = useState(false);
|
const [lockChat, setLockChat] = useState(false);
|
||||||
const isOpen = useRef(open);
|
const isOpen = useRef(open);
|
||||||
|
const id = useRef(flow.id);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
isOpen.current = open;
|
isOpen.current = open;
|
||||||
}, [open]);
|
}, [open]);
|
||||||
|
useEffect(() => {
|
||||||
|
id.current = flow.id;
|
||||||
|
},[flow.id])
|
||||||
|
|
||||||
|
|
||||||
var isStream = false;
|
var isStream = false;
|
||||||
|
|
||||||
const addChatHistory = (
|
const addChatHistory = (
|
||||||
|
|
@ -164,10 +170,9 @@ export default function ChatModal({
|
||||||
try {
|
try {
|
||||||
const urlWs =
|
const urlWs =
|
||||||
process.env.NODE_ENV === "development"
|
process.env.NODE_ENV === "development"
|
||||||
? `ws://localhost:7860/chat/${flow.id}`
|
? `ws://localhost:7860/chat/${id.current}`
|
||||||
: `${window.location.protocol === "https:" ? "wss" : "ws"}://${window.location.host
|
: `${window.location.protocol === "https:" ? "wss" : "ws"}://${window.location.host
|
||||||
}/chat/${flow.id}`;
|
}/chat/${id.current}`;
|
||||||
|
|
||||||
const newWs = new WebSocket(urlWs);
|
const newWs = new WebSocket(urlWs);
|
||||||
newWs.onopen = () => {
|
newWs.onopen = () => {
|
||||||
console.log("WebSocket connection established!");
|
console.log("WebSocket connection established!");
|
||||||
|
|
@ -184,6 +189,26 @@ export default function ChatModal({
|
||||||
};
|
};
|
||||||
newWs.onerror = (ev) => {
|
newWs.onerror = (ev) => {
|
||||||
console.log(ev, "error");
|
console.log(ev, "error");
|
||||||
|
if(flow.id===""){
|
||||||
|
connectWS();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
setErrorData({
|
||||||
|
title: "There was an error on web connection, please: ",
|
||||||
|
list: [
|
||||||
|
"Refresh the page",
|
||||||
|
"Use a new flow tab",
|
||||||
|
"Check if the backend is up",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ws.current = newWs;
|
||||||
|
} catch {
|
||||||
|
if(flow.id===""){
|
||||||
|
connectWS();
|
||||||
|
}
|
||||||
|
else{
|
||||||
setErrorData({
|
setErrorData({
|
||||||
title: "There was an error on web connection, please: ",
|
title: "There was an error on web connection, please: ",
|
||||||
list: [
|
list: [
|
||||||
|
|
@ -192,17 +217,7 @@ export default function ChatModal({
|
||||||
"Check if the backend is up",
|
"Check if the backend is up",
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
ws.current = newWs;
|
|
||||||
} catch {
|
|
||||||
setErrorData({
|
|
||||||
title: "There was an error on web connection, please: ",
|
|
||||||
list: [
|
|
||||||
"Refresh the page",
|
|
||||||
"Use a new flow tab",
|
|
||||||
"Check if the backend is up",
|
|
||||||
],
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue