- Support for purescript-smolder 9
- Fix rendering duplicate Preact events. Fixes #124
- Fix React interop example and add to test suite.
- Use React component class for memoized views. Significantly improves performance by avoiding unnecessary React VDOM subtree comparison. This brings performance characteristics in line with vanilla React and a single state atom and PureRenderMixin.
- Check for target.value. Fixes #119
- Send events returned by effects after the current execution context. Fixes issue with event ordering.
- Update for PureScript 0.11 #116
- Remove redundant arrays in rendered React VDOM
- Fixed type error in devtool state serialization #117
- Fix rendering of
styleelement contents.
- Add
parseSegmentto Pux.Router #103
- Fix redundant initial render.
- Add
reactClassWithPropsfor using arbitrary props with external React classes. - Add HMR support to pux-devtool.
- Use
ev.targetinstead ofev.currentTargetfortargetValuefunction.
- Fix issue with normalizing attribute names when rendering a foreign react class.
- Use raw DOM event in React renderer. Fixes an issue with reading foreign event types.
- Improve React rendering performance.
- Cache previously rendered elements to improve rendering performance.
- Fix React attribute normalization.
- Fix referential transparency of
memoize#113
This is a major upgrade and rewrite with breaking changes:
- Markup now uses purescript-smolder and
Htmlhas been replaced with a newHTMLtype. - Event handlers now receive the raw DOM event from purescript-dom, and Pux no longer provides its own event types.
- Type signatures for
start,Config,Apphave changed to include a new type parameter and different labels. - Effects in the EffModel now return
Maybe ainstead ofa. - Rendering is no longer tied to React. Other virtual DOM renderers can be implemented.
- Added memoize function for views is provided to prevent unnecessary renders.
- Added constructor for style element and attribute which takes
CSSfrom purescript-css. - Added full isomorphic routing and rendering setup to pux-starter-app.
- Actions are now referred to as events in source code and documentation.
- The "update" function is now referred to as the "foldp" function in source code and documentation.
See the updated guide for help upgrading to Pux 8.
- Remove unused
(<|>)import - Use
CustomEventinstead ofEvent(fixes #76) - Fix #102
- Additional HTML element constructors. #74
- Remove bind/append functions in favor of operators. Fixes bug with
HtmlandFunctorinstance. #72
- Fix typo with
withTextChildandwithChildrenprecendence. #70
- Tweak fixity of
Htmloperators #64
- Allow EXCEPTION effect in updates #58
- Invoke React.createElement correctly when passing it children #51
- Various docs updated for purescript 0.9
- Correctly parse queries in
routeFromUrl#49
- Implement attribute functor #47
- Add missing purescript-globals dependency #46
- Use <> instead of ++ and pure instead of return
- Update dependencies for PureScript 0.9 - no changes to the public API.
onlyEffectsfunction for returning aneffModelwith new effects but no state changes.
- Fix map FFI for
Htmltext nodes. #38
- Fix map of actions attached to app's root element. See #4e68bc8
styleattribute changed to accept an array of tuples instead of a record. This is so styles can be composed. See #27- Change
toReactto returnReactClass propsfrom purescript-react.
- Change
tabIndextoInt -> Attribute a. - Change
checkedtoBoolean -> Attribute a. - Do not call
.preventDefault()on click, change, and other relevant handlers.
Pux.Html.Attributes.defaultValueandPux.Html.Attributes.defaultChecked.Pux.Html.Events.onKeyfor sending an action when a specific key is pressed.Pux.Router.navigateTofor changing the URL.
- Export app
Configtype.
- BREAKING: Change relevant attributes to
Boolean -> Attribute aorInt -> Attribute a.
- Implement functor instance for
Html, so authors can usemapinstead offorwardTo.
- Provide type alias for core set of effects
CoreEffects. See #20. - Added
toReactfunction that returns React class from Pux component. - Added
fromReactfunction that returns Pux Html element from React component. - Added additional SVG attributes and elements from React v15.0.0
- Use record instead of string for style attribute value.
- All functions in
Pux.Html.Elementsnow receive children. This enables consistent use of the!operator. - Added
##operator to combine array ofHtml.
- The
VirtualDOMmonad has been replaced with#operator and rebindabledo, which enables the use of both array notation ordonotation for composing views. VirtualDOMis nowHtml aand is parameterized by the component's action type.- One-to-one mapping between event types and React's synthetic events.
- The
Updatefunction no longer receives an inputSignal.Channel. EffModeltype has changed to{ state: state, effects: Array (Aff eff action), and actions are automatically fed into the input channel.
- The
VirtualDOMmonad has been replaced by a simpler data structureHtml a. Element attributes and children can now be specified using array literal notation.donotation is optional and can be used viaPux.Html.bindandPux.Html.#. - All event handlers receive an event, and the use of
Prelude.constis encouraged to ignore events when constructing actions. - The effect in the
Updatefunction type signature now appears last, andUpdateno longer receives a channel as the third argument. - Applications are now created using
start, and the resultingapp.htmlsignal passed torenderToDOMorrenderToString.
- Load React from CommonJS. Fixes #10.
- Fix onChange handler so it produces a value. Fixes #7.
- List all dependencies. Fixes #9.
- SVG elements and attributes. Fixes #6.
- Make foreign functions safe in runtimes without
window.
- BREAKING:
Viewtype synonym removed.VDomrenamed toVirtualDOMand exported viaPuxandPux.DOMinstead ofPux.View.
- Initial release. Experimental API.