Introduce selectNewMethod ref

This commit is contained in:
Robert
2023-10-18 11:43:05 +01:00
parent 96c0feb3e6
commit 26fcef8f5d

View File

@@ -1,5 +1,5 @@
import * as React from "react";
import { useCallback, useEffect, useMemo, useState } from "react";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { Method } from "../../model-editor/method";
import { ModeledMethod } from "../../model-editor/modeled-method";
import {
@@ -60,7 +60,15 @@ export const MultipleModeledMethodsPanel = ({
}: MultipleModeledMethodsPanelProps) => {
const [selectedIndex, setSelectedIndex] = useState<number>(0);
const selectNewMethod = useRef<number | null>(null);
useEffect(() => {
if (selectNewMethod.current === modeledMethods.length - 1) {
setSelectedIndex(selectNewMethod.current);
selectNewMethod.current = null;
return;
}
if (selectedIndex >= modeledMethods.length) {
setSelectedIndex(
modeledMethods.length > 0 ? modeledMethods.length - 1 : 0,
@@ -97,7 +105,7 @@ export const MultipleModeledMethodsPanel = ({
const newModeledMethods = [...modeledMethods, newModeledMethod];
onChange(method.signature, newModeledMethods);
setSelectedIndex(newModeledMethods.length - 1);
selectNewMethod.current = newModeledMethods.length - 1;
}, [onChange, modeledMethods, method]);
const handleRemoveClick = useCallback(() => {