Skip to content

Commit 8ec08ef

Browse files
Remove ugly jumpToUsage prop
1 parent 7d59224 commit 8ec08ef

File tree

1 file changed

+24
-15
lines changed
  • extensions/ql-vscode/src/view/data-extensions-editor

1 file changed

+24
-15
lines changed

extensions/ql-vscode/src/view/data-extensions-editor/MethodRow.tsx

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60,28 +60,19 @@ type Props = {
6060
export const MethodRow = (props: Props) => {
6161
const { externalApiUsage, modeledMethod } = props;
6262

63-
const jumpToUsage = useCallback(() => {
64-
vscode.postMessage({
65-
t: "jumpToUsage",
66-
// In framework mode, the first and only usage is the definition of the method
67-
location: externalApiUsage.usages[0].url,
68-
});
69-
}, [externalApiUsage]);
70-
7163
const methodCanBeModeled =
7264
!externalApiUsage.supported ||
7365
(modeledMethod && modeledMethod?.type !== "none");
7466

7567
if (methodCanBeModeled) {
76-
return <ModelableMethodRow {...props} jumpToUsage={jumpToUsage} />;
68+
return <ModelableMethodRow {...props} />;
7769
} else {
78-
return <UmmodelableMethodRow {...props} jumpToUsage={jumpToUsage} />;
70+
return <UmmodelableMethodRow {...props} />;
7971
}
8072
};
8173

82-
function ModelableMethodRow(props: Props & { jumpToUsage: () => void }) {
83-
const { externalApiUsage, modeledMethod, mode, onChange, jumpToUsage } =
84-
props;
74+
function ModelableMethodRow(props: Props) {
75+
const { externalApiUsage, modeledMethod, mode, onChange } = props;
8576

8677
const argumentsList = useMemo(() => {
8778
if (externalApiUsage.methodParameters === "()") {
@@ -157,6 +148,11 @@ function ModelableMethodRow(props: Props & { jumpToUsage: () => void }) {
157148
[onChange, externalApiUsage, modeledMethod],
158149
);
159150

151+
const jumpToUsage = useCallback(
152+
() => sendJumpToUsageMessage(externalApiUsage),
153+
[externalApiUsage],
154+
);
155+
160156
const inputOptions = useMemo(
161157
() => [
162158
{ value: "Argument[this]", label: "Argument[this]" },
@@ -240,9 +236,14 @@ function ModelableMethodRow(props: Props & { jumpToUsage: () => void }) {
240236
function UmmodelableMethodRow(props: {
241237
externalApiUsage: ExternalApiUsage;
242238
mode: Mode;
243-
jumpToUsage: () => void;
244239
}) {
245-
const { externalApiUsage, mode, jumpToUsage } = props;
240+
const { externalApiUsage, mode } = props;
241+
242+
const jumpToUsage = useCallback(
243+
() => sendJumpToUsageMessage(externalApiUsage),
244+
[externalApiUsage],
245+
);
246+
246247
return (
247248
<VSCodeDataGridRow>
248249
<ApiOrMethodCell gridColumn={1}>
@@ -272,3 +273,11 @@ function ExternalApiUsageName(props: { externalApiUsage: ExternalApiUsage }) {
272273
</span>
273274
);
274275
}
276+
277+
function sendJumpToUsageMessage(externalApiUsage: ExternalApiUsage) {
278+
vscode.postMessage({
279+
t: "jumpToUsage",
280+
// In framework mode, the first and only usage is the definition of the method
281+
location: externalApiUsage.usages[0].url,
282+
});
283+
}

0 commit comments

Comments
 (0)