From 84adeea26323c4012774fd0fd284423bf37e28fb Mon Sep 17 00:00:00 2001 From: Michael Trotter Date: Thu, 15 Mar 2018 11:59:41 -0600 Subject: [PATCH 1/3] Add stateless component helper function --- src/React/Basic.purs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/React/Basic.purs b/src/React/Basic.purs index 16fdb89..8545632 100644 --- a/src/React/Basic.purs +++ b/src/React/Basic.purs @@ -40,6 +40,24 @@ react { displayName, initialState, receiveProps, render } = , render: mkFn3 render } +-- | Create a stateless React component. +-- | +-- | Removes a little bit of the `react` function's boilerplate when creating +-- | components which don't use state. +react_ + :: forall props + . { displayName :: String + , render :: props -> JSX + } + -> ReactComponent props +react_ { displayName, render } = + react + { displayName + , initialState: unit + , receiveProps: \_ _ _ -> pure unit + , render: \props _ _ -> render props + } + -- | SetState uses an update function to modify the current state. type SetState state fx = (state -> state) -> Eff (react :: ReactFX | fx) Unit From abce4a5754b5a3d2e311ec7ce84f4a78843ecef9 Mon Sep 17 00:00:00 2001 From: Michael Trotter Date: Thu, 15 Mar 2018 12:04:59 -0600 Subject: [PATCH 2/3] Add react_ to exports --- src/React/Basic.purs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/React/Basic.purs b/src/React/Basic.purs index 8545632..3ca29dd 100644 --- a/src/React/Basic.purs +++ b/src/React/Basic.purs @@ -1,5 +1,6 @@ module React.Basic ( react + , react_ , createElement , createElementKeyed , fragment From ab8c958ac40f99d964bbce6aa2689abab7449536 Mon Sep 17 00:00:00 2001 From: Michael Trotter Date: Thu, 15 Mar 2018 15:55:56 -0600 Subject: [PATCH 3/3] Rename to stateless --- generated-docs/React/Basic.md | 11 +++++++++++ src/React/Basic.purs | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/generated-docs/React/Basic.md b/generated-docs/React/Basic.md index 34e7e7d..60b5495 100644 --- a/generated-docs/React/Basic.md +++ b/generated-docs/React/Basic.md @@ -16,6 +16,17 @@ The rendering function should return a value of type `JSX`, which can be constructed using the helper functions provided by the `React.Basic.DOM` module (and re-exported here). +#### `stateless` + +``` purescript +stateless :: forall props. { displayName :: String, render :: props -> JSX } -> ReactComponent props +``` + +Create a stateless React component. + +Removes a little bit of the `react` function's boilerplate when creating +components which don't use state. + #### `createElement` ``` purescript diff --git a/src/React/Basic.purs b/src/React/Basic.purs index 3ca29dd..d914210 100644 --- a/src/React/Basic.purs +++ b/src/React/Basic.purs @@ -1,6 +1,6 @@ module React.Basic ( react - , react_ + , stateless , createElement , createElementKeyed , fragment @@ -45,13 +45,13 @@ react { displayName, initialState, receiveProps, render } = -- | -- | Removes a little bit of the `react` function's boilerplate when creating -- | components which don't use state. -react_ +stateless :: forall props . { displayName :: String , render :: props -> JSX } -> ReactComponent props -react_ { displayName, render } = +stateless { displayName, render } = react { displayName , initialState: unit