File tree Expand file tree Collapse file tree 4 files changed +54
-1
lines changed
extensions/ql-vscode/src/view Expand file tree Collapse file tree 4 files changed +54
-1
lines changed Original file line number Diff line number Diff line change 1+ import * as React from "react" ;
2+ import { useMemo } from "react" ;
3+ import { Dropdown } from "./Dropdown" ;
4+
5+ type Props = {
6+ value : string ;
7+ className ?: string ;
8+
9+ "aria-label" ?: string ;
10+ } ;
11+
12+ export function ReadonlyDropdown ( { value, ...props } : Props ) {
13+ const options = useMemo ( ( ) => {
14+ return [
15+ {
16+ value,
17+ label : value ,
18+ } ,
19+ ] ;
20+ } , [ value ] ) ;
21+
22+ return (
23+ < Dropdown
24+ value = { value }
25+ disabledPlaceholder = { value }
26+ disabled = { true }
27+ options = { options }
28+ { ...props }
29+ />
30+ ) ;
31+ }
Original file line number Diff line number Diff line change 66 modeledMethodSupportsInput ,
77} from "../../model-editor/modeled-method" ;
88import { Method , getArgumentsList } from "../../model-editor/method" ;
9+ import { ReadonlyDropdown } from "../common/ReadonlyDropdown" ;
910
1011type Props = {
1112 method : Method ;
@@ -60,6 +61,10 @@ export const ModelInputDropdown = ({
6061 ? modeledMethod . input
6162 : undefined ;
6263
64+ if ( modeledMethod ?. type === "type" ) {
65+ return < ReadonlyDropdown value = { modeledMethod . path } aria-label = "Path" /> ;
66+ }
67+
6368 return (
6469 < Dropdown
6570 value = { value }
Original file line number Diff line number Diff line change 66 modeledMethodSupportsOutput ,
77} from "../../model-editor/modeled-method" ;
88import { Method , getArgumentsList } from "../../model-editor/method" ;
9+ import { ReadonlyDropdown } from "../common/ReadonlyDropdown" ;
910
1011type Props = {
1112 method : Method ;
@@ -61,6 +62,15 @@ export const ModelOutputDropdown = ({
6162 ? modeledMethod . output
6263 : undefined ;
6364
65+ if ( modeledMethod ?. type === "type" ) {
66+ return (
67+ < ReadonlyDropdown
68+ value = { modeledMethod . relatedTypeName }
69+ aria-label = "Related type name"
70+ />
71+ ) ;
72+ }
73+
6474 return (
6575 < Dropdown
6676 value = { value }
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ import {
1010import { Method , getArgumentsList } from "../../model-editor/method" ;
1111import { createEmptyModeledMethod } from "../../model-editor/modeled-method-empty" ;
1212import { Mutable } from "../../common/mutable" ;
13+ import { ReadonlyDropdown } from "../common/ReadonlyDropdown" ;
1314
1415const options : Array < { value : ModeledMethodType ; label : string } > = [
1516 { value : "none" , label : "Unmodeled" } ,
@@ -78,7 +79,13 @@ export const ModelTypeDropdown = ({
7879 const isShownOption = options . some ( ( option ) => option . value === value ) ;
7980
8081 if ( ! isShownOption ) {
81- return < > { value } </ > ;
82+ return (
83+ < ReadonlyDropdown
84+ // Try to show this like a normal type with uppercased first letter
85+ value = { value . charAt ( 0 ) . toUpperCase ( ) + value . slice ( 1 ) }
86+ aria-label = "Model type"
87+ />
88+ ) ;
8289 }
8390
8491 return (
You can’t perform that action at this time.
0 commit comments