turbo-native-initializer 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (17) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +2 -2
  4. data/lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/error_web.xml +4 -13
  5. data/lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/error_web.xml +4 -13
  6. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/ErrorPresenter.swift +0 -4
  7. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/NumbersViewController.swift +3 -10
  8. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/TurboNavigationController.swift +5 -5
  9. data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/SceneDelegate.swift.tt +2 -4
  10. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/ErrorPresenter.swift +0 -4
  11. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/NumbersViewController.swift +3 -10
  12. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/TurboNavigationController.swift +5 -5
  13. data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/SceneDelegate.swift.tt +2 -4
  14. data/lib/turbo_native_initializer/version.rb +1 -1
  15. metadata +2 -4
  16. data/lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_warning.xml +0 -7
  17. data/lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_warning.xml +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 893bf3c34e0baf61bb3ee5b7ce006ce9946bddc156bb8d95ea9a255d01c93d7e
4
- data.tar.gz: 8d9677132ab1956eba6332539cddec223b6f66ffac6e5ed9b766553d104344bc
3
+ metadata.gz: 518999c4b582f3e174bc3b7f631e3bd51e148349a92693af74a2a9e87dc4851b
4
+ data.tar.gz: a9ee896086b2836902c30a725c278c995057db62c96fb232f013e9a978413f5a
5
5
  SHA512:
6
- metadata.gz: b25e7862afa00d50783f259dceb567a439b807832e2f73984033f80aef10de767e13fc3c6f75b764ba32651a5974d5ebed19cacf368d3c37283f7bb329649c23
7
- data.tar.gz: eeaccd07971c2472b78a2b4f1eaff2828f25f23fecad3043d2047de013d636a17ebfc2f7691d45c8acd45a3b7335966b9953530512f7e92010150f641aee40c0
6
+ metadata.gz: cbedfe1b08f53271dd0c5f803654f609320d887f5935a3ab788c4137c738f50f9ac48396fade5be9fbd440e0fc22da62da170bced13e193790c7f5fd3ca1e84f
7
+ data.tar.gz: f564171bcc1ca3776e64e752dedf629ddca463a937288eb114beb4331399c54b3f74b1cd02924c89c8eef01780cc0ae1e7cb4f9c40b02d5b8f9ad0dc1735aa7b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.0.8] - 2023-09-11
4
+
5
+ - Fix retry button in modals (iOS)
6
+
7
+ ## [0.0.7] - 2023-09-09
8
+
9
+ - Small refactor in the NumbersViewController (iOS)
10
+
3
11
  ## [0.0.6] - 2023-09-09
4
12
 
5
13
  - Fix android template imports
data/README.md CHANGED
@@ -8,8 +8,8 @@ A turbo native project generator for iOS and Android.
8
8
  - Added SwiftUI numbers example screen. (iOS)
9
9
  - Added Jetpack Compose numbers example screen. (Android)
10
10
  - Added UIAlertController to handle `data-turbo-confirm`. (iOS)
11
- - Added presentations `clear-all`, `replace-all`, `replace`, `pop`, `refresh`, and `none`. (iOS)
12
- - Added visitable property in order to avoid visits. (iOS)
11
+ - Added presentations `pop`, `refresh`, `none`, `replace`, `clear-all`, and `replace-all`. (iOS)
12
+ - Added `visitable` property in order to avoid visits. (iOS)
13
13
  - Added support for tab navigation. (iOS/Android)
14
14
 
15
15
  ## Installation
@@ -6,28 +6,19 @@
6
6
  android:layout_height="match_parent"
7
7
  android:background="?android:colorBackground">
8
8
 
9
- <ImageView
10
- android:id="@+id/imageView"
11
- android:layout_width="match_parent"
12
- android:layout_height="50dp"
13
- android:layout_marginBottom="10dp"
14
- app:layout_constraintBottom_toTopOf="@+id/error_message"
15
- app:srcCompat="@drawable/ic_warning" />
16
-
17
9
  <com.google.android.material.textview.MaterialTextView
18
10
  android:id="@+id/error_message"
19
- style="?textAppearanceDisplaySmall"
11
+ style="?textAppearanceHeadline6"
20
12
  android:layout_width="match_parent"
21
13
  android:layout_height="wrap_content"
22
14
  android:gravity="center_horizontal"
23
15
  android:text="Error loading page"
24
16
  app:layout_constraintBottom_toBottomOf="parent"
25
17
  app:layout_constraintTop_toTopOf="parent"
26
- app:layout_constraintVertical_bias=".45"
27
- tools:layout_editor_absoluteX="24dp" />
18
+ app:layout_constraintVertical_bias=".40" />
28
19
 
29
20
  <com.google.android.material.textview.MaterialTextView
30
- style="?textAppearanceTitleMedium"
21
+ style="?textAppearanceCaption"
31
22
  android:layout_width="match_parent"
32
23
  android:layout_height="wrap_content"
33
24
  android:layout_marginTop="10dp"
@@ -36,4 +27,4 @@
36
27
  app:layout_constraintTop_toBottomOf="@id/error_message"
37
28
  tools:layout_editor_absoluteX="24dp" />
38
29
 
39
- </androidx.constraintlayout.widget.ConstraintLayout>
30
+ </androidx.constraintlayout.widget.ConstraintLayout>
@@ -6,28 +6,19 @@
6
6
  android:layout_height="match_parent"
7
7
  android:background="?android:colorBackground">
8
8
 
9
- <ImageView
10
- android:id="@+id/imageView"
11
- android:layout_width="match_parent"
12
- android:layout_height="50dp"
13
- android:layout_marginBottom="10dp"
14
- app:layout_constraintBottom_toTopOf="@+id/error_message"
15
- app:srcCompat="@drawable/ic_warning" />
16
-
17
9
  <com.google.android.material.textview.MaterialTextView
18
10
  android:id="@+id/error_message"
19
- style="?textAppearanceDisplaySmall"
11
+ style="?textAppearanceHeadline6"
20
12
  android:layout_width="match_parent"
21
13
  android:layout_height="wrap_content"
22
14
  android:gravity="center_horizontal"
23
15
  android:text="Error loading page"
24
16
  app:layout_constraintBottom_toBottomOf="parent"
25
17
  app:layout_constraintTop_toTopOf="parent"
26
- app:layout_constraintVertical_bias=".45"
27
- tools:layout_editor_absoluteX="24dp" />
18
+ app:layout_constraintVertical_bias=".40" />
28
19
 
29
20
  <com.google.android.material.textview.MaterialTextView
30
- style="?textAppearanceTitleMedium"
21
+ style="?textAppearanceCaption"
31
22
  android:layout_width="match_parent"
32
23
  android:layout_height="wrap_content"
33
24
  android:layout_marginTop="10dp"
@@ -36,4 +27,4 @@
36
27
  app:layout_constraintTop_toBottomOf="@id/error_message"
37
28
  tools:layout_editor_absoluteX="24dp" />
38
29
 
39
- </androidx.constraintlayout.widget.ConstraintLayout>
30
+ </androidx.constraintlayout.widget.ConstraintLayout>
@@ -43,10 +43,6 @@ struct ErrorView: View {
43
43
 
44
44
  var body: some View {
45
45
  VStack(spacing: 16) {
46
- Image(systemName: "exclamationmark.triangle")
47
- .font(.system(size: 38, weight: .semibold))
48
- .foregroundColor(.accentColor)
49
-
50
46
  Text("Error loading page")
51
47
  .font(.largeTitle)
52
48
 
@@ -1,16 +1,9 @@
1
1
  import SwiftUI
2
2
 
3
3
  class NumbersViewController: UIHostingController<NumbersView> {
4
- init() {
5
- super.init(rootView: NumbersView())
6
- }
7
-
8
- required init(coder aDecoder: NSCoder) {
9
- fatalError("init(coder:) has not been implemented")
10
- }
11
-
12
- override func viewDidLoad() {
13
- super.viewDidLoad(); title = "Numbers"
4
+ convenience init(title: String) {
5
+ self.init(rootView: NumbersView())
6
+ self.title = title
14
7
  }
15
8
  }
16
9
 
@@ -52,7 +52,7 @@ extension TurboNavigationController {
52
52
 
53
53
  private func isClearAll(_ properties: PathProperties) -> Bool {
54
54
  return properties["presentation"] as? String == "clear-all"
55
- }
55
+ }
56
56
 
57
57
  private func isReplaceAll(_ properties: PathProperties) -> Bool {
58
58
  return properties["presentation"] as? String == "replace-all"
@@ -75,13 +75,13 @@ extension TurboNavigationController {
75
75
  if let viewController = properties["view-controller"] as? String {
76
76
  switch viewController {
77
77
  case "numbers":
78
- return NumbersViewController()
78
+ return NumbersViewController(title: "Numbers")
79
79
  default:
80
- return ViewController(url: url)
80
+ assertionFailure("Invalid view controller, defaulting to WebView")
81
81
  }
82
- } else {
83
- return ViewController(url: url)
84
82
  }
83
+
84
+ return ViewController(url: url)
85
85
  }
86
86
 
87
87
  private func navigate(to viewController: UIViewController, action: VisitAction, properties: PathProperties = [:]) {
@@ -72,11 +72,9 @@ extension SceneDelegate: SessionDelegate {
72
72
  if let turboError = error as? TurboError, case let .http(statusCode) = turboError, statusCode == 401 {
73
73
  promptForAuthentication()
74
74
  } else if let errorPresenter = visitable as? ErrorPresenter {
75
- errorPresenter.presentError(error) { [weak self] in
76
- self?.session.reload()
77
- }
75
+ errorPresenter.presentError(error) { session.reload() }
78
76
  } else {
79
- assertionFailure("Visit failed!")
77
+ fatalError("Visit failed!")
80
78
  }
81
79
  }
82
80
 
@@ -43,10 +43,6 @@ struct ErrorView: View {
43
43
 
44
44
  var body: some View {
45
45
  VStack(spacing: 16) {
46
- Image(systemName: "exclamationmark.triangle")
47
- .font(.system(size: 38, weight: .semibold))
48
- .foregroundColor(.accentColor)
49
-
50
46
  Text("Error loading page")
51
47
  .font(.largeTitle)
52
48
 
@@ -1,16 +1,9 @@
1
1
  import SwiftUI
2
2
 
3
3
  class NumbersViewController: UIHostingController<NumbersView> {
4
- init() {
5
- super.init(rootView: NumbersView())
6
- }
7
-
8
- required init(coder aDecoder: NSCoder) {
9
- fatalError("init(coder:) has not been implemented")
10
- }
11
-
12
- override func viewDidLoad() {
13
- super.viewDidLoad(); title = "Numbers"
4
+ convenience init(title: String) {
5
+ self.init(rootView: NumbersView())
6
+ self.title = title
14
7
  }
15
8
  }
16
9
 
@@ -52,7 +52,7 @@ extension TurboNavigationController {
52
52
 
53
53
  private func isClearAll(_ properties: PathProperties) -> Bool {
54
54
  return properties["presentation"] as? String == "clear-all"
55
- }
55
+ }
56
56
 
57
57
  private func isReplaceAll(_ properties: PathProperties) -> Bool {
58
58
  return properties["presentation"] as? String == "replace-all"
@@ -75,13 +75,13 @@ extension TurboNavigationController {
75
75
  if let viewController = properties["view-controller"] as? String {
76
76
  switch viewController {
77
77
  case "numbers":
78
- return NumbersViewController()
78
+ return NumbersViewController(title: "Numbers")
79
79
  default:
80
- return ViewController(url: url)
80
+ assertionFailure("Invalid view controller, defaulting to WebView")
81
81
  }
82
- } else {
83
- return ViewController(url: url)
84
82
  }
83
+
84
+ return ViewController(url: url)
85
85
  }
86
86
 
87
87
  private func navigate(to viewController: UIViewController, action: VisitAction, properties: PathProperties = [:]) {
@@ -90,11 +90,9 @@ extension SceneDelegate: SessionDelegate {
90
90
 
91
91
  func session(_ session: Session, didFailRequestForVisitable visitable: Visitable, error: Error) {
92
92
  if let errorPresenter = visitable as? ErrorPresenter {
93
- errorPresenter.presentError(error) { [weak self] in
94
- self?.session().reload()
95
- }
93
+ errorPresenter.presentError(error) { session.reload() }
96
94
  } else {
97
- assertionFailure("Visit failed!")
95
+ fatalError("Visit failed!")
98
96
  }
99
97
  }
100
98
 
@@ -1,3 +1,3 @@
1
1
  module TurboNativeInitializer
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo-native-initializer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nixon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-10 00:00:00.000000000 Z
11
+ date: 2023-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -63,7 +63,6 @@ files:
63
63
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/anim/overshoot_interpolator.xml
64
64
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_close.xml
65
65
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_launcher_foreground.xml
66
- - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/drawable/ic_warning.xml
67
66
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/activity_main.xml.tt
68
67
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/error_web.xml
69
68
  - lib/turbo_native_initializer/templates/android_stack/base/app/src/main/res/layout/fragment_native.xml
@@ -112,7 +111,6 @@ files:
112
111
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_home.xml
113
112
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_launcher_foreground.xml
114
113
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_settings.xml
115
- - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/drawable/ic_warning.xml
116
114
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/activity_main.xml.tt
117
115
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/error_web.xml
118
116
  - lib/turbo_native_initializer/templates/android_tabs/base/app/src/main/res/layout/fragment_native.xml
@@ -1,7 +0,0 @@
1
- <vector android:height="24dp" android:tint="@color/color_brand"
2
- android:viewportHeight="24" android:viewportWidth="24"
3
- android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
- <path android:fillColor="@android:color/white" android:pathData="M12,5.99L19.53,19H4.47L12,5.99M12,2L1,21h22L12,2L12,2z"/>
5
- <path android:fillColor="@android:color/white" android:pathData="M13,16l-2,0l0,2l2,0z"/>
6
- <path android:fillColor="@android:color/white" android:pathData="M13,10l-2,0l0,5l2,0z"/>
7
- </vector>
@@ -1,7 +0,0 @@
1
- <vector android:height="24dp" android:tint="@color/color_brand"
2
- android:viewportHeight="24" android:viewportWidth="24"
3
- android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
4
- <path android:fillColor="@android:color/white" android:pathData="M12,5.99L19.53,19H4.47L12,5.99M12,2L1,21h22L12,2L12,2z"/>
5
- <path android:fillColor="@android:color/white" android:pathData="M13,16l-2,0l0,2l2,0z"/>
6
- <path android:fillColor="@android:color/white" android:pathData="M13,10l-2,0l0,5l2,0z"/>
7
- </vector>