import Data.Tuple
import Data.Either
import Data.List
+import Data.Maybe
import iTasks
import iTasks.UI.Editor
import iTasks.UI.Editor.Containers
typeToEditor` (MADT []) = emptyEditor
typeToEditor` (MADT [(k, v)]) = bijectEditorValue (\(IADT 0 m)->m) (IADT 0)
$ row k (containerL (map typeToEditor` v) <<@ directionAttr Horizontal)
- typeToEditor` (MADT kvs) = abort "blurp"/*bijectEditorValue (\(IADT i m)->(i, m)) (uncurry IADT)
- $ choose [(k, containerL (map typeToEditor` v) <<@ directionAttr Horizontal)\\(k,v)<-kvs]*/
+ typeToEditor` (MADT kvs) = bijectEditorValue (\(IADT i m)->(i, m)) (uncurry IADT)
+ $ containerc
+ (chooseWithDropdown [k\\(k,_)<-kvs])
+ [(maybe undef id
+ , containerL (map typeToEditor` v) <<@ directionAttr Horizontal
+ )\\(k,v)<-kvs]
typeToEditor` x = abort $ "Nomatch: " +++ toString x
enterValueOfType :: MetaType -> Task MetaInst