@brightlayer-ui/react-native-template-authentication-typescript 4.0.0-alpha.0 → 4.1.0-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.
Files changed (31) hide show
  1. package/CHANGELOG.md +7 -1
  2. package/package.json +1 -1
  3. package/template/App.tsx +40 -12
  4. package/template/android/app/build.gradle +0 -1
  5. package/template/android/app/src/main/java/com/example/MainActivity.kt +1 -1
  6. package/template/android/app/src/main/res/values/strings.xml +1 -1
  7. package/template/android/settings.gradle +1 -1
  8. package/template/app.json +2 -2
  9. package/template/babel.config.js +1 -1
  10. package/template/ios/{example → AuthTemplate}/AppDelegate.swift +1 -1
  11. package/template/ios/{example → AuthTemplate}/Info.plist +2 -2
  12. package/template/ios/{example → AuthTemplate}/LaunchScreen.storyboard +1 -1
  13. package/template/ios/{example.xcodeproj → AuthTemplate.xcodeproj}/project.pbxproj +44 -42
  14. package/template/ios/{example.xcodeproj/xcshareddata/xcschemes/example.xcscheme → AuthTemplate.xcodeproj/xcshareddata/xcschemes/AuthTemplate.xcscheme} +12 -12
  15. package/template/ios/{example.xcworkspace → AuthTemplate.xcworkspace}/contents.xcworkspacedata +1 -1
  16. package/template/ios/Podfile +1 -1
  17. package/template/ios/Podfile.lock +13 -3
  18. package/template/okta.config.js +10 -0
  19. package/template/package.json +8 -5
  20. package/template/src/components/UserMenuComponent.tsx +40 -4
  21. package/template/src/contexts/RegistrationContext.tsx +26 -0
  22. package/template/src/navigation/index.tsx +56 -61
  23. package/template/src/navigation/navigation-drawer.tsx +8 -9
  24. package/template/src/screens/ChangePassword.tsx +20 -4
  25. package/template/src/screens/OktaLogin.tsx +58 -0
  26. package/template/yarn.lock +132 -28
  27. /package/template/ios/{example → AuthTemplate}/Images.xcassets/AppIcon.appiconset/Contents.json +0 -0
  28. /package/template/ios/{example → AuthTemplate}/Images.xcassets/Contents.json +0 -0
  29. /package/template/ios/{example → AuthTemplate}/PrivacyInfo.xcprivacy +0 -0
  30. /package/template/ios/{example.xcworkspace → AuthTemplate.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  31. /package/template/ios/{exampleTests → AuthTemplateTests}/Info.plist +0 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## v4.0.0 (Unreleased)
3
+ ## v4.1.0 (Unreleased)
4
+
5
+ ### Changed
6
+
7
+ - Updated all the dependencies to the latest stable versions ([#448](https://github.com/etn-ccis/blui-react-native/issues/448)).
8
+
9
+ ## v4.0.0 (July 30, 2025)
4
10
 
5
11
  ### Changed
6
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightlayer-ui/react-native-template-authentication-typescript",
3
- "version": "4.0.0-alpha.0",
3
+ "version": "4.1.0-alpha.0",
4
4
  "author": "brightlayer-ui <brightlayer-ui@eaton.com>",
5
5
  "keywords": [
6
6
  "react native",
package/template/App.tsx CHANGED
@@ -15,12 +15,12 @@ import { blue, blueDark } from '@brightlayer-ui/react-native-themes';
15
15
  import i18nAppInstance from './translations/i18n';
16
16
  import { I18nextProvider, useTranslation } from 'react-i18next';
17
17
  import { AppContext, AppContextType } from './src/contexts/AppContextProvider';
18
- import { LocalStorage } from './src/store/local-storage';
19
18
  import { Spinner } from '@brightlayer-ui/react-native-auth-workflow';
20
19
  import AsyncStorage from '@react-native-async-storage/async-storage';
21
- // import { NativeModules, Platform } from 'react-native';
20
+ import { NativeModules, Platform } from 'react-native';
21
+ import { isAuthenticated as isOktaAuthenticated, EventEmitter, getAccessToken } from '@okta/okta-react-native';
22
22
 
23
- export const App = (): JSX.Element => {
23
+ export const App = (): React.JSX.Element => {
24
24
  const [theme, setTheme] = useState<ThemeType>('light');
25
25
  const [language, setLanguage] = useState('en');
26
26
  const [isAuthenticated, setAuthenticated] = useState<AppContextType['isAuthenticated']>(false);
@@ -37,25 +37,54 @@ export const App = (): JSX.Element => {
37
37
  setLanguage(storedLanguage);
38
38
  void i18n.changeLanguage(storedLanguage);
39
39
  } else {
40
- const locale = 'en';
41
- // Platform.OS === 'ios'
42
- // ? NativeModules.SettingsManager.settings.AppleLocale
43
- // : NativeModules.I18nManager.localeIdentifier;
40
+ let locale = 'en';
41
+ locale =
42
+ Platform.OS === 'ios'
43
+ ? NativeModules.SettingsManager.settings.AppleLocale ||
44
+ NativeModules.SettingsManager.settings.AppleLocale[0]
45
+ : NativeModules.I18nManager.localeIdentifier;
44
46
  setLanguage(locale?.substring(0, 2) || 'en');
45
47
  }
46
48
  } catch (error) {
49
+ let locale = 'en';
50
+ locale =
51
+ Platform.OS === 'ios'
52
+ ? NativeModules.SettingsManager.settings.AppleLocale ||
53
+ NativeModules.SettingsManager.settings.AppleLocale[0]
54
+ : NativeModules.I18nManager.localeIdentifier;
55
+ setLanguage(locale?.substring(0, 2) || 'en');
47
56
  console.error('Error getting language from Async Storage:', error);
48
57
  }
49
58
  };
59
+
60
+ const handleSignInSuccess = (): any => {
61
+ setAuthenticated(true);
62
+ try {
63
+ getAccessToken() // eslint-disable-next-line
64
+ .then((res) => console.log(res.access_token)) // eslint-disable-next-line
65
+ .catch((err) => console.log(err));
66
+ } catch (error) {
67
+ console.error('Okta error for access token', error);
68
+ }
69
+ };
70
+
71
+ useEffect(() => {
72
+ EventEmitter.addListener('signInSuccess', handleSignInSuccess);
73
+
74
+ return (): any => {
75
+ EventEmitter.removeAllListeners('signInSuccess');
76
+ };
77
+ }, []);
78
+
50
79
  // handle initialization of auth data on first load
51
80
  useEffect(() => {
52
81
  const initialize = async (): Promise<void> => {
53
82
  try {
54
- const userData = await LocalStorage.readAuthData();
55
- setLoginData({ email: userData.rememberMeData.user, rememberMe: userData.rememberMeData.rememberMe });
56
- setAuthenticated(Boolean(userData.userId));
83
+ const authState = await isOktaAuthenticated();
84
+ setAuthenticated(Boolean(authState?.authenticated));
57
85
  await getLanguage();
58
- } catch {
86
+ } catch (error) {
87
+ console.error('Error initializing authentication state:', error);
59
88
  // handle any error state, rejected promises, etc..
60
89
  } finally {
61
90
  setIsLoading(false);
@@ -64,7 +93,6 @@ export const App = (): JSX.Element => {
64
93
  // eslint-disable-next-line
65
94
  initialize();
66
95
  }, []);
67
-
68
96
  return isLoading ? (
69
97
  <Spinner visible={isLoading} />
70
98
  ) : (
@@ -120,4 +120,3 @@ dependencies {
120
120
  }
121
121
 
122
122
  apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
123
- apply from: "../../node_modules/@brightlayer-ui/react-native-vector-icons/fonts.gradle"
@@ -11,7 +11,7 @@ class MainActivity : ReactActivity() {
11
11
  * Returns the name of the main component registered from JavaScript. This is used to schedule
12
12
  * rendering of the component.
13
13
  */
14
- override fun getMainComponentName(): String = "example"
14
+ override fun getMainComponentName(): String = "AuthTemplate"
15
15
 
16
16
  /**
17
17
  * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
@@ -1,3 +1,3 @@
1
1
  <resources>
2
- <string name="app_name">example</string>
2
+ <string name="app_name">AuthTemplate</string>
3
3
  </resources>
@@ -1,6 +1,6 @@
1
1
  pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
2
2
  plugins { id("com.facebook.react.settings") }
3
3
  extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
4
- rootProject.name = 'example'
4
+ rootProject.name = "AuthTemplate"
5
5
  include ':app'
6
6
  includeBuild('../node_modules/@react-native/gradle-plugin')
package/template/app.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "name": "example",
3
- "displayName": "example"
2
+ "name": "AuthTemplate",
3
+ "displayName": "AuthTemplate"
4
4
  }
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
2
  presets: ['module:@react-native/babel-preset'],
3
3
  // react-native-reanimated/plugin must be listed last
4
- plugins: ['react-native-reanimated/plugin'],
4
+ plugins: ['module:react-native-dotenv', 'react-native-reanimated/plugin'],
5
5
  };
@@ -24,7 +24,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
24
24
  window = UIWindow(frame: UIScreen.main.bounds)
25
25
 
26
26
  factory.startReactNative(
27
- withModuleName: "example",
27
+ withModuleName: "AuthTemplate",
28
28
  in: window,
29
29
  launchOptions: launchOptions
30
30
  )
@@ -5,7 +5,7 @@
5
5
  <key>CFBundleDevelopmentRegion</key>
6
6
  <string>en</string>
7
7
  <key>CFBundleDisplayName</key>
8
- <string>example</string>
8
+ <string>AuthTemplate</string>
9
9
  <key>CFBundleExecutable</key>
10
10
  <string>$(EXECUTABLE_NAME)</string>
11
11
  <key>CFBundleIdentifier</key>
@@ -32,7 +32,7 @@
32
32
  <true/>
33
33
  </dict>
34
34
  <key>NSLocationWhenInUseUsageDescription</key>
35
- <string></string>
35
+ <string/>
36
36
  <key>RCTNewArchEnabled</key>
37
37
  <true/>
38
38
  <key>UILaunchStoryboardName</key>
@@ -16,7 +16,7 @@
16
16
  <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
17
17
  <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
18
18
  <subviews>
19
- <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="example" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
19
+ <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="AuthTemplate" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
20
20
  <rect key="frame" x="0.0" y="202" width="375" height="43"/>
21
21
  <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
22
22
  <nil key="highlightedColor"/>
@@ -7,7 +7,7 @@
7
7
  objects = {
8
8
 
9
9
  /* Begin PBXBuildFile section */
10
- 0C80B921A6F3F58F76C31292 /* libPods-example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-example.a */; };
10
+ 0C80B921A6F3F58F76C31292 /* libPods-AuthTemplate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-AuthTemplate.a */; };
11
11
  13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
12
12
  37B4427036D9526BE658D971 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; };
13
13
  761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; };
@@ -15,15 +15,15 @@
15
15
  /* End PBXBuildFile section */
16
16
 
17
17
  /* Begin PBXFileReference section */
18
- 13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; };
19
- 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = "<group>"; };
20
- 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = "<group>"; };
21
- 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = example/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
22
- 3B4392A12AC88292D35C810B /* Pods-example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.debug.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.debug.xcconfig"; sourceTree = "<group>"; };
23
- 5709B34CF0A7D63546082F79 /* Pods-example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.release.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.release.xcconfig"; sourceTree = "<group>"; };
24
- 5DCACB8F33CDC322A6C60F78 /* libPods-example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
25
- 761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = example/AppDelegate.swift; sourceTree = "<group>"; };
26
- 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = example/LaunchScreen.storyboard; sourceTree = "<group>"; };
18
+ 13B07F961A680F5B00A75B9A /* AuthTemplate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AuthTemplate.app; sourceTree = BUILT_PRODUCTS_DIR; };
19
+ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AuthTemplate/Images.xcassets; sourceTree = "<group>"; };
20
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AuthTemplate/Info.plist; sourceTree = "<group>"; };
21
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = AuthTemplate/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
22
+ 3B4392A12AC88292D35C810B /* Pods-AuthTemplate.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AuthTemplate.debug.xcconfig"; path = "Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate.debug.xcconfig"; sourceTree = "<group>"; };
23
+ 5709B34CF0A7D63546082F79 /* Pods-AuthTemplate.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AuthTemplate.release.xcconfig"; path = "Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate.release.xcconfig"; sourceTree = "<group>"; };
24
+ 5DCACB8F33CDC322A6C60F78 /* libPods-AuthTemplate.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AuthTemplate.a"; sourceTree = BUILT_PRODUCTS_DIR; };
25
+ 761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = AuthTemplate/AppDelegate.swift; sourceTree = "<group>"; };
26
+ 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AuthTemplate/LaunchScreen.storyboard; sourceTree = "<group>"; };
27
27
  ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
28
28
  /* End PBXFileReference section */
29
29
 
@@ -32,14 +32,14 @@
32
32
  isa = PBXFrameworksBuildPhase;
33
33
  buildActionMask = 2147483647;
34
34
  files = (
35
- 0C80B921A6F3F58F76C31292 /* libPods-example.a in Frameworks */,
35
+ 0C80B921A6F3F58F76C31292 /* libPods-AuthTemplate.a in Frameworks */,
36
36
  );
37
37
  runOnlyForDeploymentPostprocessing = 0;
38
38
  };
39
39
  /* End PBXFrameworksBuildPhase section */
40
40
 
41
41
  /* Begin PBXGroup section */
42
- 13B07FAE1A68108700A75B9A /* example */ = {
42
+ 13B07FAE1A68108700A75B9A /* AuthTemplate */ = {
43
43
  isa = PBXGroup;
44
44
  children = (
45
45
  13B07FB51A68108700A75B9A /* Images.xcassets */,
@@ -48,14 +48,14 @@
48
48
  81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
49
49
  13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
50
50
  );
51
- name = example;
51
+ name = AuthTemplate;
52
52
  sourceTree = "<group>";
53
53
  };
54
54
  2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
55
55
  isa = PBXGroup;
56
56
  children = (
57
57
  ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
58
- 5DCACB8F33CDC322A6C60F78 /* libPods-example.a */,
58
+ 5DCACB8F33CDC322A6C60F78 /* libPods-AuthTemplate.a */,
59
59
  );
60
60
  name = Frameworks;
61
61
  sourceTree = "<group>";
@@ -70,7 +70,7 @@
70
70
  83CBB9F61A601CBA00E9B192 = {
71
71
  isa = PBXGroup;
72
72
  children = (
73
- 13B07FAE1A68108700A75B9A /* example */,
73
+ 13B07FAE1A68108700A75B9A /* AuthTemplate */,
74
74
  832341AE1AAA6A7D00B99B32 /* Libraries */,
75
75
  83CBBA001A601CBA00E9B192 /* Products */,
76
76
  2D16E6871FA4F8E400B85C8A /* Frameworks */,
@@ -84,7 +84,7 @@
84
84
  83CBBA001A601CBA00E9B192 /* Products */ = {
85
85
  isa = PBXGroup;
86
86
  children = (
87
- 13B07F961A680F5B00A75B9A /* example.app */,
87
+ 13B07F961A680F5B00A75B9A /* AuthTemplate.app */,
88
88
  );
89
89
  name = Products;
90
90
  sourceTree = "<group>";
@@ -92,8 +92,8 @@
92
92
  BBD78D7AC51CEA395F1C20DB /* Pods */ = {
93
93
  isa = PBXGroup;
94
94
  children = (
95
- 3B4392A12AC88292D35C810B /* Pods-example.debug.xcconfig */,
96
- 5709B34CF0A7D63546082F79 /* Pods-example.release.xcconfig */,
95
+ 3B4392A12AC88292D35C810B /* Pods-AuthTemplate.debug.xcconfig */,
96
+ 5709B34CF0A7D63546082F79 /* Pods-AuthTemplate.release.xcconfig */,
97
97
  );
98
98
  path = Pods;
99
99
  sourceTree = "<group>";
@@ -101,9 +101,9 @@
101
101
  /* End PBXGroup section */
102
102
 
103
103
  /* Begin PBXNativeTarget section */
104
- 13B07F861A680F5B00A75B9A /* example */ = {
104
+ 13B07F861A680F5B00A75B9A /* AuthTemplate */ = {
105
105
  isa = PBXNativeTarget;
106
- buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */;
106
+ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AuthTemplate" */;
107
107
  buildPhases = (
108
108
  C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
109
109
  13B07F871A680F5B00A75B9A /* Sources */,
@@ -117,9 +117,9 @@
117
117
  );
118
118
  dependencies = (
119
119
  );
120
- name = example;
121
- productName = example;
122
- productReference = 13B07F961A680F5B00A75B9A /* example.app */;
120
+ name = AuthTemplate;
121
+ productName = AuthTemplate;
122
+ productReference = 13B07F961A680F5B00A75B9A /* AuthTemplate.app */;
123
123
  productType = "com.apple.product-type.application";
124
124
  };
125
125
  /* End PBXNativeTarget section */
@@ -135,7 +135,7 @@
135
135
  };
136
136
  };
137
137
  };
138
- buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */;
138
+ buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AuthTemplate" */;
139
139
  compatibilityVersion = "Xcode 12.0";
140
140
  developmentRegion = en;
141
141
  hasScannedForEncodings = 0;
@@ -148,7 +148,7 @@
148
148
  projectDirPath = "";
149
149
  projectRoot = "";
150
150
  targets = (
151
- 13B07F861A680F5B00A75B9A /* example */,
151
+ 13B07F861A680F5B00A75B9A /* AuthTemplate */,
152
152
  );
153
153
  };
154
154
  /* End PBXProject section */
@@ -189,15 +189,15 @@
189
189
  files = (
190
190
  );
191
191
  inputFileListPaths = (
192
- "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-input-files.xcfilelist",
192
+ "${PODS_ROOT}/Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate-frameworks-${CONFIGURATION}-input-files.xcfilelist",
193
193
  );
194
194
  name = "[CP] Embed Pods Frameworks";
195
195
  outputFileListPaths = (
196
- "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-output-files.xcfilelist",
196
+ "${PODS_ROOT}/Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate-frameworks-${CONFIGURATION}-output-files.xcfilelist",
197
197
  );
198
198
  runOnlyForDeploymentPostprocessing = 0;
199
199
  shellPath = /bin/sh;
200
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh\"\n";
200
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate-frameworks.sh\"\n";
201
201
  showEnvVarsInLog = 0;
202
202
  };
203
203
  C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
@@ -215,7 +215,7 @@
215
215
  outputFileListPaths = (
216
216
  );
217
217
  outputPaths = (
218
- "$(DERIVED_FILE_DIR)/Pods-example-checkManifestLockResult.txt",
218
+ "$(DERIVED_FILE_DIR)/Pods-AuthTemplate-checkManifestLockResult.txt",
219
219
  );
220
220
  runOnlyForDeploymentPostprocessing = 0;
221
221
  shellPath = /bin/sh;
@@ -228,15 +228,15 @@
228
228
  files = (
229
229
  );
230
230
  inputFileListPaths = (
231
- "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-input-files.xcfilelist",
231
+ "${PODS_ROOT}/Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate-resources-${CONFIGURATION}-input-files.xcfilelist",
232
232
  );
233
233
  name = "[CP] Copy Pods Resources";
234
234
  outputFileListPaths = (
235
- "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-output-files.xcfilelist",
235
+ "${PODS_ROOT}/Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate-resources-${CONFIGURATION}-output-files.xcfilelist",
236
236
  );
237
237
  runOnlyForDeploymentPostprocessing = 0;
238
238
  shellPath = /bin/sh;
239
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh\"\n";
239
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AuthTemplate/Pods-AuthTemplate-resources.sh\"\n";
240
240
  showEnvVarsInLog = 0;
241
241
  };
242
242
  /* End PBXShellScriptBuildPhase section */
@@ -255,13 +255,14 @@
255
255
  /* Begin XCBuildConfiguration section */
256
256
  13B07F941A680F5B00A75B9A /* Debug */ = {
257
257
  isa = XCBuildConfiguration;
258
- baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-example.debug.xcconfig */;
258
+ baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-AuthTemplate.debug.xcconfig */;
259
259
  buildSettings = {
260
260
  ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
261
261
  CLANG_ENABLE_MODULES = YES;
262
262
  CURRENT_PROJECT_VERSION = 1;
263
263
  ENABLE_BITCODE = NO;
264
- INFOPLIST_FILE = example/Info.plist;
264
+ INFOPLIST_FILE = AuthTemplate/Info.plist;
265
+ INFOPLIST_KEY_CFBundleDisplayName = AuthTemplate;
265
266
  IPHONEOS_DEPLOYMENT_TARGET = 15.1;
266
267
  LD_RUNPATH_SEARCH_PATHS = (
267
268
  "$(inherited)",
@@ -273,8 +274,8 @@
273
274
  "-ObjC",
274
275
  "-lc++",
275
276
  );
276
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
277
- PRODUCT_NAME = example;
277
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.AuthTemplate.$(PRODUCT_NAME:rfc1034identifier)";
278
+ PRODUCT_NAME = AuthTemplate;
278
279
  SWIFT_OPTIMIZATION_LEVEL = "-Onone";
279
280
  SWIFT_VERSION = 5.0;
280
281
  VERSIONING_SYSTEM = "apple-generic";
@@ -283,12 +284,13 @@
283
284
  };
284
285
  13B07F951A680F5B00A75B9A /* Release */ = {
285
286
  isa = XCBuildConfiguration;
286
- baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-example.release.xcconfig */;
287
+ baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-AuthTemplate.release.xcconfig */;
287
288
  buildSettings = {
288
289
  ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
289
290
  CLANG_ENABLE_MODULES = YES;
290
291
  CURRENT_PROJECT_VERSION = 1;
291
- INFOPLIST_FILE = example/Info.plist;
292
+ INFOPLIST_FILE = AuthTemplate/Info.plist;
293
+ INFOPLIST_KEY_CFBundleDisplayName = AuthTemplate;
292
294
  IPHONEOS_DEPLOYMENT_TARGET = 15.1;
293
295
  LD_RUNPATH_SEARCH_PATHS = (
294
296
  "$(inherited)",
@@ -300,8 +302,8 @@
300
302
  "-ObjC",
301
303
  "-lc++",
302
304
  );
303
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
304
- PRODUCT_NAME = example;
305
+ PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.AuthTemplate.$(PRODUCT_NAME:rfc1034identifier)";
306
+ PRODUCT_NAME = AuthTemplate;
305
307
  SWIFT_VERSION = 5.0;
306
308
  VERSIONING_SYSTEM = "apple-generic";
307
309
  };
@@ -462,7 +464,7 @@
462
464
  /* End XCBuildConfiguration section */
463
465
 
464
466
  /* Begin XCConfigurationList section */
465
- 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */ = {
467
+ 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "AuthTemplate" */ = {
466
468
  isa = XCConfigurationList;
467
469
  buildConfigurations = (
468
470
  13B07F941A680F5B00A75B9A /* Debug */,
@@ -471,7 +473,7 @@
471
473
  defaultConfigurationIsVisible = 0;
472
474
  defaultConfigurationName = Release;
473
475
  };
474
- 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = {
476
+ 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "AuthTemplate" */ = {
475
477
  isa = XCConfigurationList;
476
478
  buildConfigurations = (
477
479
  83CBBA201A601CBA00E9B192 /* Debug */,
@@ -15,9 +15,9 @@
15
15
  <BuildableReference
16
16
  BuildableIdentifier = "primary"
17
17
  BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
18
- BuildableName = "example.app"
19
- BlueprintName = "example"
20
- ReferencedContainer = "container:example.xcodeproj">
18
+ BuildableName = "AuthTemplate.app"
19
+ BlueprintName = "AuthTemplate"
20
+ ReferencedContainer = "container:AuthTemplate.xcodeproj">
21
21
  </BuildableReference>
22
22
  </BuildActionEntry>
23
23
  </BuildActionEntries>
@@ -33,9 +33,9 @@
33
33
  <BuildableReference
34
34
  BuildableIdentifier = "primary"
35
35
  BlueprintIdentifier = "00E356ED1AD99517003FC87E"
36
- BuildableName = "exampleTests.xctest"
37
- BlueprintName = "exampleTests"
38
- ReferencedContainer = "container:example.xcodeproj">
36
+ BuildableName = "AuthTemplateTests.xctest"
37
+ BlueprintName = "AuthTemplateTests"
38
+ ReferencedContainer = "container:AuthTemplate.xcodeproj">
39
39
  </BuildableReference>
40
40
  </TestableReference>
41
41
  </Testables>
@@ -55,9 +55,9 @@
55
55
  <BuildableReference
56
56
  BuildableIdentifier = "primary"
57
57
  BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
58
- BuildableName = "example.app"
59
- BlueprintName = "example"
60
- ReferencedContainer = "container:example.xcodeproj">
58
+ BuildableName = "AuthTemplate.app"
59
+ BlueprintName = "AuthTemplate"
60
+ ReferencedContainer = "container:AuthTemplate.xcodeproj">
61
61
  </BuildableReference>
62
62
  </BuildableProductRunnable>
63
63
  </LaunchAction>
@@ -72,9 +72,9 @@
72
72
  <BuildableReference
73
73
  BuildableIdentifier = "primary"
74
74
  BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
75
- BuildableName = "example.app"
76
- BlueprintName = "example"
77
- ReferencedContainer = "container:example.xcodeproj">
75
+ BuildableName = "AuthTemplate.app"
76
+ BlueprintName = "AuthTemplate"
77
+ ReferencedContainer = "container:AuthTemplate.xcodeproj">
78
78
  </BuildableReference>
79
79
  </BuildableProductRunnable>
80
80
  </ProfileAction>
@@ -2,7 +2,7 @@
2
2
  <Workspace
3
3
  version = "1.0">
4
4
  <FileRef
5
- location = "group:example.xcodeproj">
5
+ location = "group:AuthTemplate.xcodeproj">
6
6
  </FileRef>
7
7
  <FileRef
8
8
  location = "group:Pods/Pods.xcodeproj">
@@ -14,7 +14,7 @@ if linkage != nil
14
14
  use_frameworks! :linkage => linkage.to_sym
15
15
  end
16
16
 
17
- target 'example' do
17
+ target 'AuthTemplate' do
18
18
  config = use_native_modules!
19
19
 
20
20
  use_react_native!(
@@ -1778,6 +1778,8 @@ PODS:
1778
1778
  - ReactCommon/turbomodule/core
1779
1779
  - SocketRocket
1780
1780
  - Yoga
1781
+ - react-native-vector-icons-material-design-icons (12.2.0)
1782
+ - react-native-vector-icons-material-icons (12.2.0)
1781
1783
  - react-native-webview (13.15.0):
1782
1784
  - boost
1783
1785
  - DoubleConversion
@@ -2281,7 +2283,7 @@ PODS:
2281
2283
  - React-perflogger (= 0.80.1)
2282
2284
  - React-utils (= 0.80.1)
2283
2285
  - SocketRocket
2284
- - RNBLUIVectorIcons (2.4.0):
2286
+ - RNBLUIVectorIcons (3.0.0):
2285
2287
  - React
2286
2288
  - RNCAsyncStorage (2.2.0):
2287
2289
  - boost
@@ -2690,6 +2692,8 @@ DEPENDENCIES:
2690
2692
  - react-native-pager-view (from `../node_modules/react-native-pager-view`)
2691
2693
  - react-native-restart (from `../node_modules/react-native-restart`)
2692
2694
  - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
2695
+ - "react-native-vector-icons-material-design-icons (from `../node_modules/@react-native-vector-icons/material-design-icons`)"
2696
+ - "react-native-vector-icons-material-icons (from `../node_modules/@react-native-vector-icons/material-icons`)"
2693
2697
  - react-native-webview (from `../node_modules/react-native-webview`)
2694
2698
  - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
2695
2699
  - React-oscompat (from `../node_modules/react-native/ReactCommon/oscompat`)
@@ -2828,6 +2832,10 @@ EXTERNAL SOURCES:
2828
2832
  :path: "../node_modules/react-native-restart"
2829
2833
  react-native-safe-area-context:
2830
2834
  :path: "../node_modules/react-native-safe-area-context"
2835
+ react-native-vector-icons-material-design-icons:
2836
+ :path: "../node_modules/@react-native-vector-icons/material-design-icons"
2837
+ react-native-vector-icons-material-icons:
2838
+ :path: "../node_modules/@react-native-vector-icons/material-icons"
2831
2839
  react-native-webview:
2832
2840
  :path: "../node_modules/react-native-webview"
2833
2841
  React-NativeModulesApple:
@@ -2957,6 +2965,8 @@ SPEC CHECKSUMS:
2957
2965
  react-native-pager-view: 6e60acfd433ace1a7a1af75bd80b619a41478640
2958
2966
  react-native-restart: 0bc732f4461709022a742bb29bcccf6bbc5b4863
2959
2967
  react-native-safe-area-context: d3738f0c3b1fcefaed874a45891b0d44306c47c1
2968
+ react-native-vector-icons-material-design-icons: e406b4fc1787999a5d150c897837150543e90b9c
2969
+ react-native-vector-icons-material-icons: 02aacdc7a2aa4d22dd841eaddad080a5f967b888
2960
2970
  react-native-webview: 9a8ea59197aa76145b8ce72aa3eea69f1e89dd38
2961
2971
  React-NativeModulesApple: 983f3483ef0a3446b56d490f09d579fba2442e17
2962
2972
  React-oscompat: 114036cd8f064558c9c1a0c04fc9ae5e1453706a
@@ -2989,7 +2999,7 @@ SPEC CHECKSUMS:
2989
2999
  ReactAppDependencyProvider: afd905e84ee36e1678016ae04d7370c75ed539be
2990
3000
  ReactCodegen: f8d5fb047c4cd9d2caade972cad9edac22521362
2991
3001
  ReactCommon: 17fd88849a174bf9ce45461912291aca711410fc
2992
- RNBLUIVectorIcons: c45655a90c6b6d2777bb6443c7088a63149c4b52
3002
+ RNBLUIVectorIcons: 60165888903e319a1ef8acf2e1e3ef2a9fc1192c
2993
3003
  RNCAsyncStorage: 1f04c8d56558e533277beda29187f571cf7eecb2
2994
3004
  RNCMaskedView: 4c5ee1c8667d56077246cc6d1977f77393923560
2995
3005
  RNGestureHandler: 5e1a1605659c22098719fc2e8aee453fe728f52e
@@ -3000,6 +3010,6 @@ SPEC CHECKSUMS:
3000
3010
  SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
3001
3011
  Yoga: daa1e4de4b971b977b23bc842aaa3e135324f1f3
3002
3012
 
3003
- PODFILE CHECKSUM: a5de45e2350a9515567a6e18ca8ceea718b48523
3013
+ PODFILE CHECKSUM: db45d013218cc1ef1938d23316978e04554e142f
3004
3014
 
3005
3015
  COCOAPODS: 1.16.2
@@ -0,0 +1,10 @@
1
+ export default {
2
+ oidc: {
3
+ clientId: process.env.OKTA_CLIENT_ID,
4
+ redirectUri: process.env.OKTA_REDIRECT_URI,
5
+ endSessionRedirectUri: process.env.OKTA_LOGOUT_REDIRECT_URI,
6
+ discoveryUri: process.env.OKTA_ISSUER,
7
+ scopes: ['openid', 'profile', 'offline_access', 'groups'],
8
+ requireHardwareBackedKeyStore: false,
9
+ },
10
+ };
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "example",
2
+ "name": "authentication-template",
3
3
  "version": "0.0.1",
4
4
  "private": true,
5
5
  "scripts": {
@@ -17,13 +17,15 @@
17
17
  "dependencies": {
18
18
  "@brightlayer-ui/colors": "^4.0.0",
19
19
  "@brightlayer-ui/icons-svg": "^1.15.0",
20
- "@brightlayer-ui/react-native-auth-workflow": "^7.0.2",
21
- "@brightlayer-ui/react-native-components": "^8.0.4",
22
- "@brightlayer-ui/react-native-themes": "^7.0.1",
23
- "@brightlayer-ui/react-native-vector-icons": "^2.4.0",
20
+ "@brightlayer-ui/react-native-auth-workflow": "^8.1.1",
21
+ "@brightlayer-ui/react-native-components": "^9.1.1",
22
+ "@brightlayer-ui/react-native-themes": "^8.0.0",
23
+ "@brightlayer-ui/react-native-vector-icons": "^3.0.0",
24
24
  "@okta/okta-react-native": "^2.17.0",
25
25
  "@react-native-async-storage/async-storage": "^2.2.0",
26
26
  "@react-native-community/masked-view": "^0.1.11",
27
+ "@react-native-vector-icons/material-design-icons": "^12.2.0",
28
+ "@react-native-vector-icons/material-icons": "^12.2.0",
27
29
  "@react-native/new-app-screen": "0.80.0",
28
30
  "@react-navigation/drawer": "^6.6.6",
29
31
  "@react-navigation/native": "^6.1.9",
@@ -35,6 +37,7 @@
35
37
  "react": "^19.1.0",
36
38
  "react-i18next": "^15.5.3",
37
39
  "react-native": "^0.80.0",
40
+ "react-native-dotenv": "^3.4.11",
38
41
  "react-native-gesture-handler": "^2.26.0",
39
42
  "react-native-keyboard-aware-scroll-view": "^0.9.5",
40
43
  "react-native-modal": "^13.0.2",