diff --git a/generated-docs/React/Basic/DOM.md b/generated-docs/React/Basic/DOM.md index 238bb6c..874e462 100644 --- a/generated-docs/React/Basic/DOM.md +++ b/generated-docs/React/Basic/DOM.md @@ -38,6 +38,20 @@ E.g. div { style: css { padding: "5px" } } [ text "This text is padded." ] ``` +#### `mergeStyles` + +``` purescript +mergeStyles :: Array CSS -> CSS +``` + +Merge styles from right to left. Uses `Object.assign`. + +E.g. + +``` +style: mergeCSS [ (css { padding: "5px" }), props.style ] +``` + #### `SharedProps` ``` purescript diff --git a/generated-docs/React/Basic/Events.md b/generated-docs/React/Basic/Events.md index 0ba9d2b..6c2bcde 100644 --- a/generated-docs/React/Basic/Events.md +++ b/generated-docs/React/Basic/Events.md @@ -84,6 +84,12 @@ input { onChange: handler_ (setState \_ -> { value }) } ``` +#### `syntheticEvent` + +``` purescript +syntheticEvent :: EventFn SyntheticEvent SyntheticEvent +``` + #### `merge` ``` purescript diff --git a/src/React/Basic/DOM.js b/src/React/Basic/DOM.js new file mode 100644 index 0000000..3306d09 --- /dev/null +++ b/src/React/Basic/DOM.js @@ -0,0 +1,5 @@ +"use strict"; + +exports.mergeStyles = function(styles) { + return Object.assign.apply(null, [ {} ].concat(styles)); +}; diff --git a/src/React/Basic/DOM.purs b/src/React/Basic/DOM.purs index 27760ea..da8b625 100644 --- a/src/React/Basic/DOM.purs +++ b/src/React/Basic/DOM.purs @@ -29,6 +29,15 @@ foreign import data CSS :: Type css :: forall css. { | css } -> CSS css = unsafeCoerce +-- | Merge styles from right to left. Uses `Object.assign`. +-- | +-- | E.g. +-- | +-- | ``` +-- | style: mergeCSS [ (css { padding: "5px" }), props.style ] +-- | ``` +foreign import mergeStyles :: Array CSS -> CSS + -- | Standard props which are shared by all DOM elements. type SharedProps specific = -- | `key` is not really a DOM attribute - React intercepts it diff --git a/src/React/Basic/Events.purs b/src/React/Basic/Events.purs index 26f308f..cc773df 100644 --- a/src/React/Basic/Events.purs +++ b/src/React/Basic/Events.purs @@ -5,6 +5,7 @@ module React.Basic.Events , unsafeEventFn , handler , handler_ + , syntheticEvent , merge , class Merge , mergeImpl @@ -72,6 +73,9 @@ handler (EventFn fn) cb = mkEffFn1 $ fn >>> cb handler_ :: Eff (react :: ReactFX) Unit -> EventHandler handler_ = mkEffFn1 <<< const +syntheticEvent :: EventFn SyntheticEvent SyntheticEvent +syntheticEvent = id + class Merge (rl :: RowList) fns a r | rl -> fns, rl a -> r where mergeImpl :: RLProxy rl -> Record fns -> EventFn a (Record r)