Remove ugly jumpToUsage prop

This commit is contained in:
Robert
2023-07-12 14:20:58 +01:00
parent 7d59224407
commit 8ec08ef43f

View File

@@ -60,28 +60,19 @@ type Props = {
export const MethodRow = (props: Props) => {
const { externalApiUsage, modeledMethod } = props;
const jumpToUsage = useCallback(() => {
vscode.postMessage({
t: "jumpToUsage",
// In framework mode, the first and only usage is the definition of the method
location: externalApiUsage.usages[0].url,
});
}, [externalApiUsage]);
const methodCanBeModeled =
!externalApiUsage.supported ||
(modeledMethod && modeledMethod?.type !== "none");
if (methodCanBeModeled) {
return <ModelableMethodRow {...props} jumpToUsage={jumpToUsage} />;
return <ModelableMethodRow {...props} />;
} else {
return <UmmodelableMethodRow {...props} jumpToUsage={jumpToUsage} />;
return <UmmodelableMethodRow {...props} />;
}
};
function ModelableMethodRow(props: Props & { jumpToUsage: () => void }) {
const { externalApiUsage, modeledMethod, mode, onChange, jumpToUsage } =
props;
function ModelableMethodRow(props: Props) {
const { externalApiUsage, modeledMethod, mode, onChange } = props;
const argumentsList = useMemo(() => {
if (externalApiUsage.methodParameters === "()") {
@@ -157,6 +148,11 @@ function ModelableMethodRow(props: Props & { jumpToUsage: () => void }) {
[onChange, externalApiUsage, modeledMethod],
);
const jumpToUsage = useCallback(
() => sendJumpToUsageMessage(externalApiUsage),
[externalApiUsage],
);
const inputOptions = useMemo(
() => [
{ value: "Argument[this]", label: "Argument[this]" },
@@ -240,9 +236,14 @@ function ModelableMethodRow(props: Props & { jumpToUsage: () => void }) {
function UmmodelableMethodRow(props: {
externalApiUsage: ExternalApiUsage;
mode: Mode;
jumpToUsage: () => void;
}) {
const { externalApiUsage, mode, jumpToUsage } = props;
const { externalApiUsage, mode } = props;
const jumpToUsage = useCallback(
() => sendJumpToUsageMessage(externalApiUsage),
[externalApiUsage],
);
return (
<VSCodeDataGridRow>
<ApiOrMethodCell gridColumn={1}>
@@ -272,3 +273,11 @@ function ExternalApiUsageName(props: { externalApiUsage: ExternalApiUsage }) {
</span>
);
}
function sendJumpToUsageMessage(externalApiUsage: ExternalApiUsage) {
vscode.postMessage({
t: "jumpToUsage",
// In framework mode, the first and only usage is the definition of the method
location: externalApiUsage.usages[0].url,
});
}