diff --git a/space_flow/src/contexts/tabsContext.tsx b/space_flow/src/contexts/tabsContext.tsx index fbe5a3d0d..4e72dc86f 100644 --- a/space_flow/src/contexts/tabsContext.tsx +++ b/space_flow/src/contexts/tabsContext.tsx @@ -59,6 +59,7 @@ export function TabsProvider({children}){ const index = newFlows.findIndex(flow=>flow.id===newFlow.id) if(index!==-1){ newFlows[index].data = newFlow.data + newFlows[index].name = newFlow.name } window.sessionStorage.setItem('tabs', JSON.stringify(newFlows)); return newFlows; diff --git a/space_flow/src/pages/FlowPage/flowManager/tabComponent/index.tsx b/space_flow/src/pages/FlowPage/flowManager/tabComponent/index.tsx index 3cdaf6b8b..6db56e043 100644 --- a/space_flow/src/pages/FlowPage/flowManager/tabComponent/index.tsx +++ b/space_flow/src/pages/FlowPage/flowManager/tabComponent/index.tsx @@ -1,15 +1,19 @@ import { PlusIcon, XMarkIcon } from "@heroicons/react/24/solid"; -import { useContext } from "react"; +import { useContext, useRef, useState } from "react"; import { TabsContext } from "../../../../contexts/tabsContext"; +var _ = require("lodash"); + export default function TabComponent({ selected, flow, onClick }) { - const { removeFlow } = useContext(TabsContext); + const { removeFlow, updateFlow } = useContext(TabsContext); + const [isRename, setIsRename] = useState(false); + const [value, setValue] = useState(""); return ( <> {flow ? ( !selected ? (
{flow.name} @@ -23,8 +27,35 @@ export default function TabComponent({ selected, flow, onClick }) {
) : ( -
- {flow.name} +
+ {isRename ? ( + { + setIsRename(false); + if (value !== "") { + let newFlow = _.cloneDeep(flow); + newFlow.name = value; + updateFlow(newFlow); + } + }} + value={value} + onChange={(e) => { + setValue(e.target.value); + }} + /> + ) : ( + { + setIsRename(true); + setValue(flow.name); + }} + > + {flow.name} + + )}