Introduce selectNewMethod ref
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import * as React from "react";
|
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 { Method } from "../../model-editor/method";
|
||||||
import { ModeledMethod } from "../../model-editor/modeled-method";
|
import { ModeledMethod } from "../../model-editor/modeled-method";
|
||||||
import {
|
import {
|
||||||
@@ -60,7 +60,15 @@ export const MultipleModeledMethodsPanel = ({
|
|||||||
}: MultipleModeledMethodsPanelProps) => {
|
}: MultipleModeledMethodsPanelProps) => {
|
||||||
const [selectedIndex, setSelectedIndex] = useState<number>(0);
|
const [selectedIndex, setSelectedIndex] = useState<number>(0);
|
||||||
|
|
||||||
|
const selectNewMethod = useRef<number | null>(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (selectNewMethod.current === modeledMethods.length - 1) {
|
||||||
|
setSelectedIndex(selectNewMethod.current);
|
||||||
|
selectNewMethod.current = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (selectedIndex >= modeledMethods.length) {
|
if (selectedIndex >= modeledMethods.length) {
|
||||||
setSelectedIndex(
|
setSelectedIndex(
|
||||||
modeledMethods.length > 0 ? modeledMethods.length - 1 : 0,
|
modeledMethods.length > 0 ? modeledMethods.length - 1 : 0,
|
||||||
@@ -97,7 +105,7 @@ export const MultipleModeledMethodsPanel = ({
|
|||||||
const newModeledMethods = [...modeledMethods, newModeledMethod];
|
const newModeledMethods = [...modeledMethods, newModeledMethod];
|
||||||
|
|
||||||
onChange(method.signature, newModeledMethods);
|
onChange(method.signature, newModeledMethods);
|
||||||
setSelectedIndex(newModeledMethods.length - 1);
|
selectNewMethod.current = newModeledMethods.length - 1;
|
||||||
}, [onChange, modeledMethods, method]);
|
}, [onChange, modeledMethods, method]);
|
||||||
|
|
||||||
const handleRemoveClick = useCallback(() => {
|
const handleRemoveClick = useCallback(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user