react-native-acoustic-connect-beta 19.0.25 → 19.0.27

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 (336) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/ConnectConfig.example.json +1 -1
  3. package/README.md +28 -15
  4. package/android/src/main/assets/ConnectAdvancedConfig.json +1 -1
  5. package/android/src/main/assets/ConnectBasicConfig.properties +1 -1
  6. package/android/src/main/java/com/acousticconnectrn/HybridAcousticConnectRN.kt +23 -64
  7. package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts +10 -9
  8. package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts.map +1 -1
  9. package/package.json +2 -9
  10. package/src/specs/react-native-acoustic-connect.nitro.ts +10 -9
  11. package/Examples/SampleUI/.bundle/config +0 -2
  12. package/Examples/SampleUI/.detoxrc.js +0 -83
  13. package/Examples/SampleUI/.eslintrc.js +0 -4
  14. package/Examples/SampleUI/.prettierrc.js +0 -7
  15. package/Examples/SampleUI/.watchmanconfig +0 -1
  16. package/Examples/SampleUI/App.js +0 -1
  17. package/Examples/SampleUI/ConnectConfig.json +0 -180
  18. package/Examples/SampleUI/Gemfile +0 -10
  19. package/Examples/SampleUI/Gemfile.lock +0 -121
  20. package/Examples/SampleUI/README.md +0 -79
  21. package/Examples/SampleUI/android/app/build.gradle +0 -129
  22. package/Examples/SampleUI/android/app/debug.keystore +0 -0
  23. package/Examples/SampleUI/android/app/proguard-rules.pro +0 -10
  24. package/Examples/SampleUI/android/app/src/debug/AndroidManifest.xml +0 -9
  25. package/Examples/SampleUI/android/app/src/main/AndroidManifest.xml +0 -31
  26. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainActivity.kt +0 -30
  27. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainApplication.kt +0 -53
  28. package/Examples/SampleUI/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
  29. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  30. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  31. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  32. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  33. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  34. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  35. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  36. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  37. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  38. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  39. package/Examples/SampleUI/android/app/src/main/res/values/strings.xml +0 -3
  40. package/Examples/SampleUI/android/app/src/main/res/values/styles.xml +0 -9
  41. package/Examples/SampleUI/android/build.gradle +0 -21
  42. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  43. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  44. package/Examples/SampleUI/android/gradle.properties +0 -39
  45. package/Examples/SampleUI/android/gradlew +0 -252
  46. package/Examples/SampleUI/android/gradlew.bat +0 -94
  47. package/Examples/SampleUI/android/settings.gradle +0 -21
  48. package/Examples/SampleUI/app.json +0 -51
  49. package/Examples/SampleUI/assets/fonts/Abel-Regular.ttf +0 -0
  50. package/Examples/SampleUI/assets/fonts/NotoSans-Regular.ttf +0 -0
  51. package/Examples/SampleUI/assets/images/android-icon.png +0 -0
  52. package/Examples/SampleUI/assets/images/artist-1.jpg +0 -0
  53. package/Examples/SampleUI/assets/images/artist-2.jpg +0 -0
  54. package/Examples/SampleUI/assets/images/avatar.png +0 -0
  55. package/Examples/SampleUI/assets/images/beach.jpg +0 -0
  56. package/Examples/SampleUI/assets/images/bridge.jpg +0 -0
  57. package/Examples/SampleUI/assets/images/chameleon.jpg +0 -0
  58. package/Examples/SampleUI/assets/images/city.jpg +0 -0
  59. package/Examples/SampleUI/assets/images/email-icon.png +0 -0
  60. package/Examples/SampleUI/assets/images/favorite.png +0 -0
  61. package/Examples/SampleUI/assets/images/forest.jpg +0 -0
  62. package/Examples/SampleUI/assets/images/paper-icon.png +0 -0
  63. package/Examples/SampleUI/assets/images/players-2.jpg +0 -0
  64. package/Examples/SampleUI/assets/images/players.jpg +0 -0
  65. package/Examples/SampleUI/assets/images/restaurant-1.jpg +0 -0
  66. package/Examples/SampleUI/assets/images/restaurant-2.jpg +0 -0
  67. package/Examples/SampleUI/assets/images/song-1.jpg +0 -0
  68. package/Examples/SampleUI/assets/images/song-2.jpg +0 -0
  69. package/Examples/SampleUI/assets/images/splash.png +0 -0
  70. package/Examples/SampleUI/assets/images/strawberries.jpg +0 -0
  71. package/Examples/SampleUI/assets/images/wrecked-ship.jpg +0 -0
  72. package/Examples/SampleUI/assets/styles/fonts.css +0 -47
  73. package/Examples/SampleUI/babel.config.js +0 -22
  74. package/Examples/SampleUI/index.js +0 -9
  75. package/Examples/SampleUI/ios/.xcode.env +0 -11
  76. package/Examples/SampleUI/ios/Podfile +0 -71
  77. package/Examples/SampleUI/ios/Podfile.lock +0 -2276
  78. package/Examples/SampleUI/ios/SampleUI/AppDelegate.h +0 -7
  79. package/Examples/SampleUI/ios/SampleUI/AppDelegate.mm +0 -31
  80. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
  81. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/Contents.json +0 -6
  82. package/Examples/SampleUI/ios/SampleUI/Info.plist +0 -52
  83. package/Examples/SampleUI/ios/SampleUI/LaunchScreen.storyboard +0 -47
  84. package/Examples/SampleUI/ios/SampleUI/PrivacyInfo.xcprivacy +0 -48
  85. package/Examples/SampleUI/ios/SampleUI/main.m +0 -10
  86. package/Examples/SampleUI/ios/SampleUI.xcodeproj/project.pbxproj +0 -785
  87. package/Examples/SampleUI/ios/SampleUI.xcodeproj/xcshareddata/xcschemes/SampleUI.xcscheme +0 -105
  88. package/Examples/SampleUI/ios/SampleUI.xcworkspace/contents.xcworkspacedata +0 -10
  89. package/Examples/SampleUI/ios/SampleUITests/Info.plist +0 -24
  90. package/Examples/SampleUI/ios/SampleUITests/SampleUITests.m +0 -66
  91. package/Examples/SampleUI/jest.config.js +0 -3
  92. package/Examples/SampleUI/metro.config.js +0 -54
  93. package/Examples/SampleUI/package.json +0 -65
  94. package/Examples/SampleUI/scripts/integration-test-android.sh +0 -292
  95. package/Examples/SampleUI/src/DrawerItems.tsx +0 -322
  96. package/Examples/SampleUI/src/ExampleList.tsx +0 -175
  97. package/Examples/SampleUI/src/Examples/ActivityIndicatorExample.tsx +0 -73
  98. package/Examples/SampleUI/src/Examples/AnimatedFABExample/AnimatedFABExample.tsx +0 -220
  99. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFAB.tsx +0 -70
  100. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFABControls.tsx +0 -146
  101. package/Examples/SampleUI/src/Examples/AnimatedFABExample/index.ts +0 -1
  102. package/Examples/SampleUI/src/Examples/AppbarExample.tsx +0 -263
  103. package/Examples/SampleUI/src/Examples/AvatarExample.tsx +0 -76
  104. package/Examples/SampleUI/src/Examples/BadgeExample.tsx +0 -97
  105. package/Examples/SampleUI/src/Examples/BannerExample.tsx +0 -152
  106. package/Examples/SampleUI/src/Examples/BottomNavigationBarExample.tsx +0 -94
  107. package/Examples/SampleUI/src/Examples/BottomNavigationExample.tsx +0 -205
  108. package/Examples/SampleUI/src/Examples/ButtonExample.tsx +0 -405
  109. package/Examples/SampleUI/src/Examples/CardExample.tsx +0 -245
  110. package/Examples/SampleUI/src/Examples/CheckboxExample.tsx +0 -87
  111. package/Examples/SampleUI/src/Examples/CheckboxItemExample.tsx +0 -72
  112. package/Examples/SampleUI/src/Examples/ChipExample.tsx +0 -432
  113. package/Examples/SampleUI/src/Examples/DataTableExample.tsx +0 -128
  114. package/Examples/SampleUI/src/Examples/DialogExample.tsx +0 -217
  115. package/Examples/SampleUI/src/Examples/Dialogs/DialogTextComponent.tsx +0 -31
  116. package/Examples/SampleUI/src/Examples/Dialogs/DialogTrackingTest.tsx +0 -307
  117. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithCustomColors.tsx +0 -57
  118. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithDismissableBackButton.tsx +0 -38
  119. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithIcon.tsx +0 -42
  120. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLoadingIndicator.tsx +0 -48
  121. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLongText.tsx +0 -81
  122. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithRadioBtns.tsx +0 -111
  123. package/Examples/SampleUI/src/Examples/Dialogs/UndismissableDialog.tsx +0 -30
  124. package/Examples/SampleUI/src/Examples/Dialogs/index.tsx +0 -44
  125. package/Examples/SampleUI/src/Examples/DividerExample.tsx +0 -30
  126. package/Examples/SampleUI/src/Examples/FABExample.tsx +0 -226
  127. package/Examples/SampleUI/src/Examples/IconButtonExample.tsx +0 -230
  128. package/Examples/SampleUI/src/Examples/IconExample.tsx +0 -50
  129. package/Examples/SampleUI/src/Examples/ListAccordionExample.tsx +0 -65
  130. package/Examples/SampleUI/src/Examples/ListAccordionGroupExample.tsx +0 -80
  131. package/Examples/SampleUI/src/Examples/ListItemExample.tsx +0 -310
  132. package/Examples/SampleUI/src/Examples/ListSectionExample.tsx +0 -159
  133. package/Examples/SampleUI/src/Examples/MaterialBottomTabNavigatorExample.tsx +0 -87
  134. package/Examples/SampleUI/src/Examples/MenuExample.tsx +0 -211
  135. package/Examples/SampleUI/src/Examples/ProgressBarExample.tsx +0 -142
  136. package/Examples/SampleUI/src/Examples/RadioButtonExample.tsx +0 -104
  137. package/Examples/SampleUI/src/Examples/RadioButtonGroupExample.tsx +0 -67
  138. package/Examples/SampleUI/src/Examples/RadioButtonItemExample.tsx +0 -77
  139. package/Examples/SampleUI/src/Examples/SearchbarExample.tsx +0 -249
  140. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonCustomColorCheck.tsx +0 -93
  141. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDefault.tsx +0 -49
  142. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDisabled.tsx +0 -47
  143. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselect.tsx +0 -50
  144. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectIcons.tsx +0 -49
  145. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectRealCase.tsx +0 -114
  146. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIcons.tsx +0 -40
  147. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIconsWithCheck.tsx +0 -43
  148. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonRealCase.tsx +0 -97
  149. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithDensity.tsx +0 -47
  150. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithSelectedCheck.tsx +0 -52
  151. package/Examples/SampleUI/src/Examples/SegmentedButtons/index.ts +0 -9
  152. package/Examples/SampleUI/src/Examples/SegmentedButtonsExample.tsx +0 -57
  153. package/Examples/SampleUI/src/Examples/SnackbarExample.tsx +0 -141
  154. package/Examples/SampleUI/src/Examples/SurfaceExample.tsx +0 -130
  155. package/Examples/SampleUI/src/Examples/SwitchExample.tsx +0 -105
  156. package/Examples/SampleUI/src/Examples/TeamDetails.tsx +0 -291
  157. package/Examples/SampleUI/src/Examples/TeamsList.tsx +0 -57
  158. package/Examples/SampleUI/src/Examples/TextExample.tsx +0 -132
  159. package/Examples/SampleUI/src/Examples/TextInputExample.tsx +0 -914
  160. package/Examples/SampleUI/src/Examples/ThemeExample.tsx +0 -41
  161. package/Examples/SampleUI/src/Examples/ThemingWithReactNavigation.tsx +0 -75
  162. package/Examples/SampleUI/src/Examples/ToggleButtonExample.tsx +0 -128
  163. package/Examples/SampleUI/src/Examples/TooltipExample.tsx +0 -191
  164. package/Examples/SampleUI/src/Examples/TouchableRippleExample.tsx +0 -37
  165. package/Examples/SampleUI/src/RootNavigator.tsx +0 -95
  166. package/Examples/SampleUI/src/ScreenWrapper.tsx +0 -67
  167. package/Examples/SampleUI/src/components/ActivityIndicator.tsx +0 -254
  168. package/Examples/SampleUI/src/components/Appbar/Appbar.tsx +0 -364
  169. package/Examples/SampleUI/src/components/Appbar/AppbarAction.tsx +0 -132
  170. package/Examples/SampleUI/src/components/Appbar/AppbarBackAction.tsx +0 -77
  171. package/Examples/SampleUI/src/components/Appbar/AppbarBackIcon.tsx +0 -52
  172. package/Examples/SampleUI/src/components/Appbar/AppbarContent.tsx +0 -249
  173. package/Examples/SampleUI/src/components/Appbar/AppbarHeader.tsx +0 -174
  174. package/Examples/SampleUI/src/components/Appbar/index.ts +0 -22
  175. package/Examples/SampleUI/src/components/Appbar/utils.ts +0 -188
  176. package/Examples/SampleUI/src/components/Avatar/Avatar.tsx +0 -8
  177. package/Examples/SampleUI/src/components/Avatar/AvatarIcon.tsx +0 -87
  178. package/Examples/SampleUI/src/components/Avatar/AvatarImage.tsx +0 -128
  179. package/Examples/SampleUI/src/components/Avatar/AvatarText.tsx +0 -127
  180. package/Examples/SampleUI/src/components/Badge.tsx +0 -138
  181. package/Examples/SampleUI/src/components/Banner.tsx +0 -302
  182. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigation.tsx +0 -643
  183. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationBar.tsx +0 -1039
  184. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationRouteScreen.tsx +0 -31
  185. package/Examples/SampleUI/src/components/BottomNavigation/utils.ts +0 -70
  186. package/Examples/SampleUI/src/components/Button/Button.tsx +0 -503
  187. package/Examples/SampleUI/src/components/Button/utils.tsx +0 -272
  188. package/Examples/SampleUI/src/components/Card/Card.tsx +0 -373
  189. package/Examples/SampleUI/src/components/Card/CardActions.tsx +0 -74
  190. package/Examples/SampleUI/src/components/Card/CardContent.tsx +0 -99
  191. package/Examples/SampleUI/src/components/Card/CardCover.tsx +0 -96
  192. package/Examples/SampleUI/src/components/Card/CardTitle.tsx +0 -236
  193. package/Examples/SampleUI/src/components/Card/utils.tsx +0 -110
  194. package/Examples/SampleUI/src/components/Checkbox/Checkbox.tsx +0 -78
  195. package/Examples/SampleUI/src/components/Checkbox/CheckboxAndroid.tsx +0 -180
  196. package/Examples/SampleUI/src/components/Checkbox/CheckboxIOS.tsx +0 -104
  197. package/Examples/SampleUI/src/components/Checkbox/CheckboxItem.tsx +0 -236
  198. package/Examples/SampleUI/src/components/Checkbox/index.ts +0 -19
  199. package/Examples/SampleUI/src/components/Checkbox/utils.ts +0 -183
  200. package/Examples/SampleUI/src/components/Chip/Chip.tsx +0 -513
  201. package/Examples/SampleUI/src/components/Chip/helpers.tsx +0 -322
  202. package/Examples/SampleUI/src/components/CrossFadeIcon.tsx +0 -140
  203. package/Examples/SampleUI/src/components/DataTable/DataTable.tsx +0 -138
  204. package/Examples/SampleUI/src/components/DataTable/DataTableCell.tsx +0 -132
  205. package/Examples/SampleUI/src/components/DataTable/DataTableHeader.tsx +0 -82
  206. package/Examples/SampleUI/src/components/DataTable/DataTablePagination.tsx +0 -407
  207. package/Examples/SampleUI/src/components/DataTable/DataTableRow.tsx +0 -107
  208. package/Examples/SampleUI/src/components/DataTable/DataTableTitle.tsx +0 -208
  209. package/Examples/SampleUI/src/components/Dialog/Dialog.tsx +0 -191
  210. package/Examples/SampleUI/src/components/Dialog/DialogActions.tsx +0 -94
  211. package/Examples/SampleUI/src/components/Dialog/DialogContent.tsx +0 -54
  212. package/Examples/SampleUI/src/components/Dialog/DialogIcon.tsx +0 -100
  213. package/Examples/SampleUI/src/components/Dialog/DialogScrollArea.tsx +0 -88
  214. package/Examples/SampleUI/src/components/Dialog/DialogTitle.tsx +0 -94
  215. package/Examples/SampleUI/src/components/Divider.tsx +0 -102
  216. package/Examples/SampleUI/src/components/Drawer/Drawer.tsx +0 -8
  217. package/Examples/SampleUI/src/components/Drawer/DrawerCollapsedItem.tsx +0 -282
  218. package/Examples/SampleUI/src/components/Drawer/DrawerItem.tsx +0 -209
  219. package/Examples/SampleUI/src/components/Drawer/DrawerSection.tsx +0 -138
  220. package/Examples/SampleUI/src/components/FAB/AnimatedFAB.tsx +0 -619
  221. package/Examples/SampleUI/src/components/FAB/FAB.tsx +0 -371
  222. package/Examples/SampleUI/src/components/FAB/FABGroup.tsx +0 -532
  223. package/Examples/SampleUI/src/components/FAB/index.ts +0 -13
  224. package/Examples/SampleUI/src/components/FAB/utils.ts +0 -474
  225. package/Examples/SampleUI/src/components/HelperText/HelperText.tsx +0 -168
  226. package/Examples/SampleUI/src/components/HelperText/utils.ts +0 -30
  227. package/Examples/SampleUI/src/components/Icon.tsx +0 -170
  228. package/Examples/SampleUI/src/components/IconButton/IconButton.tsx +0 -234
  229. package/Examples/SampleUI/src/components/IconButton/utils.ts +0 -190
  230. package/Examples/SampleUI/src/components/List/List.tsx +0 -20
  231. package/Examples/SampleUI/src/components/List/ListAccordion.tsx +0 -391
  232. package/Examples/SampleUI/src/components/List/ListAccordionGroup.tsx +0 -88
  233. package/Examples/SampleUI/src/components/List/ListIcon.tsx +0 -79
  234. package/Examples/SampleUI/src/components/List/ListImage.tsx +0 -89
  235. package/Examples/SampleUI/src/components/List/ListItem.tsx +0 -313
  236. package/Examples/SampleUI/src/components/List/ListSection.tsx +0 -87
  237. package/Examples/SampleUI/src/components/List/ListSubheader.tsx +0 -79
  238. package/Examples/SampleUI/src/components/List/utils.ts +0 -113
  239. package/Examples/SampleUI/src/components/MaterialCommunityIcon.tsx +0 -121
  240. package/Examples/SampleUI/src/components/Menu/Menu.tsx +0 -711
  241. package/Examples/SampleUI/src/components/Menu/MenuItem.tsx +0 -257
  242. package/Examples/SampleUI/src/components/Menu/utils.ts +0 -110
  243. package/Examples/SampleUI/src/components/Modal.tsx +0 -245
  244. package/Examples/SampleUI/src/components/Portal/Portal.tsx +0 -69
  245. package/Examples/SampleUI/src/components/Portal/PortalConsumer.tsx +0 -44
  246. package/Examples/SampleUI/src/components/Portal/PortalHost.tsx +0 -143
  247. package/Examples/SampleUI/src/components/Portal/PortalManager.tsx +0 -54
  248. package/Examples/SampleUI/src/components/ProgressBar.tsx +0 -292
  249. package/Examples/SampleUI/src/components/RadioButton/RadioButton.tsx +0 -86
  250. package/Examples/SampleUI/src/components/RadioButton/RadioButtonAndroid.tsx +0 -202
  251. package/Examples/SampleUI/src/components/RadioButton/RadioButtonGroup.tsx +0 -67
  252. package/Examples/SampleUI/src/components/RadioButton/RadioButtonIOS.tsx +0 -130
  253. package/Examples/SampleUI/src/components/RadioButton/RadioButtonItem.tsx +0 -268
  254. package/Examples/SampleUI/src/components/RadioButton/index.ts +0 -22
  255. package/Examples/SampleUI/src/components/RadioButton/utils.ts +0 -37
  256. package/Examples/SampleUI/src/components/Searchbar.tsx +0 -459
  257. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtonItem.tsx +0 -271
  258. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtons.tsx +0 -197
  259. package/Examples/SampleUI/src/components/SegmentedButtons/utils.ts +0 -179
  260. package/Examples/SampleUI/src/components/Snackbar.tsx +0 -430
  261. package/Examples/SampleUI/src/components/Surface.tsx +0 -376
  262. package/Examples/SampleUI/src/components/Switch/Switch.tsx +0 -108
  263. package/Examples/SampleUI/src/components/Switch/utils.ts +0 -113
  264. package/Examples/SampleUI/src/components/TextInput/Addons/Outline.tsx +0 -64
  265. package/Examples/SampleUI/src/components/TextInput/Addons/Underline.tsx +0 -78
  266. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAdornment.tsx +0 -208
  267. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAffix.tsx +0 -212
  268. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputIcon.tsx +0 -195
  269. package/Examples/SampleUI/src/components/TextInput/Adornment/enums.tsx +0 -12
  270. package/Examples/SampleUI/src/components/TextInput/Adornment/types.tsx +0 -11
  271. package/Examples/SampleUI/src/components/TextInput/Adornment/utils.ts +0 -48
  272. package/Examples/SampleUI/src/components/TextInput/Label/InputLabel.tsx +0 -217
  273. package/Examples/SampleUI/src/components/TextInput/Label/LabelBackground.tsx +0 -100
  274. package/Examples/SampleUI/src/components/TextInput/TextInput.tsx +0 -572
  275. package/Examples/SampleUI/src/components/TextInput/TextInputFlat.tsx +0 -475
  276. package/Examples/SampleUI/src/components/TextInput/TextInputOutlined.tsx +0 -450
  277. package/Examples/SampleUI/src/components/TextInput/constants.tsx +0 -48
  278. package/Examples/SampleUI/src/components/TextInput/helpers.tsx +0 -612
  279. package/Examples/SampleUI/src/components/TextInput/types.tsx +0 -155
  280. package/Examples/SampleUI/src/components/ToggleButton/ToggleButton.tsx +0 -187
  281. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonGroup.tsx +0 -72
  282. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonRow.tsx +0 -107
  283. package/Examples/SampleUI/src/components/ToggleButton/index.ts +0 -16
  284. package/Examples/SampleUI/src/components/ToggleButton/utils.ts +0 -26
  285. package/Examples/SampleUI/src/components/Tooltip/Tooltip.tsx +0 -249
  286. package/Examples/SampleUI/src/components/Tooltip/utils.ts +0 -129
  287. package/Examples/SampleUI/src/components/TouchableRipple/Pressable.tsx +0 -41
  288. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.native.tsx +0 -145
  289. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.tsx +0 -317
  290. package/Examples/SampleUI/src/components/TouchableRipple/utils.ts +0 -66
  291. package/Examples/SampleUI/src/components/Typography/AnimatedText.tsx +0 -107
  292. package/Examples/SampleUI/src/components/Typography/Text.tsx +0 -184
  293. package/Examples/SampleUI/src/components/Typography/types.tsx +0 -5
  294. package/Examples/SampleUI/src/components/Typography/v2/Caption.tsx +0 -50
  295. package/Examples/SampleUI/src/components/Typography/v2/Headline.tsx +0 -52
  296. package/Examples/SampleUI/src/components/Typography/v2/Paragraph.tsx +0 -49
  297. package/Examples/SampleUI/src/components/Typography/v2/StyledText.tsx +0 -56
  298. package/Examples/SampleUI/src/components/Typography/v2/Subheading.tsx +0 -50
  299. package/Examples/SampleUI/src/components/Typography/v2/Text.tsx +0 -62
  300. package/Examples/SampleUI/src/components/Typography/v2/Title.tsx +0 -49
  301. package/Examples/SampleUI/src/components/Typography/v2/index.ts +0 -5
  302. package/Examples/SampleUI/src/core/PaperProvider.tsx +0 -122
  303. package/Examples/SampleUI/src/core/SafeAreaProviderCompat.tsx +0 -65
  304. package/Examples/SampleUI/src/core/settings.tsx +0 -23
  305. package/Examples/SampleUI/src/core/theming.tsx +0 -170
  306. package/Examples/SampleUI/src/index.native.tsx +0 -285
  307. package/Examples/SampleUI/src/index.tsx +0 -226
  308. package/Examples/SampleUI/src/react-navigation/index.tsx +0 -19
  309. package/Examples/SampleUI/src/react-navigation/navigators/createMaterialBottomTabNavigator.tsx +0 -72
  310. package/Examples/SampleUI/src/react-navigation/types.tsx +0 -126
  311. package/Examples/SampleUI/src/react-navigation/views/MaterialBottomTabView.tsx +0 -140
  312. package/Examples/SampleUI/src/styles/fonts.tsx +0 -143
  313. package/Examples/SampleUI/src/styles/overlay.tsx +0 -70
  314. package/Examples/SampleUI/src/styles/shadow.tsx +0 -109
  315. package/Examples/SampleUI/src/styles/themes/index.ts +0 -4
  316. package/Examples/SampleUI/src/styles/themes/v2/DarkTheme.tsx +0 -30
  317. package/Examples/SampleUI/src/styles/themes/v2/LightTheme.tsx +0 -30
  318. package/Examples/SampleUI/src/styles/themes/v2/colors.tsx +0 -277
  319. package/Examples/SampleUI/src/styles/themes/v3/DarkTheme.tsx +0 -66
  320. package/Examples/SampleUI/src/styles/themes/v3/LightTheme.tsx +0 -69
  321. package/Examples/SampleUI/src/styles/themes/v3/tokens.tsx +0 -230
  322. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.native.tsx +0 -3
  323. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.tsx +0 -11
  324. package/Examples/SampleUI/src/utils/addEventListener.tsx +0 -56
  325. package/Examples/SampleUI/src/utils/forwardRef.tsx +0 -23
  326. package/Examples/SampleUI/src/utils/getContrastingColor.tsx +0 -15
  327. package/Examples/SampleUI/src/utils/hasTouchHandler.tsx +0 -23
  328. package/Examples/SampleUI/src/utils/roundLayoutSize.ts +0 -2
  329. package/Examples/SampleUI/src/utils/splitStyles.ts +0 -60
  330. package/Examples/SampleUI/src/utils/useAnimatedValue.tsx +0 -9
  331. package/Examples/SampleUI/src/utils/useAnimatedValueArray.tsx +0 -13
  332. package/Examples/SampleUI/src/utils/useIsKeyboardShown.tsx +0 -55
  333. package/Examples/SampleUI/src/utils/useLayout.tsx +0 -29
  334. package/Examples/SampleUI/src/utils/useLazyRef.tsx +0 -11
  335. package/Examples/SampleUI/tsconfig.json +0 -3
  336. package/Examples/SampleUI/utils/index.ts +0 -1426
@@ -1,170 +0,0 @@
1
- import type { ComponentType } from 'react';
2
-
3
- import { $DeepPartial, createTheming } from '@callstack/react-theme-provider';
4
- import color from 'color';
5
-
6
- import {
7
- MD2DarkTheme,
8
- MD2LightTheme,
9
- MD3DarkTheme,
10
- MD3LightTheme,
11
- } from '../styles/themes';
12
- import type {
13
- InternalTheme,
14
- MD3Theme,
15
- MD3AndroidColors,
16
- NavigationTheme,
17
- } from '../types';
18
-
19
- export const DefaultTheme = MD3LightTheme;
20
-
21
- export const {
22
- ThemeProvider,
23
- withTheme,
24
- useTheme: useAppTheme,
25
- } = createTheming<unknown>(MD3LightTheme);
26
-
27
- export function useTheme<T = MD3Theme>(overrides?: $DeepPartial<T>) {
28
- return useAppTheme<T>(overrides);
29
- }
30
-
31
- export const useInternalTheme = (
32
- themeOverrides: $DeepPartial<InternalTheme> | undefined
33
- ) => useAppTheme<InternalTheme>(themeOverrides);
34
-
35
- export const withInternalTheme = <Props extends { theme: InternalTheme }, C>(
36
- WrappedComponent: ComponentType<Props & { theme: InternalTheme }> & C
37
- ) => withTheme<Props, C>(WrappedComponent);
38
-
39
- export const defaultThemesByVersion = {
40
- 2: {
41
- light: MD2LightTheme,
42
- dark: MD2DarkTheme,
43
- },
44
- 3: {
45
- light: MD3LightTheme,
46
- dark: MD3DarkTheme,
47
- },
48
- };
49
-
50
- export const getTheme = <
51
- Scheme extends boolean = false,
52
- IsVersion3 extends boolean = true
53
- >(
54
- isDark: Scheme = false as Scheme,
55
- isV3: IsVersion3 = true as IsVersion3
56
- ): (typeof defaultThemesByVersion)[IsVersion3 extends true
57
- ? 3
58
- : 2][Scheme extends true ? 'dark' : 'light'] => {
59
- const themeVersion = isV3 ? 3 : 2;
60
- const scheme = isDark ? 'dark' : 'light';
61
-
62
- return defaultThemesByVersion[themeVersion][scheme];
63
- };
64
-
65
- // eslint-disable-next-line no-redeclare
66
- export function adaptNavigationTheme(themes: {
67
- reactNavigationLight: NavigationTheme;
68
- materialLight?: MD3Theme;
69
- }): {
70
- LightTheme: NavigationTheme;
71
- };
72
- // eslint-disable-next-line no-redeclare
73
- export function adaptNavigationTheme(themes: {
74
- reactNavigationDark: NavigationTheme;
75
- materialDark?: MD3Theme;
76
- }): {
77
- DarkTheme: NavigationTheme;
78
- };
79
- // eslint-disable-next-line no-redeclare
80
- export function adaptNavigationTheme(themes: {
81
- reactNavigationLight: NavigationTheme;
82
- reactNavigationDark: NavigationTheme;
83
- materialLight?: MD3Theme;
84
- materialDark?: MD3Theme;
85
- }): { LightTheme: NavigationTheme; DarkTheme: NavigationTheme };
86
- // eslint-disable-next-line no-redeclare
87
- export function adaptNavigationTheme(themes: any) {
88
- const {
89
- reactNavigationLight,
90
- reactNavigationDark,
91
- materialLight,
92
- materialDark,
93
- } = themes;
94
-
95
- const getAdaptedTheme = (
96
- navigationTheme: NavigationTheme,
97
- MD3Theme: MD3Theme
98
- ) => {
99
- return {
100
- ...navigationTheme,
101
- colors: {
102
- ...navigationTheme.colors,
103
- primary: MD3Theme.colors.primary,
104
- background: MD3Theme.colors.background,
105
- card: MD3Theme.colors.elevation.level2,
106
- text: MD3Theme.colors.onSurface,
107
- border: MD3Theme.colors.outline,
108
- notification: MD3Theme.colors.error,
109
- },
110
- };
111
- };
112
-
113
- const MD3Themes = {
114
- light: materialLight || MD3LightTheme,
115
- dark: materialDark || MD3DarkTheme,
116
- };
117
-
118
- if (reactNavigationLight && reactNavigationDark) {
119
- const modes = ['light', 'dark'] as const;
120
-
121
- const NavigationThemes = {
122
- light: reactNavigationLight,
123
- dark: reactNavigationDark,
124
- };
125
-
126
- const { light: adaptedLight, dark: adaptedDark } = modes.reduce(
127
- (prev, curr) => {
128
- return {
129
- ...prev,
130
- [curr]: getAdaptedTheme(NavigationThemes[curr], MD3Themes[curr]),
131
- };
132
- },
133
- {
134
- light: reactNavigationLight,
135
- dark: reactNavigationDark,
136
- }
137
- );
138
-
139
- return {
140
- LightTheme: adaptedLight,
141
- DarkTheme: adaptedDark,
142
- };
143
- }
144
-
145
- if (reactNavigationDark) {
146
- return {
147
- DarkTheme: getAdaptedTheme(reactNavigationDark, MD3Themes.dark),
148
- };
149
- }
150
-
151
- return {
152
- LightTheme: getAdaptedTheme(reactNavigationLight, MD3Themes.light),
153
- };
154
- }
155
-
156
- export const getDynamicThemeElevations = (scheme: MD3AndroidColors) => {
157
- const elevationValues = ['transparent', 0.05, 0.08, 0.11, 0.12, 0.14];
158
- return elevationValues.reduce((elevations, elevationValue, index) => {
159
- return {
160
- ...elevations,
161
- [`level${index}`]:
162
- index === 0
163
- ? elevationValue
164
- : color(scheme.surface)
165
- .mix(color(scheme.primary), elevationValue as number)
166
- .rgb()
167
- .string(),
168
- };
169
- }, {});
170
- };
@@ -1,285 +0,0 @@
1
- import * as React from 'react';
2
- import { I18nManager } from 'react-native';
3
-
4
- import { useMaterial3Theme } from '@pchmn/expo-material3-theme';
5
- import AsyncStorage from '@react-native-async-storage/async-storage';
6
- import { createDrawerNavigator } from '@react-navigation/drawer';
7
- import {
8
- InitialState,
9
- NavigationContainer,
10
- DarkTheme as NavigationDarkTheme,
11
- DefaultTheme as NavigationDefaultTheme,
12
- } from '@react-navigation/native';
13
- import { useFonts } from 'expo-font';
14
- import { useKeepAwake } from 'expo-keep-awake';
15
- import { StatusBar } from 'expo-status-bar';
16
- import {
17
- Provider as PaperProvider,
18
- MD3DarkTheme,
19
- MD3LightTheme,
20
- MD2DarkTheme,
21
- MD2LightTheme,
22
- MD2Theme,
23
- MD3Theme,
24
- useTheme,
25
- adaptNavigationTheme,
26
- configureFonts,
27
- } from 'react-native-paper';
28
- import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
29
-
30
- import DrawerItems from './DrawerItems';
31
- import App from './RootNavigator';
32
- import { deviceColorsSupported } from '../utils';
33
-
34
- import * as AcousticConnectBeta from 'react-native-acoustic-connect-beta';
35
- console.log('index.native.tsx:Exported items from react-native-acoustic-connect-beta:', AcousticConnectBeta);
36
- import { NavigationContainerRef } from '@react-navigation/native';
37
- import { useRef } from 'react';
38
-
39
-
40
- const PERSISTENCE_KEY = 'NAVIGATION_STATE';
41
- const PREFERENCES_KEY = 'APP_PREFERENCES';
42
-
43
- export const PreferencesContext = React.createContext<{
44
- toggleShouldUseDeviceColors?: () => void;
45
- toggleTheme: () => void;
46
- toggleRtl: () => void;
47
- toggleThemeVersion: () => void;
48
- toggleCollapsed: () => void;
49
- toggleCustomFont: () => void;
50
- toggleRippleEffect: () => void;
51
- customFontLoaded: boolean;
52
- rippleEffectEnabled: boolean;
53
- collapsed: boolean;
54
- rtl: boolean;
55
- theme: MD2Theme | MD3Theme;
56
- shouldUseDeviceColors?: boolean;
57
- } | null>(null);
58
-
59
- export const useExampleTheme = () => useTheme<MD2Theme | MD3Theme>();
60
-
61
- const Drawer = createDrawerNavigator<{ Home: undefined }>();
62
-
63
- export default function PaperExample() {
64
- useKeepAwake();
65
-
66
- // Add for Acoustic Connect SDK
67
- const navigationRef = useRef<NavigationContainerRef<any>>(null);
68
-
69
- const [fontsLoaded] = useFonts({
70
- Abel: require('../assets/fonts/Abel-Regular.ttf'),
71
- });
72
-
73
- const [isReady, setIsReady] = React.useState(false);
74
- const [initialState, setInitialState] = React.useState<
75
- InitialState | undefined
76
- >();
77
-
78
- const [shouldUseDeviceColors, setShouldUseDeviceColors] =
79
- React.useState(true);
80
- const [isDarkMode, setIsDarkMode] = React.useState(false);
81
- const [themeVersion, setThemeVersion] = React.useState<2 | 3>(3);
82
- const [rtl, setRtl] = React.useState<boolean>(
83
- I18nManager.getConstants().isRTL
84
- );
85
- const [collapsed, setCollapsed] = React.useState(false);
86
- const [customFontLoaded, setCustomFont] = React.useState(false);
87
- const [rippleEffectEnabled, setRippleEffectEnabled] = React.useState(true);
88
-
89
- const { theme: mdTheme } = useMaterial3Theme();
90
- const theme = React.useMemo(() => {
91
- if (themeVersion === 2) {
92
- return isDarkMode ? MD2DarkTheme : MD2LightTheme;
93
- }
94
-
95
- if (!deviceColorsSupported || !shouldUseDeviceColors) {
96
- return isDarkMode ? MD3DarkTheme : MD3LightTheme;
97
- }
98
-
99
- return isDarkMode
100
- ? { ...MD3DarkTheme, colors: mdTheme.dark }
101
- : { ...MD3LightTheme, colors: mdTheme.light };
102
- }, [isDarkMode, mdTheme, shouldUseDeviceColors, themeVersion]);
103
-
104
- React.useEffect(() => {
105
- const restoreState = async () => {
106
- try {
107
- const savedStateString = await AsyncStorage.getItem(PERSISTENCE_KEY);
108
- const state = JSON.parse(savedStateString || '');
109
-
110
- setInitialState(state);
111
- } catch (e) {
112
- // ignore error
113
- } finally {
114
- setIsReady(true);
115
- }
116
- };
117
-
118
- if (!isReady) {
119
- restoreState();
120
- }
121
- }, [isReady]);
122
-
123
- React.useEffect(() => {
124
- const restorePrefs = async () => {
125
- try {
126
- const prefString = await AsyncStorage.getItem(PREFERENCES_KEY);
127
- const preferences = JSON.parse(prefString || '');
128
-
129
- if (preferences) {
130
- setIsDarkMode(preferences.theme === 'dark');
131
-
132
- if (typeof preferences.rtl === 'boolean') {
133
- setRtl(preferences.rtl);
134
- }
135
- }
136
- } catch (e) {
137
- // ignore error
138
- }
139
- };
140
-
141
- restorePrefs();
142
- }, []);
143
-
144
- React.useEffect(() => {
145
- const savePrefs = async () => {
146
- try {
147
- await AsyncStorage.setItem(
148
- PREFERENCES_KEY,
149
- JSON.stringify({
150
- theme: isDarkMode ? 'dark' : 'light',
151
- rtl,
152
- })
153
- );
154
- } catch (e) {
155
- // ignore error
156
- }
157
-
158
- if (I18nManager.getConstants().isRTL !== rtl) {
159
- I18nManager.forceRTL(rtl);
160
- // Updates.reloadAsync(); // Removed as expo-updates is not available
161
- }
162
- };
163
-
164
- savePrefs();
165
- }, [rtl, isDarkMode]);
166
-
167
- const preferences = React.useMemo(
168
- () => ({
169
- toggleShouldUseDeviceColors: () =>
170
- setShouldUseDeviceColors((oldValue) => !oldValue),
171
- toggleTheme: () => setIsDarkMode((oldValue) => !oldValue),
172
- toggleRtl: () => setRtl((rtl) => !rtl),
173
- toggleCollapsed: () => setCollapsed(!collapsed),
174
- toggleCustomFont: () => setCustomFont(!customFontLoaded),
175
- toggleRippleEffect: () => setRippleEffectEnabled(!rippleEffectEnabled),
176
- toggleThemeVersion: () => {
177
- setCustomFont(false);
178
- setCollapsed(false);
179
- setThemeVersion((oldThemeVersion) => (oldThemeVersion === 2 ? 3 : 2));
180
- setRippleEffectEnabled(true);
181
- },
182
- customFontLoaded,
183
- rippleEffectEnabled,
184
- collapsed,
185
- rtl,
186
- theme,
187
- shouldUseDeviceColors,
188
- }),
189
- [
190
- rtl,
191
- theme,
192
- collapsed,
193
- customFontLoaded,
194
- shouldUseDeviceColors,
195
- rippleEffectEnabled,
196
- ]
197
- );
198
-
199
- if (!isReady && !fontsLoaded) {
200
- return null;
201
- }
202
-
203
- const { LightTheme, DarkTheme } = adaptNavigationTheme({
204
- reactNavigationLight: NavigationDefaultTheme,
205
- reactNavigationDark: NavigationDarkTheme,
206
- });
207
-
208
- const CombinedDefaultTheme = {
209
- ...MD3LightTheme,
210
- ...LightTheme,
211
- colors: {
212
- ...MD3LightTheme.colors,
213
- ...LightTheme.colors,
214
- },
215
- };
216
-
217
- const CombinedDarkTheme = {
218
- ...MD3DarkTheme,
219
- ...DarkTheme,
220
- colors: {
221
- ...MD3DarkTheme.colors,
222
- ...DarkTheme.colors,
223
- },
224
- };
225
-
226
- const combinedTheme = isDarkMode ? CombinedDarkTheme : CombinedDefaultTheme;
227
- const configuredFontTheme = {
228
- ...combinedTheme,
229
- fonts: configureFonts({
230
- config: {
231
- fontFamily: 'Abel',
232
- },
233
- }),
234
- };
235
-
236
- return (
237
- <PaperProvider
238
- settings={{ rippleEffectEnabled: preferences.rippleEffectEnabled }}
239
- theme={customFontLoaded ? configuredFontTheme : theme}
240
- >
241
- <PreferencesContext.Provider value={preferences}>
242
- <React.Fragment>
243
- <AcousticConnectBeta.Connect
244
- captureKeyboardEvents={true}
245
- captureDialogEvents={true}
246
- >
247
- <NavigationContainer
248
- ref={navigationRef} // Pass the ref to NavigationContainer
249
- theme={combinedTheme}
250
- initialState={initialState}
251
- onStateChange={(state) =>
252
- AsyncStorage.setItem(PERSISTENCE_KEY, JSON.stringify(state))
253
- }
254
- onReady={() => console.log('NavigationContainer is ready!')}
255
- >
256
- <SafeAreaInsetsContext.Consumer>
257
- {(insets) => {
258
- const { left, right } = insets || { left: 0, right: 0 };
259
- const collapsedDrawerWidth = 80 + Math.max(left, right);
260
- return (
261
- <Drawer.Navigator
262
- screenOptions={{
263
- drawerStyle: collapsed && {
264
- width: collapsedDrawerWidth,
265
- },
266
- }}
267
- drawerContent={() => <DrawerItems />}
268
- >
269
- <Drawer.Screen
270
- name="Home"
271
- component={App}
272
- options={{ headerShown: false }}
273
- />
274
- </Drawer.Navigator>
275
- );
276
- }}
277
- </SafeAreaInsetsContext.Consumer>
278
- <StatusBar style={!theme.isV3 || theme.dark ? 'light' : 'dark'} />
279
- </NavigationContainer>
280
- </AcousticConnectBeta.Connect>
281
- </React.Fragment>
282
- </PreferencesContext.Provider>
283
- </PaperProvider>
284
- );
285
- }
@@ -1,226 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import AsyncStorage from '@react-native-async-storage/async-storage';
4
- import { createDrawerNavigator } from '@react-navigation/drawer';
5
- import {
6
- InitialState,
7
- NavigationContainer,
8
- DarkTheme as NavigationDarkTheme,
9
- DefaultTheme as NavigationDefaultTheme,
10
- } from '@react-navigation/native';
11
- import { useFonts } from 'expo-font';
12
- import { useKeepAwake } from 'expo-keep-awake';
13
- import {
14
- PaperProvider,
15
- MD3DarkTheme,
16
- MD3LightTheme,
17
- MD2DarkTheme,
18
- MD2LightTheme,
19
- MD2Theme,
20
- MD3Theme,
21
- useTheme,
22
- adaptNavigationTheme,
23
- configureFonts,
24
- } from 'react-native-paper';
25
- import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
26
-
27
- import DrawerItems from './DrawerItems';
28
- import App from './RootNavigator';
29
-
30
- const PERSISTENCE_KEY = 'NAVIGATION_STATE';
31
- const PREFERENCES_KEY = 'APP_PREFERENCES';
32
-
33
- export const PreferencesContext = React.createContext<{
34
- toggleTheme: () => void;
35
- toggleThemeVersion: () => void;
36
- toggleCollapsed: () => void;
37
- toggleCustomFont: () => void;
38
- toggleRippleEffect: () => void;
39
- customFontLoaded: boolean;
40
- rippleEffectEnabled: boolean;
41
- collapsed: boolean;
42
- theme: MD2Theme | MD3Theme;
43
- } | null>(null);
44
-
45
- export const useExampleTheme = () => useTheme<MD2Theme | MD3Theme>();
46
-
47
- const Drawer = createDrawerNavigator<{ Home: undefined }>();
48
-
49
- export default function PaperExample() {
50
- useKeepAwake();
51
-
52
- const [fontsLoaded] = useFonts({
53
- Abel: require('../assets/fonts/Abel-Regular.ttf'),
54
- });
55
-
56
- const [isReady, setIsReady] = React.useState(false);
57
- const [initialState, setInitialState] = React.useState<
58
- InitialState | undefined
59
- >();
60
-
61
- const [isDarkMode, setIsDarkMode] = React.useState(false);
62
- const [themeVersion, setThemeVersion] = React.useState<2 | 3>(3);
63
- const [collapsed, setCollapsed] = React.useState(false);
64
- const [customFontLoaded, setCustomFont] = React.useState(false);
65
- const [rippleEffectEnabled, setRippleEffectEnabled] = React.useState(true);
66
-
67
- const theme = React.useMemo(() => {
68
- if (themeVersion === 2) {
69
- return isDarkMode ? MD2DarkTheme : MD2LightTheme;
70
- }
71
-
72
- return isDarkMode ? MD3DarkTheme : MD3LightTheme;
73
- }, [isDarkMode, themeVersion]);
74
-
75
- React.useEffect(() => {
76
- const restoreState = async () => {
77
- try {
78
- const savedStateString = await AsyncStorage.getItem(PERSISTENCE_KEY);
79
- const state = JSON.parse(savedStateString || '');
80
-
81
- setInitialState(state);
82
- } catch (e) {
83
- // ignore error
84
- } finally {
85
- setIsReady(true);
86
- }
87
- };
88
-
89
- if (!isReady) {
90
- restoreState();
91
- }
92
- }, [isReady]);
93
-
94
- React.useEffect(() => {
95
- const restorePrefs = async () => {
96
- try {
97
- const prefString = await AsyncStorage.getItem(PREFERENCES_KEY);
98
- const preferences = JSON.parse(prefString || '');
99
-
100
- if (preferences) {
101
- setIsDarkMode(preferences.theme === 'dark');
102
- }
103
- } catch (e) {
104
- // ignore error
105
- }
106
- };
107
-
108
- restorePrefs();
109
- }, []);
110
-
111
- React.useEffect(() => {
112
- const savePrefs = async () => {
113
- try {
114
- await AsyncStorage.setItem(
115
- PREFERENCES_KEY,
116
- JSON.stringify({
117
- theme: isDarkMode ? 'dark' : 'light',
118
- })
119
- );
120
- } catch (e) {
121
- // ignore error
122
- }
123
- };
124
-
125
- savePrefs();
126
- }, [isDarkMode]);
127
-
128
- const preferences = React.useMemo(
129
- () => ({
130
- toggleTheme: () => setIsDarkMode((oldValue) => !oldValue),
131
- toggleCollapsed: () => setCollapsed(!collapsed),
132
- toggleCustomFont: () => setCustomFont(!customFontLoaded),
133
- toggleRippleEffect: () => setRippleEffectEnabled(!rippleEffectEnabled),
134
- toggleThemeVersion: () => {
135
- setCustomFont(false);
136
- setCollapsed(false);
137
- setThemeVersion((oldThemeVersion) => (oldThemeVersion === 2 ? 3 : 2));
138
- setRippleEffectEnabled(true);
139
- },
140
- customFontLoaded,
141
- rippleEffectEnabled,
142
- collapsed,
143
- theme,
144
- }),
145
- [theme, collapsed, customFontLoaded, rippleEffectEnabled]
146
- );
147
-
148
- if (!isReady && !fontsLoaded) {
149
- return null;
150
- }
151
-
152
- const { LightTheme, DarkTheme } = adaptNavigationTheme({
153
- reactNavigationLight: NavigationDefaultTheme,
154
- reactNavigationDark: NavigationDarkTheme,
155
- });
156
-
157
- const CombinedDefaultTheme = {
158
- ...MD3LightTheme,
159
- ...LightTheme,
160
- colors: {
161
- ...MD3LightTheme.colors,
162
- ...LightTheme.colors,
163
- },
164
- };
165
-
166
- const CombinedDarkTheme = {
167
- ...MD3DarkTheme,
168
- ...DarkTheme,
169
- colors: {
170
- ...MD3DarkTheme.colors,
171
- ...DarkTheme.colors,
172
- },
173
- };
174
-
175
- const combinedTheme = isDarkMode ? CombinedDarkTheme : CombinedDefaultTheme;
176
- const configuredFontTheme = {
177
- ...combinedTheme,
178
- fonts: configureFonts({
179
- config: {
180
- fontFamily: 'Abel',
181
- },
182
- }),
183
- };
184
-
185
- return (
186
- <PaperProvider
187
- settings={{ rippleEffectEnabled: preferences.rippleEffectEnabled }}
188
- theme={customFontLoaded ? configuredFontTheme : theme}
189
- >
190
- <PreferencesContext.Provider value={preferences}>
191
- <React.Fragment>
192
- <NavigationContainer
193
- theme={combinedTheme}
194
- initialState={initialState}
195
- onStateChange={(state) =>
196
- AsyncStorage.setItem(PERSISTENCE_KEY, JSON.stringify(state))
197
- }
198
- >
199
- <SafeAreaInsetsContext.Consumer>
200
- {(insets) => {
201
- const { left, right } = insets || { left: 0, right: 0 };
202
- const collapsedDrawerWidth = 80 + Math.max(left, right);
203
- return (
204
- <Drawer.Navigator
205
- screenOptions={{
206
- drawerStyle: collapsed && {
207
- width: collapsedDrawerWidth,
208
- },
209
- }}
210
- drawerContent={() => <DrawerItems />}
211
- >
212
- <Drawer.Screen
213
- name="Home"
214
- component={App}
215
- options={{ headerShown: false }}
216
- />
217
- </Drawer.Navigator>
218
- );
219
- }}
220
- </SafeAreaInsetsContext.Consumer>
221
- </NavigationContainer>
222
- </React.Fragment>
223
- </PreferencesContext.Provider>
224
- </PaperProvider>
225
- );
226
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * Navigators
3
- */
4
- export { default as createMaterialBottomTabNavigator } from './navigators/createMaterialBottomTabNavigator';
5
-
6
- /**
7
- * Views
8
- */
9
- export { default as MaterialBottomTabView } from './views/MaterialBottomTabView';
10
-
11
- /**
12
- * Types
13
- */
14
- export type {
15
- MaterialBottomTabNavigationEventMap,
16
- MaterialBottomTabNavigationOptions,
17
- MaterialBottomTabNavigationProp,
18
- MaterialBottomTabScreenProps,
19
- } from './types';