@applicaster/quick-brick-native-apple 6.19.0 → 6.19.1-alpha.0

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "QuickBrickApple",
3
- "version": "6.19.0",
3
+ "version": "6.19.1-alpha.0",
4
4
  "platforms": {
5
5
  "ios": "16.0",
6
6
  "tvos": "16.0"
@@ -16,7 +16,7 @@
16
16
  "authors": "Applicaster LTD.",
17
17
  "source": {
18
18
  "git": "https://github.com/applicaster/Zapp-Frameworks.git",
19
- "tag": "@@applicaster/quick-brick-native-apple/6.19.0"
19
+ "tag": "@@applicaster/quick-brick-native-apple/6.19.1-alpha.0"
20
20
  },
21
21
  "requires_arc": true,
22
22
  "source_files": "universal/**/*.{m,swift}",
@@ -19,7 +19,12 @@ public class FocusableGroupView: RCTTVView {
19
19
  let preferredFocusDisabledDesc = isPreferredFocusDisabled ? "preferred-focus-disabled" : "preferred-focus-enabled"
20
20
  let dependentGroupsDesc = dependantGroupIds?.joined(separator: ",") ?? "NO_DEPS"
21
21
  let reactTagDesc = reactTag?.stringValue ?? "NO_TAG"
22
- let preferredFocusEnvDesc = preferredFocusEnvironments.first.map { String(describing: $0) } ?? "N/A"
22
+ let preferredFocusEnvDesc = preferredFocusEnvironments.first.map {
23
+ if let view = $0 as? FocusableView {
24
+ return "FocusableView(itemId: \(view.itemId ?? "NO_ID"), groupId: \(view.groupId ?? "NO_GROUP"), reactTag: \(view.reactTag?.stringValue ?? "NO_TAG"))"
25
+ }
26
+ return "N/A"
27
+ } ?? "N/A"
23
28
 
24
29
  return """
25
30
  FocusableGroupView[
@@ -205,6 +210,7 @@ public class FocusableGroupView: RCTTVView {
205
210
  private func setupFocus() {
206
211
  addLayoutGuide(groupFocusGuide)
207
212
 
213
+ backgroundColor = UIColor.yellow
208
214
  groupFocusGuide.leftAnchor.constraint(equalTo: leftAnchor).isActive = true
209
215
  groupFocusGuide.topAnchor.constraint(equalTo: topAnchor).isActive = true
210
216
  groupFocusGuide.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
@@ -259,6 +265,7 @@ public class FocusableGroupView: RCTTVView {
259
265
  }
260
266
 
261
267
  /// Update preferred Focus View for focus guide if next focusable view is part of this focus guide
268
+ /// and directly belongs to this group (not to a nested child group).
262
269
  ///
263
270
  /// - Parameter nextFocusItem: next focus item instance
264
271
  @MainActor func updatePreferredFocusView(nextFocusItem: UIFocusEnvironment?) {
@@ -269,6 +276,17 @@ public class FocusableGroupView: RCTTVView {
269
276
  return
270
277
  }
271
278
 
279
+ if let focusableView = nextFocusView as? FocusableView,
280
+ let childGroupId = focusableView.groupId,
281
+ childGroupId != itemId {
282
+ if let nestedProxy = GroupProxyManager.shared.getProxy(forGroupId: childGroupId),
283
+ let nestedGroup = nestedProxy.getGroup(),
284
+ nestedGroup.isDescendant(of: self) {
285
+ updatePreferredFocusEnv(with: nestedGroup)
286
+ }
287
+ return
288
+ }
289
+
272
290
  updatePreferredFocusEnv(with: nextFocusView)
273
291
  }
274
292
 
@@ -243,7 +243,7 @@ public class FocusableView: ParallaxView {
243
243
  /// Define if this view is preffered tv focused View
244
244
  @objc public var forceFocus: Bool = false {
245
245
  didSet {
246
- guard forceFocus else {
246
+ guard forceFocus, oldValue != forceFocus else {
247
247
  return
248
248
  }
249
249
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applicaster/quick-brick-native-apple",
3
- "version": "6.19.0",
3
+ "version": "6.19.1-alpha.0",
4
4
  "description": "iOS and tvOS native code for QuickBrick applications. This package is used to provide native logic for QuickBrick",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"