turbo-native-initializer 0.0.6 → 0.0.8

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 (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>