11import * as React from "react" ;
2- import { ChangeEvent , useCallback , useMemo } from "react" ;
2+ import { ChangeEvent , useCallback } from "react" ;
33import { Dropdown } from "../common/Dropdown" ;
44import {
55 ModeledMethod ,
66 modeledMethodSupportsProvenance ,
77 ModeledMethodType ,
88 Provenance ,
99} from "../../model-editor/modeled-method" ;
10- import { Method , getArgumentsList } from "../../model-editor/method" ;
10+ import { Method } from "../../model-editor/method" ;
1111import { createEmptyModeledMethod } from "../../model-editor/modeled-method-empty" ;
1212import { Mutable } from "../../common/mutable" ;
13+ import { QueryLanguage } from "../../common/query-language" ;
14+ import { getModelsAsDataLanguage } from "../../model-editor/languages" ;
1315
1416const options : Array < { value : ModeledMethodType ; label : string } > = [
1517 { value : "none" , label : "Unmodeled" } ,
@@ -20,23 +22,22 @@ const options: Array<{ value: ModeledMethodType; label: string }> = [
2022] ;
2123
2224type Props = {
25+ language : QueryLanguage ;
2326 method : Method ;
2427 modeledMethod : ModeledMethod | undefined ;
2528 onChange : ( modeledMethod : ModeledMethod ) => void ;
2629} ;
2730
2831export const ModelTypeDropdown = ( {
32+ language,
2933 method,
3034 modeledMethod,
3135 onChange,
3236} : Props ) : JSX . Element => {
33- const argumentsList = useMemo (
34- ( ) => getArgumentsList ( method . methodParameters ) ,
35- [ method . methodParameters ] ,
36- ) ;
37-
3837 const handleChange = useCallback (
3938 ( e : ChangeEvent < HTMLSelectElement > ) => {
39+ const modelsAsDataLanguage = getModelsAsDataLanguage ( language ) ;
40+
4041 let newProvenance : Provenance = "manual" ;
4142 if ( modeledMethod && modeledMethodSupportsProvenance ( modeledMethod ) ) {
4243 if ( modeledMethod . provenance === "df-generated" ) {
@@ -54,9 +55,8 @@ export const ModelTypeDropdown = ({
5455 ...emptyModeledMethod ,
5556 } ;
5657 if ( "input" in updatedModeledMethod ) {
57- // If there are no arguments, we will default to "Argument[this]"
5858 updatedModeledMethod . input =
59- argumentsList . length === 0 ? "Argument[this]" : "Argument[0]" ;
59+ modelsAsDataLanguage . getArgumentOptions ( method ) . defaultArgumentPath ;
6060 }
6161 if ( "output" in updatedModeledMethod ) {
6262 updatedModeledMethod . output = "ReturnValue" ;
@@ -70,7 +70,7 @@ export const ModelTypeDropdown = ({
7070
7171 onChange ( updatedModeledMethod ) ;
7272 } ,
73- [ onChange , method , modeledMethod , argumentsList ] ,
73+ [ onChange , method , modeledMethod , language ] ,
7474 ) ;
7575
7676 return (
0 commit comments