@iternio/react-native-auto-play 0.1.2 → 0.1.4

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.
Files changed (126) hide show
  1. package/lib/hooks/useFocusedEffect.d.ts +9 -0
  2. package/lib/hooks/useFocusedEffect.js +32 -0
  3. package/lib/hooks/useIsAutoPlayFocused.d.ts +7 -0
  4. package/lib/hooks/useIsAutoPlayFocused.js +20 -0
  5. package/lib/index.d.ts +1 -0
  6. package/lib/index.js +1 -0
  7. package/nitrogen/generated/android/c++/JFunc_void.hpp +2 -1
  8. package/nitrogen/generated/android/c++/JFunc_void_AlertDismissalReason.hpp +2 -1
  9. package/nitrogen/generated/android/c++/JFunc_void_ColorScheme.hpp +2 -1
  10. package/nitrogen/generated/android/c++/JFunc_void_Point.hpp +2 -1
  11. package/nitrogen/generated/android/c++/JFunc_void_Point_double.hpp +2 -1
  12. package/nitrogen/generated/android/c++/JFunc_void_Point_std__optional_Point_.hpp +2 -1
  13. package/nitrogen/generated/android/c++/JFunc_void_SafeAreaInsets.hpp +2 -1
  14. package/nitrogen/generated/android/c++/JFunc_void_VisibilityState.hpp +2 -1
  15. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -1
  16. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Location__std__optional_std__string_.hpp +2 -1
  17. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry__std__optional_std__string_.hpp +2 -1
  18. package/nitrogen/generated/android/c++/JFunc_void_std__optional_bool_.hpp +2 -1
  19. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +2 -1
  20. package/nitrogen/generated/android/c++/JFunc_void_std__string_ColorScheme.hpp +2 -1
  21. package/nitrogen/generated/android/c++/JFunc_void_std__string_ZoomEvent.hpp +2 -1
  22. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool.hpp +2 -1
  23. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +2 -1
  24. package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +6 -15
  25. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +2 -3
  26. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.cpp +5 -12
  27. package/nitrogen/generated/android/c++/JHybridClusterSpec.cpp +6 -15
  28. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +1 -0
  29. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +1 -0
  30. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +1 -0
  31. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +1 -0
  32. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.cpp +1 -0
  33. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +1 -0
  34. package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +6 -15
  35. package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +6 -15
  36. package/nitrogen/generated/android/c++/JMapTemplateConfig.hpp +14 -39
  37. package/nitrogen/generated/android/c++/JMessageTemplateConfig.hpp +6 -15
  38. package/nitrogen/generated/android/c++/JNavigationAlertAction.hpp +2 -3
  39. package/nitrogen/generated/android/c++/JNitroAction.hpp +2 -3
  40. package/nitrogen/generated/android/c++/JNitroBaseMapTemplateConfig.hpp +7 -18
  41. package/nitrogen/generated/android/c++/JNitroGridButton.hpp +2 -3
  42. package/nitrogen/generated/android/c++/JNitroManeuver.cpp +9 -9
  43. package/nitrogen/generated/android/c++/JNitroMapButton.hpp +2 -3
  44. package/nitrogen/generated/android/c++/JNitroNavigationAlert.hpp +3 -6
  45. package/nitrogen/generated/android/c++/JNitroRow.hpp +2 -3
  46. package/nitrogen/generated/android/c++/JNitroSection.hpp +1 -0
  47. package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +8 -21
  48. package/nitrogen/generated/android/c++/JTripSelectorCallback.hpp +2 -3
  49. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.cpp +1 -0
  50. package/nitrogen/generated/ios/swift/AssetImage.swift +1 -0
  51. package/nitrogen/generated/ios/swift/AutoText.swift +1 -0
  52. package/nitrogen/generated/ios/swift/Distance.swift +1 -0
  53. package/nitrogen/generated/ios/swift/DurationWithTimeZone.swift +1 -0
  54. package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
  55. package/nitrogen/generated/ios/swift/Func_void_AlertDismissalReason.swift +1 -1
  56. package/nitrogen/generated/ios/swift/Func_void_ColorScheme.swift +1 -1
  57. package/nitrogen/generated/ios/swift/Func_void_Point.swift +1 -1
  58. package/nitrogen/generated/ios/swift/Func_void_Point_double.swift +1 -1
  59. package/nitrogen/generated/ios/swift/Func_void_Point_std__optional_Point_.swift +1 -1
  60. package/nitrogen/generated/ios/swift/Func_void_SafeAreaInsets.swift +1 -1
  61. package/nitrogen/generated/ios/swift/Func_void_VisibilityState.swift +1 -1
  62. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
  63. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
  64. package/nitrogen/generated/ios/swift/Func_void_std__optional_Location__std__optional_std__string_.swift +1 -1
  65. package/nitrogen/generated/ios/swift/Func_void_std__optional_bool_.swift +1 -1
  66. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
  67. package/nitrogen/generated/ios/swift/Func_void_std__string_ColorScheme.swift +1 -1
  68. package/nitrogen/generated/ios/swift/Func_void_std__string_ZoomEvent.swift +1 -1
  69. package/nitrogen/generated/ios/swift/Func_void_std__string_bool.swift +1 -1
  70. package/nitrogen/generated/ios/swift/Func_void_std__string_std__string.swift +1 -1
  71. package/nitrogen/generated/ios/swift/GlyphImage.swift +1 -0
  72. package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +1 -0
  73. package/nitrogen/generated/ios/swift/HybridAutoPlaySpec.swift +0 -1
  74. package/nitrogen/generated/ios/swift/HybridAutoPlaySpec_cxx.swift +0 -1
  75. package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec.swift +0 -1
  76. package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec_cxx.swift +0 -1
  77. package/nitrogen/generated/ios/swift/HybridClusterSpec.swift +0 -1
  78. package/nitrogen/generated/ios/swift/HybridClusterSpec_cxx.swift +0 -1
  79. package/nitrogen/generated/ios/swift/HybridGridTemplateSpec.swift +0 -1
  80. package/nitrogen/generated/ios/swift/HybridGridTemplateSpec_cxx.swift +0 -1
  81. package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec.swift +0 -1
  82. package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec_cxx.swift +0 -1
  83. package/nitrogen/generated/ios/swift/HybridListTemplateSpec.swift +0 -1
  84. package/nitrogen/generated/ios/swift/HybridListTemplateSpec_cxx.swift +0 -1
  85. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec.swift +0 -1
  86. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec_cxx.swift +0 -1
  87. package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec.swift +0 -1
  88. package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec_cxx.swift +0 -1
  89. package/nitrogen/generated/ios/swift/ImageLane.swift +1 -0
  90. package/nitrogen/generated/ios/swift/InformationTemplateConfig.swift +1 -0
  91. package/nitrogen/generated/ios/swift/LaneGuidance.swift +1 -0
  92. package/nitrogen/generated/ios/swift/ListTemplateConfig.swift +1 -0
  93. package/nitrogen/generated/ios/swift/Location.swift +1 -0
  94. package/nitrogen/generated/ios/swift/MapTemplateConfig.swift +1 -0
  95. package/nitrogen/generated/ios/swift/MessageTemplateConfig.swift +1 -0
  96. package/nitrogen/generated/ios/swift/NavigationAlertAction.swift +1 -0
  97. package/nitrogen/generated/ios/swift/NitroAction.swift +1 -0
  98. package/nitrogen/generated/ios/swift/NitroAttributedString.swift +1 -0
  99. package/nitrogen/generated/ios/swift/NitroAttributedStringImage.swift +1 -0
  100. package/nitrogen/generated/ios/swift/NitroBaseMapTemplateConfig.swift +1 -0
  101. package/nitrogen/generated/ios/swift/NitroCarPlayDashboardButton.swift +1 -0
  102. package/nitrogen/generated/ios/swift/NitroColor.swift +1 -0
  103. package/nitrogen/generated/ios/swift/NitroGridButton.swift +1 -0
  104. package/nitrogen/generated/ios/swift/NitroLoadingManeuver.swift +1 -0
  105. package/nitrogen/generated/ios/swift/NitroMapButton.swift +1 -0
  106. package/nitrogen/generated/ios/swift/NitroMessageManeuver.swift +1 -0
  107. package/nitrogen/generated/ios/swift/NitroNavigationAlert.swift +1 -0
  108. package/nitrogen/generated/ios/swift/NitroRoutingManeuver.swift +1 -0
  109. package/nitrogen/generated/ios/swift/NitroRow.swift +1 -0
  110. package/nitrogen/generated/ios/swift/NitroSection.swift +1 -0
  111. package/nitrogen/generated/ios/swift/Point.swift +1 -0
  112. package/nitrogen/generated/ios/swift/PreferredImageLane.swift +1 -0
  113. package/nitrogen/generated/ios/swift/RouteChoice.swift +1 -0
  114. package/nitrogen/generated/ios/swift/SafeAreaInsets.swift +1 -0
  115. package/nitrogen/generated/ios/swift/SearchTemplateConfig.swift +1 -0
  116. package/nitrogen/generated/ios/swift/TravelEstimates.swift +1 -0
  117. package/nitrogen/generated/ios/swift/TripConfig.swift +1 -0
  118. package/nitrogen/generated/ios/swift/TripPoint.swift +1 -0
  119. package/nitrogen/generated/ios/swift/TripPreviewTextConfiguration.swift +1 -0
  120. package/nitrogen/generated/ios/swift/TripSelectorCallback.swift +1 -0
  121. package/nitrogen/generated/ios/swift/TripsConfig.swift +1 -0
  122. package/package.json +2 -2
  123. package/src/hooks/useFocusedEffect.ts +42 -0
  124. package/src/index.ts +1 -0
  125. package/lib/specs/VoiceInput.nitro.d.ts +0 -8
  126. package/lib/specs/VoiceInput.nitro.js +0 -1
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
@@ -5,6 +5,7 @@
5
5
  /// Copyright © 2025 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import Foundation
8
9
  import NitroModules
9
10
 
10
11
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iternio/react-native-auto-play",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Android Auto and Apple CarPlay for react-native",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",
@@ -59,7 +59,7 @@
59
59
  "devDependencies": {
60
60
  "@types/jest": "^29.5.12",
61
61
  "@types/react": "^19.1.03",
62
- "nitrogen": "^0.31.6",
62
+ "nitrogen": "^0.31.10",
63
63
  "typescript": "^5.8.3"
64
64
  },
65
65
  "peerDependencies": {
@@ -0,0 +1,42 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+ import { HybridAutoPlay } from '..';
3
+
4
+ /**
5
+ * An effect hook that only runs when the CarPlay/Android Auto screen is visible to the user and dependencies have changed.
6
+ * It behaves like `useEffect`, but the effect function is only executed if the screen is visible.
7
+ *
8
+ * @param moduleName The name of the root module to listen to for focus changes - one of AutoPlayModules or a cluster uuid.
9
+ * @param effect The effect function to run.
10
+ * @param deps An array of dependencies for the effect.
11
+ */
12
+ export function useFocusedEffect(
13
+ moduleName: string,
14
+ effect: () => void | (() => void),
15
+ deps: readonly unknown[]
16
+ ) {
17
+ const [isFocused, setIsFocused] = useState(false);
18
+ const effectRef = useRef(effect);
19
+
20
+ useEffect(() => {
21
+ effectRef.current = effect;
22
+ }, [effect]);
23
+
24
+ useEffect(() => {
25
+ return HybridAutoPlay.addListenerRenderState(moduleName, (state) => {
26
+ if (state === 'willAppear' || state === 'willDisappear') {
27
+ // react on actual visibility changes only
28
+ return;
29
+ }
30
+
31
+ setIsFocused(state === 'didAppear');
32
+ });
33
+ }, [moduleName]);
34
+
35
+ useEffect(() => {
36
+ if (!isFocused) {
37
+ return;
38
+ }
39
+
40
+ return effectRef.current();
41
+ }, [isFocused, ...deps]);
42
+ }
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ export enum AutoPlayModules {
25
25
 
26
26
  export * from './components/SafeAreaView';
27
27
  export * from './hooks/useAndroidAutoTelemetry';
28
+ export * from './hooks/useFocusedEffect';
28
29
  export * from './hooks/useMapTemplate';
29
30
  export * from './hooks/useSafeAreaInsets';
30
31
  export * from './hooks/useVoiceInput';
@@ -1,8 +0,0 @@
1
- import type { HybridObject } from 'react-native-nitro-modules';
2
- import type { CleanupCallback } from '../types/Event';
3
- export interface VoiceInput extends HybridObject<{
4
- android: 'kotlin';
5
- ios: 'swift';
6
- }> {
7
- registerVoiceInputListener(callback: (voiceInputResult?: string, error?: string) => void): CleanupCallback;
8
- }
@@ -1 +0,0 @@
1
- export {};