@dazn/kopytko-framework 1.0.5 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## [1.1.1](https://github.com/getndazn/kopytko-framework/compare/v1.1.0...v1.1.1) (2022-06-02)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * validating parent when removing children from Kopytko component ([#29](https://github.com/getndazn/kopytko-framework/issues/29)) ([fefe313](https://github.com/getndazn/kopytko-framework/commit/fefe31360aa3d90ab7f97ecd5ac422530fe9351e))
7
+
8
+ # [1.1.0](https://github.com/getndazn/kopytko-framework/compare/v1.0.6...v1.1.0) (2022-05-20)
9
+
10
+
11
+ ### Features
12
+
13
+ * added enqueueUpdate function to reduce number of rerenders ([#28](https://github.com/getndazn/kopytko-framework/issues/28)) ([4c80273](https://github.com/getndazn/kopytko-framework/commit/4c80273af7c20ded4bc41cdb94647142b209695f))
14
+
15
+ ## [1.0.6](https://github.com/getndazn/kopytko-framework/compare/v1.0.5...v1.0.6) (2022-05-20)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * not calling state update callbacks if kopytko is not mounted ([#27](https://github.com/getndazn/kopytko-framework/issues/27)) ([27d5618](https://github.com/getndazn/kopytko-framework/commit/27d5618909e7fd266db71e88acfa63071b037921))
21
+
1
22
  ## [1.0.5](https://github.com/getndazn/kopytko-framework/compare/v1.0.4...v1.0.5) (2022-05-19)
2
23
 
3
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dazn/kopytko-framework",
3
- "version": "1.0.5",
3
+ "version": "1.1.1",
4
4
  "description": "A modern Roku's Brightscript framework",
5
5
  "keywords": [
6
6
  "brightscript",
@@ -82,6 +82,10 @@ sub forceUpdate()
82
82
  m._kopytkoUpdater.forceStateUpdate()
83
83
  end sub
84
84
 
85
+ sub enqueueUpdate()
86
+ m._kopytkoUpdater.enqueueStateUpdate()
87
+ end sub
88
+
85
89
  sub updateProps(props = {} as Object)
86
90
  m.top.update(props)
87
91
  _updateDOM()
@@ -98,7 +98,11 @@ function KopytkoDOM() as Object
98
98
 
99
99
  if (element <> Invalid)
100
100
  m._destroyKopytkoElement(element)
101
- element.getParent().removeChild(element)
101
+ parent = element.getParent()
102
+ ' parent may be invalid if it was removed from the view while in the middle of removing children elements
103
+ if (parent <> Invalid)
104
+ parent.removeChild(element)
105
+ end if
102
106
  end if
103
107
 
104
108
  rootElement.delete(elementId)
@@ -10,8 +10,10 @@ function KopytkoUpdater(baseStateUpdatedCallback as Function)
10
10
 
11
11
  ' State update callbacks are asynchronous to prevent multiple unnecessary rerenders
12
12
  ' when setState is called more than once in a function
13
- prototype.enqueueStateUpdate = sub (partialState as Object, callback = Invalid as Dynamic)
13
+ prototype.enqueueStateUpdate = sub (partialState = {} as Object, callback = Invalid as Dynamic)
14
14
  m._appendPartialState(partialState)
15
+ if (NOT m._isMounted()) then return
16
+
15
17
  if (callback <> Invalid) then m._stateUpdatedCallbacks.push(callback)
16
18
 
17
19
  if (NOT m._isUpdating())