| 322 | const effectiveWidth = isMobile ? '100%' : PANEL_WIDTH; |
| 323 | |
| 324 | const handleParamValueChange = (paramId: string, value: any) => { |
| 325 | if (!selectedNode || !onUpdateNode) return; |
| 326 | |
| 327 | const nodeData: FrontendNodeData = selectedNode.data; |
| 328 | const config = nodeData.config || { params: {}, inputOverrides: {} }; |
| 329 | |
| 330 | let updatedParams = { |
| 331 | ...(config.params ?? {}), |
| 332 | }; |
| 333 | |
| 334 | if (value === undefined) { |
| 335 | const { [paramId]: _removed, ...rest } = updatedParams; |
| 336 | updatedParams = rest; |
| 337 | } else { |
| 338 | updatedParams[paramId] = value; |
| 339 | } |
| 340 | |
| 341 | onUpdateNode(selectedNode.id, { |
| 342 | config: { |
| 343 | ...config, |
| 344 | params: updatedParams, |
| 345 | }, |
| 346 | }); |
| 347 | }; |
| 348 | |
| 349 | const handleInputOverrideChange = (inputId: string, value: any) => { |
| 350 | if (!selectedNode || !onUpdateNode) return; |