Aaron Bohy
9e37b968e8
[FIX] component: error handling: rendering with sub components
...
Closes #425
2019-10-30 13:27:48 +01:00
Géry Debongnie
9edf29a3a1
[IMP] context: group components by depth
...
closes #399
2019-10-29 16:02:51 +01:00
Géry Debongnie
5614c85b04
[IMP] qweb: implement t-key with a directive
...
closes #331
2019-10-28 11:45:51 +01:00
Aaron Bohy
5d57a7bf13
[FIX] component: updateProps: validation and default values
...
Before this rev., default values weren't taken into account when
validating props whenever a component was updated. Moreover, there
was no test attesting that props were validated at update.
2019-10-28 11:32:43 +01:00
Géry Debongnie
4ebe419c56
[FIX] component: make sure props are validated in all cases
...
closes #379
2019-10-28 11:32:43 +01:00
Géry Debongnie
9779cd196c
[REF] fiber: small cleanups
2019-10-28 11:32:43 +01:00
Géry Debongnie
9cee12d7b4
[IMP] component: propagate error to mount and render
2019-10-28 11:32:43 +01:00
Géry Debongnie
2c563ee380
[REF] component: move error handling into the fiber
2019-10-28 11:32:43 +01:00
Géry Debongnie
3c38bbc076
[REF] component: large cleanup of concurrency branch
...
We remove here old comments, add some tests and documentation, and in
general, make sure the state of the code is in a good shape
part of #330
2019-10-25 16:01:52 +02:00
Aaron Bohy
9c5cad15c1
[IMP] component: refactor rendering pipeline
...
This commit introduces a brand new rendering system based on a fiber
class and a scheduler.
closes #330
2019-10-25 16:01:52 +02:00
Géry Debongnie
2bed1cfbd1
[REF] asyncroot: create asyncroot component
...
This component replaces the t-asyncroot directive.
2019-10-25 16:01:52 +02:00
Aaron Bohy
2beb12678e
[IMP] t-on directive: allow empty handler
...
Closes #377
2019-10-25 14:11:44 +02:00
Aaron Bohy
0ea1091692
[IMP] t-on directive: handle inline statements
...
Closes #265
2019-10-25 14:11:44 +02:00
Géry Debongnie
13128ed425
[FIX] component: do not validate props twice
...
it is not useful to do it in the component directive, especially since
it is done in the constructor, and the default props are not applied.
closes #379
2019-10-22 21:58:51 +02:00
Géry Debongnie
be556a970e
[FIX] qweb: properly calls directive finalizers
...
closes #382
2019-10-22 21:56:29 +02:00
Géry Debongnie
f6d6da8393
[FIX] component: fix issues with component internal template key
...
closes #298
2019-10-21 09:41:27 +02:00
Géry Debongnie
2825a5a55d
[FIX] qweb: properly handle xml comments
2019-10-15 15:47:50 +02:00
Géry Debongnie
0788d9fe75
[REF] qweb: rename Context into CompilationContext
2019-10-14 11:06:59 +02:00
Géry Debongnie
1337aa0107
[IMP] component: add current key for easier hook creation
...
closes #319
2019-10-14 10:25:34 +02:00
Géry Debongnie
41b0618c93
[FIX] qweb: improve generated compiled code
2019-10-11 14:10:44 +02:00
Géry Debongnie
07dac970f7
[IMP[ component/hooks: add onWillStart and onWillUpdateProps
2019-10-09 15:09:26 +02:00
Géry Debongnie
cedb1f411f
[REF] component: move template check in constructor
2019-10-08 13:51:55 +02:00
Géry Debongnie
683993dbc4
[FIX] component/hooks: onWillUnmount was not properly called
2019-10-07 16:01:28 +02:00
Géry Debongnie
c3453d35b9
[IMP] hooks/component: remove updateEnv, add useSubEnv
...
closes #182
2019-10-04 22:54:27 +02:00
Géry Debongnie
b0dd0252a4
[REF] component: move method at proper place
2019-10-04 22:54:27 +02:00
Géry Debongnie
022b29b6a0
[IMP] component/qweb: remove t-mounted directive
...
The t-mounted directive main goals can be achieved with hooks, in a
better and more intuitive way.
closes #308
2019-10-03 10:57:24 +02:00
Géry Debongnie
367725d194
[IMP] hooks: add onWillPatch and onPatched
...
This commit also changes the behaviour of willPatch and patched: they no
longer transfer data from one to the other, because it can be done
cleanly by hooks and a closure.
closes #307
2019-10-03 10:20:28 +02:00
Géry Debongnie
f6820bb8ac
[REF] hooks: better implementation of onMounted/onWillUnmount
2019-09-28 21:14:40 +02:00
Géry Debongnie
5cdaa7b473
[IMP] hooks: implement useRef hook
...
closes #194
2019-09-27 11:20:08 +02:00
Géry Debongnie
5335fb8fba
[IMP] components: add hooks mechanism
...
part of #194
2019-09-27 11:20:08 +02:00
Géry Debongnie
cc82b3ffcd
[IMP] component: support dynamic t-component
2019-09-21 21:58:19 +02:00
Géry Debongnie
bbbaf95c8e
Merge pull request #296 from odoo/issue-293-owl-fibers
...
[MERGE] component: introduce owl fiber
2019-09-20 13:54:59 +02:00
Géry Debongnie
caa63628dc
[REF] component: refactor fiber creation methods
2019-09-20 11:14:50 +02:00
Géry Debongnie
7a49b9d94e
[REF] component: move render props and promise to fiber
...
part of #293
2019-09-20 10:48:10 +02:00
Géry Debongnie
01eb338e69
[REF] component: move patchqueue management to fiber
...
part of #293
2019-09-20 10:47:58 +02:00
Géry Debongnie
3048c6f961
[REF] component: introduce fiber
...
part of #293
2019-09-20 10:47:55 +02:00
Géry Debongnie
9846b2e997
[IMP] tags: introduce xml tag
...
Big change! This commit introduces an xml function tag to easily define
inline templates.
This is a pretty big change toward single file owl components
Part of #284
2019-09-12 14:17:21 +02:00
Géry Debongnie
5bf7a5c671
[IMP] component: make template key static
...
closes #288
2019-09-12 14:17:21 +02:00
Géry Debongnie
4fc3423682
[IMP] component: support dynamic t-props
...
It is useful in some rare situations.
closes #144
2019-09-11 14:12:52 +02:00
Géry Debongnie
e1acf66143
[IMP] component: components key is now static
...
This is a breaking change!
closes #279
2019-09-11 11:18:49 +02:00
Géry Debongnie
53a8841914
[TEST] component: snapshots slot functions
2019-09-05 14:33:43 +02:00
Géry Debongnie
0c1a7aabae
[FIX] component: better templateId for multiple subcomponents
...
Of course, the templateId computation is kind of tricky. Here, an issue
occurred because the templateId did not take the componentId into
account when we were in a loop, but with no keyed parent.
This meant that multiple sub components shared the same templateId,
confusing the vdom algorithm.
2019-09-03 16:38:24 +02:00
Géry Debongnie
cfdce29ce7
[FIX] component: avoid key collisions in sub components
...
This is a difficult part of owl: we need to be able to reconcile the
vdom generated (this is done with our virtual dom algorithm), but also
to be able to reconcile the proper components.
The issue here is that when we are in a list, with a t-key attribute on all
list nodes, and those list nodes contains sub component, then the
component system used the index of the list, and did not take into
account the key from the parent. The fix is to keep track of the
current key in the context, and uses that as a part of the templateId.
2019-09-03 12:13:57 +02:00
Géry Debongnie
b344d73e07
[FIX] component: prevent collision between template ids and keys
2019-09-02 15:27:37 +02:00
Géry Debongnie
4cd08d25c8
[FIX] component: solve tricky concurrency issue
...
In some specific situation, a component could crash, because it was
destroyed before being mounted, but reused anyway for another rendering.
2019-09-01 21:24:54 +02:00
Géry Debongnie
f9861040c8
[FIX] router: properly react on hashchange
...
Before this commit, hashchanges were not taken into account by the
router, if used in history mode.
Also, it's stupid, but i ran prettier on the codebase
2019-09-01 11:45:13 +02:00
Géry Debongnie
e6a3ede4a6
[FIX] component: improve unmount/remount behaviour
2019-08-28 11:41:10 +02:00
Géry Debongnie
9b3a97e732
[DOC] component: improve internal documentation
2019-08-26 12:19:11 +02:00
Géry Debongnie
9843d16585
[REF] component: improve render method
2019-08-26 10:31:11 +02:00
Géry Debongnie
e690991a6a
[FIX] component: better heuristic to determine if was mounted
2019-08-22 14:55:31 +02:00