@@ -13,17 +13,19 @@ import Data.Time.Duration (Seconds(..))
1313import Data.Tuple.Nested ((/\))
1414import Effect (Effect)
1515import Effect.Aff (Aff)
16−import Effect.Aff.Compat (EffectFn1)
16+import Effect.Aff.Compat (EffectFn1, EffectFn2, mkEffectFn2)
1717import Effect.Class (liftEffect)
1818import Effect.Uncurried (EffectFn2, mkEffectFn1, mkEffectFn2)
1919import Foreign (Foreign, unsafeToForeign)
2020import JSS (jssClasses)
21+import MotionValue (onChange)
2122import Prim.Row (class Union)
2223import React.Basic (JSX, ReactComponent, Ref, element, fragment)
2324import React.Basic.DOM as R
2425import React.Basic.Hooks (reactComponent, useEffect, useEffectAlways, useState)
2526import React.Basic.Hooks as React
2627import React.Basic.Hooks.Aff (useAff)
28+import Test.Spec.Runner.Event (Event)
2729import Web.DOM (Node)
2830import Web.HTML (HTMLElement)
2931import Yoga.Block.Container.Style (DarkOrLightMode(..), getDarkOrLightMode)
@@ -32,6 +34,7 @@ import Yoga.Theme.Styles (makeStylesJSS)
3234
3335type EditorProps =
3436 ( value ∷ String
37+ , onChange ∷ EffectFn2 String Event Unit
3538 , language ∷ String
3639 , editorDidMount ∷ EffectFn2 Editor Node Unit
3740 , editorWillMount ∷ EffectFn1 Monaco Unit
@@ -98,6 +101,8 @@ type Props =
98101 { onLoad ∷ Editor -> Effect Unit
99102 , height ∷ String
100103 , language ∷ String
104+ , value ∷ String
105+ , onChange ∷ String -> Event -> Effect Unit
101106 }
102107
103108mkEditor ∷ Effect (ReactComponent Props)
@@ -115,7 +120,7 @@ mkEditor = do
115120 overflowY hidden
116121 -- backgroundColor (colour.background) [ TODO ]
117122 }
118− reactComponent "Editor" \{ onLoad, height, language } -> React.do
123+ reactComponent "Editor" \{ onChange, onLoad, height, language, value } -> React.do
119124 classes <- useStyles {}
120125 mbEditorComponent /\ setEditorComponent <- React.useState' Nothing
121126 monacoRef <- React.useRef null
@@ -145,6 +150,8 @@ mkEditor = do
145150 element editor
146151 { theme: themeName
147152 , height
153+ , value
154+ , onChange: mkEffectFn2 onChange
148155 , options:
149156 unsafeToForeign
150157 { fontFamily: "Victor Mono"