Géry Debongnie
a402115227
[IMP] props validation: cannot set default value on mandatory props
2022-02-04 13:55:44 +01:00
Géry Debongnie
5a7928d3e4
[IMP] compiler: translatableAttributes can be added/removed
2022-02-03 13:41:49 +01:00
Samuel Degueldre
9424312573
[IMP] compiler: allow to declare default slot scope on component
2022-02-02 09:09:23 +01:00
Géry Debongnie
c5e197ddc1
[REF] allow external code to override validateTarget
2022-02-02 08:51:35 +01:00
Géry Debongnie
fa7a393f27
[IMP] component: validate mounting target at patch time
2022-01-31 17:01:20 +01:00
Géry Debongnie
efaa186544
[IMP] component: disallow calling hooks outside of setup
...
(and constructor)
Doing so could cause strange and difficult bugs
2022-01-31 15:08:31 +01:00
Bruno Boi
45ea6a195e
[FIX] hooks: useSubEnv will not erase previous useChildSubEnv
2022-01-31 14:49:25 +01:00
Géry Debongnie
924dffeb36
[TEST] component: add test to make sure a specific issue does not arise
2022-01-27 15:02:44 +01:00
Bruno Boi
4b88787a72
[FIX] compiler: never add _ prefix to non variable token
2022-01-27 14:41:16 +01:00
Samuel Degueldre
6f0a4b1c92
[FIX] compiler: do not pass dynamic props object as is
...
The child receiving the props can observe changes made to the passed
t-props object which is not desirable.
2022-01-27 13:19:14 +01:00
Bruno Boi
3f575148b6
[FIX] compiler: add _ prefix to local variables while compiling an expression
2022-01-27 10:57:13 +01:00
Géry Debongnie
4a971f2963
[IMP] hooks: introduce useChildSubEnv and change useSubEnv
2022-01-27 10:35:06 +01:00
Géry Debongnie
d7850aaf7a
[FIX] compiler: does not modify xml doc in place
2022-01-27 10:34:41 +01:00
Bruno Boi
0e13b859d0
[FIX] component: properly capture expression of t-model
2022-01-27 09:23:52 +01:00
Géry Debongnie
11d4aae8d2
[FIX] compiler: add missing ; in some places
2022-01-24 14:51:12 +01:00
Géry Debongnie
b159a073d9
[FIX] component: proper error message in dev mode in some cases
2022-01-24 13:18:19 +01:00
Lucas Perais (lpe)
d9b189bcba
[FIX] compiler: force new block for svg nested in html
2022-01-24 12:56:43 +01:00
Géry Debongnie
7ef1fe0b99
[FIX] svg: allow path as root tag
2022-01-24 10:29:22 +01:00
Samuel Degueldre
211ecdf689
[FIX] blockdom: fix VHtml patching not setting its html correctly
2022-01-24 09:36:43 +01:00
Lucas Perais (lpe)
b208894d38
[FIX] compiler: t-model on select with options with dynamic values
2022-01-21 16:38:58 +01:00
Géry Debongnie
de584b01a8
[FIX] reactivity: do not observe eventtarget and other stuff
2022-01-21 15:40:27 +01:00
Géry Debongnie
525029b682
[IMP] reactivity: introduces markRaw and toRaw functions
2022-01-21 15:40:27 +01:00
Lucas Perais (lpe)
b88f7a03e9
[FIX] compiler: svg in new block takes the right namespace
2022-01-21 09:32:22 +01:00
Lucas Perais (lpe)
055cbda750
[FIX] compiler: t-key on a sub-domnode pushes an anchor in parent block
2022-01-20 18:13:01 +01:00
Géry Debongnie
45f6a8e97a
[REF] utils: move batched from reactivity to utils
2022-01-20 15:48:50 +01:00
Géry Debongnie
6091912c54
[IMP] component: improve error message when invalid handler
2022-01-20 15:48:50 +01:00
Géry Debongnie
586f90f6d1
[FIX] doc: fix broken link, and fix doc link checker test
2022-01-20 12:41:31 +01:00
Géry Debongnie
6a15874d23
[FIX] typing: Component class should be generic on Props and Env
...
Otherwise, it prevents proper typing with typescript
2022-01-19 14:46:26 +01:00
Géry Debongnie
dfc090bb12
[IMP] portal: ensure that destroy is synchronous
2022-01-19 14:11:59 +01:00
Géry Debongnie
b06791c950
[IMP] components: crash when using unknown suffix/modifiers
2022-01-19 14:00:24 +01:00
Lucas Perais (lpe)
f7843c7c00
[FIX] component, error_handling: do not cancel the error fiber twice
2022-01-19 12:28:28 +01:00
Géry Debongnie
ca9d4ea762
[IMP] doc: add changelog to doc test, update changelog
2022-01-19 11:31:53 +01:00
Lucas Perais (lpe)
dbee8f50d1
[FIX] components: cascading render after microtaskTick (makeChildFiber)
...
Co-authored-by: Samuel Degueldre <sad@odoo.com >
Co-authored-by: François Georis <fge@odoo.com >
2022-01-19 09:23:17 +01:00
Michael (mcm)
057e6944d6
[FIX] bind lifecycle callbacks to component
...
Before this commit, some of the callbacks were bound to the component
and some were not.
This commit makes all the callbacks bind to the component.
2022-01-18 15:02:07 +01:00
Jorge Pinna Puissant
9577d70b4b
[IMP] portal: compile t-portal in an internal Component Portal
...
This commit also clean-up the deepRemove for the Portal that is not
needed any more.
2022-01-17 16:04:01 +01:00
Géry Debongnie
6ff6d59895
[FIX] components: only call handlers if component is mounted
2022-01-17 15:46:18 +01:00
Géry Debongnie
7ba0c9f8ba
[FIX] blockdom: toString method in multi could crash
2022-01-17 13:55:39 +01:00
Lucas Perais (lpe)
79a51f2317
[FIX] app: t_call recursive template is bound to the correct this
2022-01-17 10:46:08 +01:00
Lucas Perais (lpe)
483335df6c
[FIX] compiler: slot are called with a specific and different key
2022-01-14 15:46:02 +01:00
Lucas Perais (lpe)
68684a9a45
[FIX] component, fiber: subchildren should also patch and destroy their children
...
Have a GrandParent which controls whether one of its GrandChildren is displayed or not.
First, the GrandChild is displayed. Then, change the state of the GrandParent in order to kill
the GrandChild.
Before this commit the GrandChild is only removed from the DOM, as bdom correctly works.
But it is not destroyed.
After this commit, the GrandChild is correctly destroyed.
2022-01-14 09:51:55 +01:00
Lucas Perais (lpe)
e5d773daa8
[FIX] components tests: place tests in right submodule
2022-01-14 09:51:55 +01:00
Jorge Pinna Puissant
00ffab1f64
[IMP] portal: portal as a Directive
...
Before this commit, portal was a Component, now is a directive.
This commit also clean some unused code, and fix an issue on the clean
optimization when a portal is found in a condition or a loop.
2022-01-13 15:02:11 +01:00
Lucas Perais (lpe)
a226f92def
[FIX] components: avoid leaks when children are outdated/destroyed
...
Every use case involving some sort of key set on a component would give birth to a leak in an async context:
- If a key of a component changed, the outdated one was never destroyed.
- destroyed component were never removed from their parent's reference map.
This commit solves both issues, that are tightly linked anyway.
2022-01-13 10:17:47 +01:00
Lucas Perais (lpe)
1749bce155
[FIX] test/helpers: useLogLifeCycle supports custom key
2022-01-13 10:17:47 +01:00
Géry Debongnie
0b4b7899f6
[FIX] portal: properly handle errors
...
Before this commit, Portal overrode the _render function for its
component node, which means it bypassed the error handling mechanism
that was implemented in that method. It could have been fixed by
duplicating the error handling code as well, but a better solution in my
opinion is to simply override the renderFn function. This is closer to
the actual intent of the portal implementation: wrap the result of the
rendering in a VPortal vnode.
2022-01-12 08:51:28 +01:00
Lucas Perais (lpe)
5c324fa075
[FIX] app, components: dynamic t-call should propagate the key
...
Have a Component which has a Component node, and a dynamic t-call itself having
a Component node.
Before this commit, both children had the same `key`, (as in the key in parent.children, which registers on the parent all its children).
As a result, the scheduler was endlessly hanging.
After this commit, it works as expected.
2022-01-10 15:29:25 +01:00
Géry Debongnie
5b1132f01a
[FIX] compiler: handle t-set as functions
2021-12-28 13:50:35 +01:00
Géry Debongnie
7fdca35a74
[FIX] reactivity: work even if no callback is given
2021-12-22 14:59:28 +01:00
Géry Debongnie
489e20843c
[FIX] components: make sure t-ref work with t-if/t-else
2021-12-22 13:58:02 +01:00
Samuel Degueldre
34b781aeed
[IMP] compiler: scope generated ids to their prefix
...
This means that unrelated ids (eg the id of a template, variable or key)
not longer share the same incrementing counter, meaning that you no
longer see a variable named "v2" unless another variable "v1" was
generated previously, this is also true for block data.
2021-12-22 13:30:09 +01:00