Remember task node mode as advanced or basic in local storage (#916)

This commit is contained in:
Kerem Yilmaz
2024-10-07 08:56:42 -07:00
committed by GitHub
parent a65a489032
commit caef189cda

View File

@@ -29,21 +29,34 @@ import { NodeActionMenu } from "../NodeActionMenu";
import { TaskNodeDisplayModeSwitch } from "./TaskNodeDisplayModeSwitch";
import { TaskNodeParametersPanel } from "./TaskNodeParametersPanel";
import type { TaskNode, TaskNodeDisplayMode } from "./types";
import { useParams } from "react-router-dom";
function getLocalStorageKey(workflowPermanentId: string, label: string) {
return `skyvern-task-block-${workflowPermanentId}-${label}`;
}
function TaskNode({ id, data }: NodeProps<TaskNode>) {
const { updateNodeData } = useReactFlow();
const [displayMode, setDisplayMode] = useState<TaskNodeDisplayMode>("basic");
const { workflowPermanentId } = useParams();
const { editable } = data;
const deleteNodeCallback = useDeleteNodeCallback();
const nodes = useNodes<AppNode>();
const edges = useEdges();
const outputParameterKeys = getAvailableOutputParameterKeys(nodes, edges, id);
const [label, setLabel] = useNodeLabelChangeHandler({
id,
initialValue: data.label,
});
const [displayMode, setDisplayMode] = useState<TaskNodeDisplayMode>(
workflowPermanentId &&
localStorage.getItem(getLocalStorageKey(workflowPermanentId, label))
? (localStorage.getItem(
getLocalStorageKey(workflowPermanentId, label),
) as TaskNodeDisplayMode)
: "basic",
);
const [inputs, setInputs] = useState({
url: data.url,
navigationGoal: data.navigationGoal,
@@ -404,7 +417,15 @@ function TaskNode({ id, data }: NodeProps<TaskNode>) {
</div>
<TaskNodeDisplayModeSwitch
value={displayMode}
onChange={setDisplayMode}
onChange={(mode) => {
setDisplayMode(mode);
if (workflowPermanentId) {
localStorage.setItem(
getLocalStorageKey(workflowPermanentId, label),
mode,
);
}
}}
/>
{displayMode === "basic" && basicContent}