Releases: odoo/owl
v0.23.0
v0.23.0
Component
- doc: add info on svg components
- remove
t-mounteddirective (breaking change) - support components reduced to a slot
Hooks
- add
useSubEnvhook - add
onWillPatchandonPatchedhooks - fix
onWillUnmountbug - add
useContexthook - add
onWillStartandonWillUpdateProps - add
useStore,useDispatchanduseGettershooks
QWeb
- remove
updateEnv - fix issue with event modifier with arg in
t-foreach - fix: allow combining
t-escwith other directives - fix: properly handle
t-rawin various situations - fix: properly handle xml comments
Misc
- add
Contextclass - remove
ConnectedComponent(replaced by hooks)
Playground
- slightly improve default text
- save changes to local storage
- update
todoappexample
v0.22.0
0.22.0
The hooks release.
This release contains a few breaking changes necessary to improve the API. It is
actually very nice to work with hooks in Owl.
The main breaking change is that now components do not have a special state
key, which is observed. If a component needs reactive state, it has to explicitely
import the useState hook:
class C extends Component {
state = useState({some: 'value'});
...
}Changes
- component: reorganize the rendering system with the notion of
fiber - component: support fully dynamic
t-componentdirectives - component tags: allow injecting values in
xmltag string - qweb fix: properly support svg
- components: add hooks mechanism (breaking change)
- hooks: implement
useRefhook (breaking change)
v0.21.0
v0.21.0
Not many changes, but they will significantly improve the developer experience. The main idea is that we are getting closer to having nice single file components.
Changes
- fix: qweb crash in some cases involving
t-call, multiple sub nodes and one text node - component: the
componentskey is now static (breaking change) - component: support dynamic root nodes (either subcomponent or dom nodes) and switching between them
- component: add support for dynamic props with
t-props - router: replace the
t-routecomponentdirective withRouterComponent(breaking change) - component: make the
templatekey static (breaking change) - qweb: add
QWeb.registerTemplatemethod - qweb: rename
registermethod toregisterComponent(breaking change) - tags: introduce the
xmltag
v0.20.0
v0.20.0
Toward stability...
This release does not really introduce breaking changes, nor add new features. It however fixes a lot of small and not so small issues.
Changes
- router: better support for
hashmode - router: update app if parameterized route changes
- router: properly react on hashchanges
- component: solve tricky concurrency issue (with various concurrent renderings)
- component: fix many issues with internal component reconciliation algorithm
- router: properly handle
popstateevent - component: make
t-modelwork withselecttags (for initial non empty rendering) - component: make
t-modelwork with sub state keys - qweb: allow recursive templates t-calls
v0.19.0
v0.19.0
This release has pretty big changes in the way the store and connected components
works.
Changes
- QWeb: support XML documents (already parsed) as argument to the
addTemplatesmethod (in
addition to strings) - ConnectedComponent: separate
propsintopropsandstoreProps - ConnectedComponent: add
dispatchmethod - Component: simplify
rendermethod signature (and rendering process) - Store: merge
actionsandmutations - router: add documentation
- playground: add window management system example
- Component: improve mount/remount behaviour, add
renderBeforeRemountargument
tomount
v0.18.0
v0.18.0
Big release, with a lot of internal refactorings, and the first release of a Router.
Changes
- owl: move exported value around:
ObserverandEventBusare now inowl.core,StoreandConnectedComponentare now inowl.store - qweb fix: allow
t-ifwitht-call - component fix: properly handle
defaultPropsin connected components - qweb: add
forceUpdatemethod - component fix: solve tricky concurrency issue
- observer: complete rewrite using
Proxy - observer: remove
setanddeletemethods - component imp: allow multiple calls to
mountandunmount - owl router: add a first full implementation of a client router
v0.17.0
v0.17.0
- qweb: better error messages for bad xml templates
- qweb: add
renderToStringmethod - component: various prop validation improvements
- component: lots of fixes with bad slots interactions
- component: add
catchErrorhook - component: allow top level widget definition
- store: remove
connectfunction - store: add
ConnectedComponentclass - playground: improve examples
- playground: improve error display
v0.16.0
v0.16.0
For this release, the most visible improvement is definitely the possibility of defining components in a template with their name (instead of the t-widget directive):
<div>
<SomeComponent />
</div>Component
- allow component name in template (instead/in addition of
t-widget) - rename
t-widgetintot-component - fix: scoping issue with
t-on,t-componentandt-foreach - allow multiple roots in slots
- fix: ignore slot if no definition is given
- ref: prefix all private methods with
__ - fix: default slot now works with text nodes
- fix: many issues with
t-component, and inner/outerclass,t-att-class
QWeb
- make
QWeban event bus - add option to allow duplicate definition of templates
- fix: small issues with
t-debugdirective - fix: add missing not equals operator
- fix: properly handle extra spaces in
classattributes
Store
- imp: connected component reuse base component name
- fix: issues with connected parent/child components
- imp: allow extra arguments in
dispatchandcommit
Tools
- fix: playground: update sample code to use new
t-foreachsyntax - fix: various issues with tab handling
- imp: playground now logs intercepted errors in console
v0.15.0
v0.15.0
Component
- imp: add
t-asyncrootdirective - imp: add
t-modeldirective - imp: crashes if no template can be found
- imp: add support for default slot
Tools
- playground fix: do not remove empty tabs
- benchmarks: make react app look like the others
- playground: improve code samples
Store
- imp: memoize getters
v0.14.0
v0.14.0
Component
- add
t-slotdirective
QWeb
- fix: keep ref of unmounted (kept alive) widget
- remove support for
x_parityint-foreach - remove support for
#{.}string interpolation - remove support for integer
t-valueint-foreach - implement a new expression evaluator (much more powerful)
- fix: better support for templates with only a root string
- fix issue with duplicated nodes in transitions
Observer
- add
setanddeletestatic methods
Store
- allow connecting to multiple stores
- improve
connectAPI
Utils
- fix:
whenReadynow works for all possible document states whenReadynow returns aPromise
Tools
- rename
extrasintotools - rework benchmark application