Skip to content

Commit 26fcef8

Browse files
Introduce selectNewMethod ref
1 parent 96c0feb commit 26fcef8

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

extensions/ql-vscode/src/view/method-modeling/MultipleModeledMethodsPanel.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as React from "react";
2-
import { useCallback, useEffect, useMemo, useState } from "react";
2+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
33
import { Method } from "../../model-editor/method";
44
import { ModeledMethod } from "../../model-editor/modeled-method";
55
import {
@@ -60,7 +60,15 @@ export const MultipleModeledMethodsPanel = ({
6060
}: MultipleModeledMethodsPanelProps) => {
6161
const [selectedIndex, setSelectedIndex] = useState<number>(0);
6262

63+
const selectNewMethod = useRef<number | null>(null);
64+
6365
useEffect(() => {
66+
if (selectNewMethod.current === modeledMethods.length - 1) {
67+
setSelectedIndex(selectNewMethod.current);
68+
selectNewMethod.current = null;
69+
return;
70+
}
71+
6472
if (selectedIndex >= modeledMethods.length) {
6573
setSelectedIndex(
6674
modeledMethods.length > 0 ? modeledMethods.length - 1 : 0,
@@ -97,7 +105,7 @@ export const MultipleModeledMethodsPanel = ({
97105
const newModeledMethods = [...modeledMethods, newModeledMethod];
98106

99107
onChange(method.signature, newModeledMethods);
100-
setSelectedIndex(newModeledMethods.length - 1);
108+
selectNewMethod.current = newModeledMethods.length - 1;
101109
}, [onChange, modeledMethods, method]);
102110

103111
const handleRemoveClick = useCallback(() => {

0 commit comments

Comments
 (0)