turbo-native-initializer 0.0.16 → 0.0.18
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.
- checksums.yaml +4 -4
- data/lib/turbo_native_initializer/generator.rb +2 -1
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebBottomSheetFragment.kt.tt +8 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/main/MainSessionNavHostFragment.kt.tt +8 -1
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebBottomSheetFragment.kt.tt +8 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/main/BaseSessionNavHostFragment.kt.tt +8 -1
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/TurboNavigationController.swift +3 -1
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/TurboWebViewController.swift +1 -2
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/AppDelegate.swift +20 -1
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/{SceneDelegate.swift.tt → SceneDelegate.swift} +5 -5
- data/lib/turbo_native_initializer/templates/{ios_tabs/TurboNativeProject/Controllers → ios_stack/TurboNativeProject/Extensions}/UIViewController+Toast.swift +9 -18
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/{TurboNativeProject.swift.tt → TurboNativeProject.swift} +1 -1
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.pbxproj.tt +26 -16
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/TurboNavigationController.swift +3 -1
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/TurboWebViewController.swift +1 -2
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/AppDelegate.swift +20 -1
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/{SceneDelegate.swift.tt → SceneDelegate.swift} +7 -6
- data/lib/turbo_native_initializer/templates/{ios_stack/TurboNativeProject/Controllers → ios_tabs/TurboNativeProject/Extensions}/UIViewController+Toast.swift +9 -18
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/{TurboNativeProject.swift.tt → TurboNativeProject.swift} +1 -1
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.pbxproj.tt +29 -21
- data/lib/turbo_native_initializer/version.rb +1 -1
- metadata +21 -19
- /data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/{Controllers → Extensions}/WKWebViewConfiguration+App.swift +0 -0
- /data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/{Configuration → Resources}/Info.plist +0 -0
- /data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/{Configuration → Resources}/path-configuration.json +0 -0
- /data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/{Resources → Views}/Base.lproj/LaunchScreen.storyboard +0 -0
- /data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/{Resources → Views}/Base.lproj/Main.storyboard +0 -0
- /data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/{Controllers → Extensions}/WKWebViewConfiguration+App.swift +0 -0
- /data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/{Configuration → Resources}/Info.plist +0 -0
- /data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/{Configuration → Resources}/path-configuration.json +0 -0
- /data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/{Resources → Views}/Base.lproj/LaunchScreen.storyboard +0 -0
- /data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/{Resources → Views}/Base.lproj/Main.storyboard +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 46eebca0f11beac2c27299db10976cf4b04357f916ebf9c37937b3e507e71bf3
|
|
4
|
+
data.tar.gz: 44102e1778c14329bb09a79049896af94ef1004f42ec8c4a9b226a65d713f790
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6f3989992aa8b01214daf9843df3a850af00b534e38e499acd01492ecbb5af7dabdba75e683af38e4cfddcd911696f96677879b887290110d1b57e9acca56cef
|
|
7
|
+
data.tar.gz: 4c0323cb1d7b990fdcbe3ca6baf9230363f9310b11c0a652fc482b9eef32e2699c1a9f80591cc3db3c512284c551a45d7e70f8f7b592843c883f7d8e00efff62
|
|
@@ -19,11 +19,12 @@ module TurboNativeInitializer
|
|
|
19
19
|
def copy_template_files
|
|
20
20
|
case options.platform
|
|
21
21
|
when "ios"
|
|
22
|
-
directory "#{project}/TurboNativeProject/Configuration", "#{name}/#{name}/Configuration"
|
|
23
22
|
directory "#{project}/TurboNativeProject/Controllers", "#{name}/#{name}/Controllers"
|
|
24
23
|
directory "#{project}/TurboNativeProject/Delegates", "#{name}/#{name}/Delegates"
|
|
24
|
+
directory "#{project}/TurboNativeProject/Extensions", "#{name}/#{name}/Extensions"
|
|
25
25
|
directory "#{project}/TurboNativeProject/Resources", "#{name}/#{name}/Resources"
|
|
26
26
|
directory "#{project}/TurboNativeProject/Strada", "#{name}/#{name}/Strada"
|
|
27
|
+
directory "#{project}/TurboNativeProject/Views", "#{name}/#{name}/Views"
|
|
27
28
|
directory "#{project}/TurboNativeProject.xcodeproj", "#{name}/#{name}.xcodeproj"
|
|
28
29
|
template "#{project}/TurboNativeProject/TurboNativeProject.swift", "#{name}/#{name}/#{name}.swift"
|
|
29
30
|
when "android"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
package <%= package_name %>.features.web
|
|
2
|
+
|
|
3
|
+
import <%= package_name %>.base.NavDestination
|
|
4
|
+
import dev.hotwire.turbo.fragments.TurboWebBottomSheetDialogFragment
|
|
5
|
+
import dev.hotwire.turbo.nav.TurboNavGraphDestination
|
|
6
|
+
|
|
7
|
+
@TurboNavGraphDestination(uri = "turbo://fragment/web/modal/sheet")
|
|
8
|
+
class WebBottomSheetFragment : TurboWebBottomSheetDialogFragment(), NavDestination
|
|
@@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment
|
|
|
5
5
|
import dev.hotwire.strada.Bridge
|
|
6
6
|
import dev.hotwire.turbo.config.TurboPathConfiguration
|
|
7
7
|
import <%= package_name %>.features.native.NumbersFragment
|
|
8
|
+
import <%= package_name %>.features.web.WebBottomSheetFragment
|
|
8
9
|
import <%= package_name %>.features.web.WebFragment
|
|
9
10
|
import <%= package_name %>.features.web.WebHomeFragment
|
|
10
11
|
import <%= package_name %>.features.web.WebModalFragment
|
|
@@ -23,7 +24,13 @@ class MainSessionNavHostFragment : TurboSessionNavHostFragment() {
|
|
|
23
24
|
get() = listOf()
|
|
24
25
|
|
|
25
26
|
override val registeredFragments: List<KClass<out Fragment>>
|
|
26
|
-
get() = listOf(
|
|
27
|
+
get() = listOf(
|
|
28
|
+
WebFragment::class,
|
|
29
|
+
WebHomeFragment::class,
|
|
30
|
+
WebModalFragment::class,
|
|
31
|
+
WebBottomSheetFragment::class,
|
|
32
|
+
NumbersFragment::class
|
|
33
|
+
)
|
|
27
34
|
|
|
28
35
|
override val pathConfigurationLocation: TurboPathConfiguration.Location
|
|
29
36
|
get() = TurboPathConfiguration.Location(assetFilePath = "json/configuration.json")
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
package <%= package_name %>.features.web
|
|
2
|
+
|
|
3
|
+
import <%= package_name %>.base.NavDestination
|
|
4
|
+
import dev.hotwire.turbo.fragments.TurboWebBottomSheetDialogFragment
|
|
5
|
+
import dev.hotwire.turbo.nav.TurboNavGraphDestination
|
|
6
|
+
|
|
7
|
+
@TurboNavGraphDestination(uri = "turbo://fragment/web/modal/sheet")
|
|
8
|
+
class WebBottomSheetFragment : TurboWebBottomSheetDialogFragment(), NavDestination
|
|
@@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment
|
|
|
5
5
|
import dev.hotwire.strada.Bridge
|
|
6
6
|
import dev.hotwire.turbo.config.TurboPathConfiguration
|
|
7
7
|
import <%= package_name %>.features.native.NumbersFragment
|
|
8
|
+
import <%= package_name %>.features.web.WebBottomSheetFragment
|
|
8
9
|
import <%= package_name %>.features.web.WebFragment
|
|
9
10
|
import <%= package_name %>.features.web.WebHomeFragment
|
|
10
11
|
import <%= package_name %>.features.web.WebModalFragment
|
|
@@ -17,7 +18,13 @@ abstract class BaseSessionNavHostFragment : TurboSessionNavHostFragment() {
|
|
|
17
18
|
get() = listOf()
|
|
18
19
|
|
|
19
20
|
override val registeredFragments: List<KClass<out Fragment>>
|
|
20
|
-
get() = listOf(
|
|
21
|
+
get() = listOf(
|
|
22
|
+
WebFragment::class,
|
|
23
|
+
WebHomeFragment::class,
|
|
24
|
+
WebModalFragment::class,
|
|
25
|
+
WebBottomSheetFragment::class,
|
|
26
|
+
NumbersFragment::class
|
|
27
|
+
)
|
|
21
28
|
|
|
22
29
|
override val pathConfigurationLocation: TurboPathConfiguration.Location
|
|
23
30
|
get() = TurboPathConfiguration.Location(assetFilePath = "json/configuration.json")
|
|
@@ -122,7 +122,9 @@ extension TurboNavigationController {
|
|
|
122
122
|
popToRootViewController(animated: true)
|
|
123
123
|
} else if isReplaceAll(properties) {
|
|
124
124
|
setViewControllers([viewController], animated: false)
|
|
125
|
-
} else if isReplace(properties)
|
|
125
|
+
} else if isReplace(properties) {
|
|
126
|
+
setViewControllers(Array(viewControllers.dropLast()) + [viewController], animated: false)
|
|
127
|
+
} else if action == .replace {
|
|
126
128
|
setViewControllers(Array(viewControllers.dropLast()) + [viewController], animated: false)
|
|
127
129
|
} else {
|
|
128
130
|
pushViewController(viewController, animated: true)
|
|
@@ -19,6 +19,7 @@ final class TurboWebViewController: VisitableViewController, ErrorPresenter, Bri
|
|
|
19
19
|
|
|
20
20
|
override func viewDidLoad() {
|
|
21
21
|
super.viewDidLoad()
|
|
22
|
+
bridgeDelegate.onViewDidLoad()
|
|
22
23
|
|
|
23
24
|
navigationItem.backButtonTitle = "Back"
|
|
24
25
|
|
|
@@ -27,8 +28,6 @@ final class TurboWebViewController: VisitableViewController, ErrorPresenter, Bri
|
|
|
27
28
|
if presentingViewController != nil {
|
|
28
29
|
navigationItem.leftBarButtonItem = dismissModalButton
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
bridgeDelegate.onViewDidLoad()
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
override func viewWillAppear(_ animated: Bool) {
|
data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/AppDelegate.swift
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import UIKit
|
|
2
2
|
|
|
3
3
|
@main
|
|
4
|
-
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
4
|
+
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
5
|
+
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
|
6
|
+
// Override point for customization after application launch.
|
|
7
|
+
return true
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// MARK: UISceneSession Lifecycle
|
|
11
|
+
|
|
12
|
+
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
|
|
13
|
+
// Called when a new scene session is being created.
|
|
14
|
+
// Use this method to select a configuration to create the new scene with.
|
|
15
|
+
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
|
|
19
|
+
// Called when the user discards a scene session.
|
|
20
|
+
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
|
|
21
|
+
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -5,16 +5,16 @@ import Turbo
|
|
|
5
5
|
import Strada
|
|
6
6
|
|
|
7
7
|
final class SceneDelegate: UIResponder {
|
|
8
|
-
private static var sharedProcessPool = WKProcessPool()
|
|
9
8
|
|
|
10
9
|
var window: UIWindow?
|
|
11
|
-
private let rootURL =
|
|
10
|
+
private let rootURL = TurboNativeProject.homeURL
|
|
12
11
|
private var navigationController: TurboNavigationController!
|
|
13
12
|
|
|
14
13
|
// MARK: - Setup
|
|
15
14
|
|
|
16
15
|
private func configureRootViewController() {
|
|
17
16
|
navigationController = window!.rootViewController as? TurboNavigationController
|
|
17
|
+
navigationController.navigationBar.scrollEdgeAppearance = .init()
|
|
18
18
|
navigationController.session = session
|
|
19
19
|
navigationController.modalSession = modalSession
|
|
20
20
|
}
|
|
@@ -22,7 +22,7 @@ final class SceneDelegate: UIResponder {
|
|
|
22
22
|
// MARK: - Authentication
|
|
23
23
|
|
|
24
24
|
private func promptForAuthentication() {
|
|
25
|
-
let authURL =
|
|
25
|
+
let authURL = TurboNativeProject.signInURL
|
|
26
26
|
let properties = pathConfiguration.properties(for: authURL)
|
|
27
27
|
navigationController.route(url: authURL, options: VisitOptions(), properties: properties)
|
|
28
28
|
}
|
|
@@ -42,6 +42,7 @@ final class SceneDelegate: UIResponder {
|
|
|
42
42
|
let session = Session(webView: webView)
|
|
43
43
|
session.delegate = self
|
|
44
44
|
session.pathConfiguration = pathConfiguration
|
|
45
|
+
|
|
45
46
|
return session
|
|
46
47
|
}
|
|
47
48
|
|
|
@@ -54,8 +55,7 @@ final class SceneDelegate: UIResponder {
|
|
|
54
55
|
|
|
55
56
|
extension SceneDelegate: UIWindowSceneDelegate {
|
|
56
57
|
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
|
|
57
|
-
guard let _ = scene as? UIWindowScene else { return }
|
|
58
|
-
|
|
58
|
+
guard let _ = (scene as? UIWindowScene) else { return }
|
|
59
59
|
configureRootViewController()
|
|
60
60
|
navigationController.route(url: rootURL, options: VisitOptions(action: .replace), properties: [:])
|
|
61
61
|
}
|
|
@@ -2,33 +2,24 @@ import SwiftUI
|
|
|
2
2
|
|
|
3
3
|
public extension UIViewController {
|
|
4
4
|
func presentToast(_ message: String) {
|
|
5
|
-
guard let
|
|
5
|
+
guard let window = view.window else { return }
|
|
6
6
|
|
|
7
|
-
removeToastViews(from:
|
|
7
|
+
removeToastViews(from: window)
|
|
8
8
|
|
|
9
9
|
let toastView = ToastView(message: message)
|
|
10
10
|
toastView.translatesAutoresizingMaskIntoConstraints = false
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
window.addSubview(toastView)
|
|
13
13
|
|
|
14
14
|
NSLayoutConstraint.activate([
|
|
15
|
-
toastView.
|
|
16
|
-
toastView.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let widthConstraint = toastView.widthAnchor.constraint(equalTo: view.widthAnchor, constant: -10)
|
|
20
|
-
widthConstraint.priority = .defaultHigh
|
|
21
|
-
|
|
22
|
-
let maxWidthConstraint = toastView.widthAnchor.constraint(lessThanOrEqualToConstant: 600)
|
|
23
|
-
maxWidthConstraint.priority = .required
|
|
24
|
-
|
|
25
|
-
NSLayoutConstraint.activate([
|
|
26
|
-
widthConstraint, maxWidthConstraint
|
|
15
|
+
toastView.centerXAnchor.constraint(equalTo: window.centerXAnchor),
|
|
16
|
+
toastView.topAnchor.constraint(equalTo: window.safeAreaLayoutGuide.topAnchor, constant: 2),
|
|
17
|
+
toastView.widthAnchor.constraint(equalTo: window.safeAreaLayoutGuide.widthAnchor, constant: -10)
|
|
27
18
|
])
|
|
28
19
|
}
|
|
29
20
|
|
|
30
|
-
fileprivate func removeToastViews(from
|
|
31
|
-
|
|
21
|
+
fileprivate func removeToastViews(from window: UIWindow) {
|
|
22
|
+
window.subviews.filter({ $0 is ToastView }).forEach({ toast in
|
|
32
23
|
toast.removeFromSuperview()
|
|
33
24
|
})
|
|
34
25
|
}
|
|
@@ -36,7 +27,7 @@ public extension UIViewController {
|
|
|
36
27
|
|
|
37
28
|
public class ToastView: UIView {
|
|
38
29
|
|
|
39
|
-
private var duration = 2.
|
|
30
|
+
private var duration = 2.0
|
|
40
31
|
|
|
41
32
|
convenience init(message: String) {
|
|
42
33
|
self.init(frame: .zero)
|
|
@@ -69,21 +69,21 @@
|
|
|
69
69
|
isa = PBXGroup;
|
|
70
70
|
children = (
|
|
71
71
|
5D281BB32ABC0CB0001CE599 /* BridgeComponent+App.swift */,
|
|
72
|
-
5D281BB52ABC0CB9001CE599 /* FormComponent.swift */,
|
|
73
|
-
5D1F2EC02ABEB12300B2819A /* NavButtonComponent.swift */,
|
|
74
72
|
5D91C53F2AC538960046D872 /* FlashMessageComponent.swift */,
|
|
73
|
+
5D281BB52ABC0CB9001CE599 /* FormComponent.swift */,
|
|
75
74
|
5DA9C92E2AC7E38100FEA7E6 /* MenuComponent.swift */,
|
|
75
|
+
5D1F2EC02ABEB12300B2819A /* NavButtonComponent.swift */,
|
|
76
76
|
);
|
|
77
77
|
path = Strada;
|
|
78
78
|
sourceTree = "<group>";
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
5DAD248F2AD6533E0082D23D /* Extensions */ = {
|
|
81
81
|
isa = PBXGroup;
|
|
82
82
|
children = (
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
5DAF71B62AC3FB53002D04FE /* UIViewController+Toast.swift */,
|
|
84
|
+
5D281BB02ABC0C3D001CE599 /* WKWebViewConfiguration+App.swift */,
|
|
85
85
|
);
|
|
86
|
-
path =
|
|
86
|
+
path = Extensions;
|
|
87
87
|
sourceTree = "<group>";
|
|
88
88
|
};
|
|
89
89
|
5DCC50C72A959DF800B529A0 = {
|
|
@@ -105,11 +105,12 @@
|
|
|
105
105
|
5DCC50D22A959DF900B529A0 /* <%= name %> */ = {
|
|
106
106
|
isa = PBXGroup;
|
|
107
107
|
children = (
|
|
108
|
-
5D281BB22ABC0C8F001CE599 /* Strada */,
|
|
109
|
-
5D2FA5CD2A9DB1AB001AF2F1 /* Configuration */,
|
|
110
108
|
5DCC50F42A95AC4E00B529A0 /* Controllers */,
|
|
111
109
|
5DCC50FB2A95B55200B529A0 /* Delegates */,
|
|
110
|
+
5DAD248F2AD6533E0082D23D /* Extensions */,
|
|
112
111
|
5DCC51072A95CCEE00B529A0 /* Resources */,
|
|
112
|
+
5D281BB22ABC0C8F001CE599 /* Strada */,
|
|
113
|
+
5DF25B382ADA0DF40046C704 /* Views */,
|
|
113
114
|
5DCC50F22A95A7E600B529A0 /* <%= name %>.swift */,
|
|
114
115
|
);
|
|
115
116
|
path = <%= name %>;
|
|
@@ -119,11 +120,9 @@
|
|
|
119
120
|
isa = PBXGroup;
|
|
120
121
|
children = (
|
|
121
122
|
5DCC50ED2A95A27600B529A0 /* ErrorPresenter.swift */,
|
|
122
|
-
|
|
123
|
-
5D281BB02ABC0C3D001CE599 /* WKWebViewConfiguration+App.swift */,
|
|
123
|
+
5DDD58802AA9A8BE00FAC961 /* NumbersViewController.swift */,
|
|
124
124
|
5DCC50E72A95A0D900B529A0 /* TurboNavigationController.swift */,
|
|
125
125
|
5DCC50D72A959DF900B529A0 /* TurboWebViewController.swift */,
|
|
126
|
-
5DDD58802AA9A8BE00FAC961 /* NumbersViewController.swift */,
|
|
127
126
|
);
|
|
128
127
|
path = Controllers;
|
|
129
128
|
sourceTree = "<group>";
|
|
@@ -141,10 +140,19 @@
|
|
|
141
140
|
isa = PBXGroup;
|
|
142
141
|
children = (
|
|
143
142
|
5DCC50DC2A959DFA00B529A0 /* Assets.xcassets */,
|
|
143
|
+
5DCC50E12A959DFA00B529A0 /* Info.plist */,
|
|
144
|
+
5DCC50E92A95A19600B529A0 /* path-configuration.json */,
|
|
145
|
+
);
|
|
146
|
+
path = Resources;
|
|
147
|
+
sourceTree = "<group>";
|
|
148
|
+
};
|
|
149
|
+
5DF25B382ADA0DF40046C704 /* Views */ = {
|
|
150
|
+
isa = PBXGroup;
|
|
151
|
+
children = (
|
|
144
152
|
5DCC50DE2A959DFA00B529A0 /* LaunchScreen.storyboard */,
|
|
145
153
|
5D0D86212A9AA70500A525E9 /* Main.storyboard */,
|
|
146
154
|
);
|
|
147
|
-
path =
|
|
155
|
+
path = Views;
|
|
148
156
|
sourceTree = "<group>";
|
|
149
157
|
};
|
|
150
158
|
/* End PBXGroup section */
|
|
@@ -179,7 +187,7 @@
|
|
|
179
187
|
attributes = {
|
|
180
188
|
BuildIndependentTargetsInParallel = 1;
|
|
181
189
|
LastSwiftUpdateCheck = 1430;
|
|
182
|
-
LastUpgradeCheck =
|
|
190
|
+
LastUpgradeCheck = 1500;
|
|
183
191
|
TargetAttributes = {
|
|
184
192
|
5DCC50CF2A959DF900B529A0 = {
|
|
185
193
|
CreatedOnToolsVersion = 14.3.1;
|
|
@@ -302,6 +310,7 @@
|
|
|
302
310
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
303
311
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
304
312
|
ENABLE_TESTABILITY = YES;
|
|
313
|
+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
|
305
314
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
|
306
315
|
GCC_DYNAMIC_NO_PIC = NO;
|
|
307
316
|
GCC_NO_COMMON_BLOCKS = YES;
|
|
@@ -362,6 +371,7 @@
|
|
|
362
371
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
363
372
|
ENABLE_NS_ASSERTIONS = NO;
|
|
364
373
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
374
|
+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
|
365
375
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
|
366
376
|
GCC_NO_COMMON_BLOCKS = YES;
|
|
367
377
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
@@ -388,7 +398,7 @@
|
|
|
388
398
|
CODE_SIGN_STYLE = Automatic;
|
|
389
399
|
CURRENT_PROJECT_VERSION = 1;
|
|
390
400
|
GENERATE_INFOPLIST_FILE = YES;
|
|
391
|
-
INFOPLIST_FILE = <%= name %>/
|
|
401
|
+
INFOPLIST_FILE = <%= name %>/Resources/Info.plist;
|
|
392
402
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
|
393
403
|
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
|
394
404
|
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
|
@@ -415,7 +425,7 @@
|
|
|
415
425
|
CODE_SIGN_STYLE = Automatic;
|
|
416
426
|
CURRENT_PROJECT_VERSION = 1;
|
|
417
427
|
GENERATE_INFOPLIST_FILE = YES;
|
|
418
|
-
INFOPLIST_FILE = <%= name %>/
|
|
428
|
+
INFOPLIST_FILE = <%= name %>/Resources/Info.plist;
|
|
419
429
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
|
420
430
|
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
|
421
431
|
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
|
@@ -471,7 +481,7 @@
|
|
|
471
481
|
repositoryURL = "https://github.com/hotwired/turbo-ios";
|
|
472
482
|
requirement = {
|
|
473
483
|
kind = exactVersion;
|
|
474
|
-
version = 7.0.
|
|
484
|
+
version = 7.0.1;
|
|
475
485
|
};
|
|
476
486
|
};
|
|
477
487
|
/* End XCRemoteSwiftPackageReference section */
|
|
@@ -122,7 +122,9 @@ extension TurboNavigationController {
|
|
|
122
122
|
popToRootViewController(animated: true)
|
|
123
123
|
} else if isReplaceAll(properties) {
|
|
124
124
|
setViewControllers([viewController], animated: false)
|
|
125
|
-
} else if isReplace(properties)
|
|
125
|
+
} else if isReplace(properties) {
|
|
126
|
+
setViewControllers(Array(viewControllers.dropLast()) + [viewController], animated: false)
|
|
127
|
+
} else if action == .replace {
|
|
126
128
|
setViewControllers(Array(viewControllers.dropLast()) + [viewController], animated: false)
|
|
127
129
|
} else {
|
|
128
130
|
pushViewController(viewController, animated: true)
|
|
@@ -19,6 +19,7 @@ final class TurboWebViewController: VisitableViewController, ErrorPresenter, Bri
|
|
|
19
19
|
|
|
20
20
|
override func viewDidLoad() {
|
|
21
21
|
super.viewDidLoad()
|
|
22
|
+
bridgeDelegate.onViewDidLoad()
|
|
22
23
|
|
|
23
24
|
navigationItem.backButtonTitle = "Back"
|
|
24
25
|
|
|
@@ -27,8 +28,6 @@ final class TurboWebViewController: VisitableViewController, ErrorPresenter, Bri
|
|
|
27
28
|
if presentingViewController != nil {
|
|
28
29
|
navigationItem.leftBarButtonItem = dismissModalButton
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
bridgeDelegate.onViewDidLoad()
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
override func viewWillAppear(_ animated: Bool) {
|
data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/AppDelegate.swift
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import UIKit
|
|
2
2
|
|
|
3
3
|
@main
|
|
4
|
-
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
4
|
+
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
5
|
+
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
|
6
|
+
// Override point for customization after application launch.
|
|
7
|
+
return true
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// MARK: UISceneSession Lifecycle
|
|
11
|
+
|
|
12
|
+
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
|
|
13
|
+
// Called when a new scene session is being created.
|
|
14
|
+
// Use this method to select a configuration to create the new scene with.
|
|
15
|
+
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
|
|
19
|
+
// Called when the user discards a scene session.
|
|
20
|
+
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
|
|
21
|
+
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -5,13 +5,11 @@ import Turbo
|
|
|
5
5
|
import Strada
|
|
6
6
|
|
|
7
7
|
final class SceneDelegate: UIResponder {
|
|
8
|
-
private static var sharedProcessPool = WKProcessPool()
|
|
9
|
-
|
|
10
8
|
var window: UIWindow?
|
|
11
9
|
|
|
12
|
-
private let baseURL =
|
|
13
|
-
private let rootURL1 =
|
|
14
|
-
private let rootURL2 =
|
|
10
|
+
private let baseURL = TurboNativeProject.baseURL
|
|
11
|
+
private let rootURL1 = TurboNativeProject.homeURL1
|
|
12
|
+
private let rootURL2 = TurboNativeProject.homeURL2
|
|
15
13
|
|
|
16
14
|
private var tabBarController: UITabBarController!
|
|
17
15
|
private var navigationController1: TurboNavigationController!
|
|
@@ -25,12 +23,15 @@ final class SceneDelegate: UIResponder {
|
|
|
25
23
|
|
|
26
24
|
private func configureRootViewController() {
|
|
27
25
|
tabBarController = window!.rootViewController as? UITabBarController
|
|
26
|
+
tabBarController.tabBar.scrollEdgeAppearance = .init()
|
|
28
27
|
|
|
29
28
|
navigationController1 = tabBarController.viewControllers![0] as? TurboNavigationController
|
|
29
|
+
navigationController1.navigationBar.scrollEdgeAppearance = .init()
|
|
30
30
|
navigationController1.session = session1
|
|
31
31
|
navigationController1.modalSession = modalSession
|
|
32
32
|
|
|
33
33
|
navigationController2 = tabBarController.viewControllers![1] as? TurboNavigationController
|
|
34
|
+
navigationController2.navigationBar.scrollEdgeAppearance = .init()
|
|
34
35
|
navigationController2.session = session2
|
|
35
36
|
navigationController2.modalSession = modalSession
|
|
36
37
|
}
|
|
@@ -113,7 +114,7 @@ extension SceneDelegate: WKUIDelegate {
|
|
|
113
114
|
func webView(_ webView: WKWebView, runJavaScriptConfirmPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping (Bool) -> Void) {
|
|
114
115
|
let confirm = UIAlertController(title: nil, message: message, preferredStyle: .alert)
|
|
115
116
|
confirm.addAction(UIAlertAction(title: "Cancel", style: .cancel) { _ in completionHandler(false) })
|
|
116
|
-
confirm.addAction(UIAlertAction(title: "OK", style: .default) { _ in completionHandler(true) })
|
|
117
|
+
confirm.addAction(UIAlertAction(title: "OK", style: .default) { _ in completionHandler(true) })
|
|
117
118
|
navigationController().present(confirm, animated: true)
|
|
118
119
|
}
|
|
119
120
|
}
|
|
@@ -2,33 +2,24 @@ import SwiftUI
|
|
|
2
2
|
|
|
3
3
|
public extension UIViewController {
|
|
4
4
|
func presentToast(_ message: String) {
|
|
5
|
-
guard let
|
|
5
|
+
guard let window = view.window else { return }
|
|
6
6
|
|
|
7
|
-
removeToastViews(from:
|
|
7
|
+
removeToastViews(from: window)
|
|
8
8
|
|
|
9
9
|
let toastView = ToastView(message: message)
|
|
10
10
|
toastView.translatesAutoresizingMaskIntoConstraints = false
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
window.addSubview(toastView)
|
|
13
13
|
|
|
14
14
|
NSLayoutConstraint.activate([
|
|
15
|
-
toastView.
|
|
16
|
-
toastView.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let widthConstraint = toastView.widthAnchor.constraint(equalTo: view.widthAnchor, constant: -10)
|
|
20
|
-
widthConstraint.priority = .defaultHigh
|
|
21
|
-
|
|
22
|
-
let maxWidthConstraint = toastView.widthAnchor.constraint(lessThanOrEqualToConstant: 600)
|
|
23
|
-
maxWidthConstraint.priority = .required
|
|
24
|
-
|
|
25
|
-
NSLayoutConstraint.activate([
|
|
26
|
-
widthConstraint, maxWidthConstraint
|
|
15
|
+
toastView.centerXAnchor.constraint(equalTo: window.centerXAnchor),
|
|
16
|
+
toastView.topAnchor.constraint(equalTo: window.safeAreaLayoutGuide.topAnchor, constant: 2),
|
|
17
|
+
toastView.widthAnchor.constraint(equalTo: window.safeAreaLayoutGuide.widthAnchor, constant: -10)
|
|
27
18
|
])
|
|
28
19
|
}
|
|
29
20
|
|
|
30
|
-
fileprivate func removeToastViews(from
|
|
31
|
-
|
|
21
|
+
fileprivate func removeToastViews(from window: UIWindow) {
|
|
22
|
+
window.subviews.filter({ $0 is ToastView }).forEach({ toast in
|
|
32
23
|
toast.removeFromSuperview()
|
|
33
24
|
})
|
|
34
25
|
}
|
|
@@ -36,7 +27,7 @@ public extension UIViewController {
|
|
|
36
27
|
|
|
37
28
|
public class ToastView: UIView {
|
|
38
29
|
|
|
39
|
-
private var duration = 2.
|
|
30
|
+
private var duration = 2.0
|
|
40
31
|
|
|
41
32
|
convenience init(message: String) {
|
|
42
33
|
self.init(frame: .zero)
|
data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.pbxproj.tt
CHANGED
|
@@ -65,27 +65,27 @@
|
|
|
65
65
|
/* End PBXFrameworksBuildPhase section */
|
|
66
66
|
|
|
67
67
|
/* Begin PBXGroup section */
|
|
68
|
-
5D2FA5CD2A9DB1AB001AF2F1 /* Configuration */ = {
|
|
69
|
-
isa = PBXGroup;
|
|
70
|
-
children = (
|
|
71
|
-
5DCC50E12A959DFA00B529A0 /* Info.plist */,
|
|
72
|
-
5DCC50E92A95A19600B529A0 /* path-configuration.json */,
|
|
73
|
-
);
|
|
74
|
-
path = Configuration;
|
|
75
|
-
sourceTree = "<group>";
|
|
76
|
-
};
|
|
77
68
|
5D8AB2F82ABC117400C6A82F /* Strada */ = {
|
|
78
69
|
isa = PBXGroup;
|
|
79
70
|
children = (
|
|
80
71
|
5D8AB2FA2ABC117F00C6A82F /* BridgeComponent+App.swift */,
|
|
81
|
-
5D8AB2F92ABC117F00C6A82F /* FormComponent.swift */,
|
|
82
|
-
5D1F2EC02ABEB12300B2819A /* NavButtonComponent.swift */,
|
|
83
72
|
5D2381402AC53D8900FABA1F /* FlashMessageComponent.swift */,
|
|
73
|
+
5D8AB2F92ABC117F00C6A82F /* FormComponent.swift */,
|
|
84
74
|
5DA9C9342AC874D200FEA7E6 /* MenuComponent.swift */,
|
|
75
|
+
5D1F2EC02ABEB12300B2819A /* NavButtonComponent.swift */,
|
|
85
76
|
);
|
|
86
77
|
path = Strada;
|
|
87
78
|
sourceTree = "<group>";
|
|
88
79
|
};
|
|
80
|
+
5DB1DBA12ADA1BF1008B0141 /* Views */ = {
|
|
81
|
+
isa = PBXGroup;
|
|
82
|
+
children = (
|
|
83
|
+
5DCC50DE2A959DFA00B529A0 /* LaunchScreen.storyboard */,
|
|
84
|
+
5D0D86212A9AA70500A525E9 /* Main.storyboard */,
|
|
85
|
+
);
|
|
86
|
+
path = Views;
|
|
87
|
+
sourceTree = "<group>";
|
|
88
|
+
};
|
|
89
89
|
5DCC50C72A959DF800B529A0 = {
|
|
90
90
|
isa = PBXGroup;
|
|
91
91
|
children = (
|
|
@@ -105,11 +105,12 @@
|
|
|
105
105
|
5DCC50D22A959DF900B529A0 /* <%= name %> */ = {
|
|
106
106
|
isa = PBXGroup;
|
|
107
107
|
children = (
|
|
108
|
-
5D8AB2F82ABC117400C6A82F /* Strada */,
|
|
109
|
-
5D2FA5CD2A9DB1AB001AF2F1 /* Configuration */,
|
|
110
108
|
5DCC50F42A95AC4E00B529A0 /* Controllers */,
|
|
111
109
|
5DCC50FB2A95B55200B529A0 /* Delegates */,
|
|
110
|
+
5DD38FFC2AD659BC00EA0059 /* Extensions */,
|
|
112
111
|
5DCC51072A95CCEE00B529A0 /* Resources */,
|
|
112
|
+
5D8AB2F82ABC117400C6A82F /* Strada */,
|
|
113
|
+
5DB1DBA12ADA1BF1008B0141 /* Views */,
|
|
113
114
|
5DCC50F22A95A7E600B529A0 /* <%= name %>.swift */,
|
|
114
115
|
);
|
|
115
116
|
path = <%= name %>;
|
|
@@ -118,12 +119,10 @@
|
|
|
118
119
|
5DCC50F42A95AC4E00B529A0 /* Controllers */ = {
|
|
119
120
|
isa = PBXGroup;
|
|
120
121
|
children = (
|
|
121
|
-
5D8AB2FD2ABC119900C6A82F /* WKWebViewConfiguration+App.swift */,
|
|
122
|
-
5D0735D32AC514F800AC547A /* UIViewController+Toast.swift */,
|
|
123
122
|
5DCC50ED2A95A27600B529A0 /* ErrorPresenter.swift */,
|
|
123
|
+
5DDD58802AA9A8BE00FAC961 /* NumbersViewController.swift */,
|
|
124
124
|
5DCC50E72A95A0D900B529A0 /* TurboNavigationController.swift */,
|
|
125
125
|
5DCC50D72A959DF900B529A0 /* TurboWebViewController.swift */,
|
|
126
|
-
5DDD58802AA9A8BE00FAC961 /* NumbersViewController.swift */,
|
|
127
126
|
);
|
|
128
127
|
path = Controllers;
|
|
129
128
|
sourceTree = "<group>";
|
|
@@ -141,12 +140,21 @@
|
|
|
141
140
|
isa = PBXGroup;
|
|
142
141
|
children = (
|
|
143
142
|
5DCC50DC2A959DFA00B529A0 /* Assets.xcassets */,
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
5DCC50E12A959DFA00B529A0 /* Info.plist */,
|
|
144
|
+
5DCC50E92A95A19600B529A0 /* path-configuration.json */,
|
|
146
145
|
);
|
|
147
146
|
path = Resources;
|
|
148
147
|
sourceTree = "<group>";
|
|
149
148
|
};
|
|
149
|
+
5DD38FFC2AD659BC00EA0059 /* Extensions */ = {
|
|
150
|
+
isa = PBXGroup;
|
|
151
|
+
children = (
|
|
152
|
+
5D0735D32AC514F800AC547A /* UIViewController+Toast.swift */,
|
|
153
|
+
5D8AB2FD2ABC119900C6A82F /* WKWebViewConfiguration+App.swift */,
|
|
154
|
+
);
|
|
155
|
+
path = Extensions;
|
|
156
|
+
sourceTree = "<group>";
|
|
157
|
+
};
|
|
150
158
|
/* End PBXGroup section */
|
|
151
159
|
|
|
152
160
|
/* Begin PBXNativeTarget section */
|
|
@@ -388,7 +396,7 @@
|
|
|
388
396
|
CODE_SIGN_STYLE = Automatic;
|
|
389
397
|
CURRENT_PROJECT_VERSION = 1;
|
|
390
398
|
GENERATE_INFOPLIST_FILE = YES;
|
|
391
|
-
INFOPLIST_FILE = <%= name %>/
|
|
399
|
+
INFOPLIST_FILE = <%= name %>/Resources/Info.plist;
|
|
392
400
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
|
393
401
|
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
|
394
402
|
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
|
@@ -415,7 +423,7 @@
|
|
|
415
423
|
CODE_SIGN_STYLE = Automatic;
|
|
416
424
|
CURRENT_PROJECT_VERSION = 1;
|
|
417
425
|
GENERATE_INFOPLIST_FILE = YES;
|
|
418
|
-
INFOPLIST_FILE = <%= name %>/
|
|
426
|
+
INFOPLIST_FILE = <%= name %>/Resources/Info.plist;
|
|
419
427
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
|
420
428
|
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
|
421
429
|
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
|
@@ -471,7 +479,7 @@
|
|
|
471
479
|
repositoryURL = "https://github.com/hotwired/turbo-ios";
|
|
472
480
|
requirement = {
|
|
473
481
|
kind = exactVersion;
|
|
474
|
-
version = 7.0.
|
|
482
|
+
version = 7.0.1;
|
|
475
483
|
};
|
|
476
484
|
};
|
|
477
485
|
/* End XCRemoteSwiftPackageReference section */
|
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.
|
|
4
|
+
version: 0.0.18
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nixon
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-10-
|
|
11
|
+
date: 2023-10-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -44,6 +44,7 @@ files:
|
|
|
44
44
|
- lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/base/NavDestination.kt.tt
|
|
45
45
|
- lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/native/NativeFragment.kt.tt
|
|
46
46
|
- lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/native/NumbersFragment.kt.tt
|
|
47
|
+
- lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebBottomSheetFragment.kt.tt
|
|
47
48
|
- lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebFragment.kt.tt
|
|
48
49
|
- lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebHomeFragment.kt.tt
|
|
49
50
|
- lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebModalFragment.kt.tt
|
|
@@ -99,6 +100,7 @@ files:
|
|
|
99
100
|
- lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/base/NavDestination.kt.tt
|
|
100
101
|
- lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/native/NativeFragment.kt.tt
|
|
101
102
|
- lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/native/NumbersFragment.kt.tt
|
|
103
|
+
- lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebBottomSheetFragment.kt.tt
|
|
102
104
|
- lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebFragment.kt.tt
|
|
103
105
|
- lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebHomeFragment.kt.tt
|
|
104
106
|
- lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebModalFragment.kt.tt
|
|
@@ -160,58 +162,58 @@ files:
|
|
|
160
162
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
|
161
163
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
|
|
162
164
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
|
163
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Configuration/Info.plist
|
|
164
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Configuration/path-configuration.json
|
|
165
165
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/ErrorPresenter.swift
|
|
166
166
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/NumbersViewController.swift
|
|
167
167
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/TurboNavigationController.swift
|
|
168
168
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/TurboWebViewController.swift
|
|
169
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/UIViewController+Toast.swift
|
|
170
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/WKWebViewConfiguration+App.swift
|
|
171
169
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/AppDelegate.swift
|
|
172
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/SceneDelegate.swift
|
|
170
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/SceneDelegate.swift
|
|
171
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Extensions/UIViewController+Toast.swift
|
|
172
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Extensions/WKWebViewConfiguration+App.swift
|
|
173
173
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/AccentColor.colorset/Contents.json
|
|
174
174
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
|
|
175
175
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/turbo.png
|
|
176
176
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/Contents.json
|
|
177
177
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/Contents.json
|
|
178
178
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/turbo.png
|
|
179
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/
|
|
180
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/
|
|
179
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Info.plist
|
|
180
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/path-configuration.json
|
|
181
181
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Strada/BridgeComponent+App.swift
|
|
182
182
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Strada/FlashMessageComponent.swift
|
|
183
183
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Strada/FormComponent.swift
|
|
184
184
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Strada/MenuComponent.swift
|
|
185
185
|
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Strada/NavButtonComponent.swift
|
|
186
|
-
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/TurboNativeProject.swift
|
|
186
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/TurboNativeProject.swift
|
|
187
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Views/Base.lproj/LaunchScreen.storyboard
|
|
188
|
+
- lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Views/Base.lproj/Main.storyboard
|
|
187
189
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.pbxproj.tt
|
|
188
190
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
|
189
191
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
|
|
190
192
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
|
191
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Configuration/Info.plist
|
|
192
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Configuration/path-configuration.json
|
|
193
193
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/ErrorPresenter.swift
|
|
194
194
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/NumbersViewController.swift
|
|
195
195
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/TurboNavigationController.swift
|
|
196
196
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/TurboWebViewController.swift
|
|
197
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/UIViewController+Toast.swift
|
|
198
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/WKWebViewConfiguration+App.swift
|
|
199
197
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/AppDelegate.swift
|
|
200
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/SceneDelegate.swift
|
|
198
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/SceneDelegate.swift
|
|
199
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Extensions/UIViewController+Toast.swift
|
|
200
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Extensions/WKWebViewConfiguration+App.swift
|
|
201
201
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/AccentColor.colorset/Contents.json
|
|
202
202
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
|
|
203
203
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/turbo.png
|
|
204
204
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/Contents.json
|
|
205
205
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/Contents.json
|
|
206
206
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/turbo.png
|
|
207
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/
|
|
208
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/
|
|
207
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Info.plist
|
|
208
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/path-configuration.json
|
|
209
209
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Strada/BridgeComponent+App.swift
|
|
210
210
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Strada/FlashMessageComponent.swift
|
|
211
211
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Strada/FormComponent.swift
|
|
212
212
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Strada/MenuComponent.swift
|
|
213
213
|
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Strada/NavButtonComponent.swift
|
|
214
|
-
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/TurboNativeProject.swift
|
|
214
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/TurboNativeProject.swift
|
|
215
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Views/Base.lproj/LaunchScreen.storyboard
|
|
216
|
+
- lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Views/Base.lproj/Main.storyboard
|
|
215
217
|
- lib/turbo_native_initializer/version.rb
|
|
216
218
|
homepage: https://github.com/lazaronixon/turbo-native-initializer
|
|
217
219
|
licenses:
|
|
@@ -235,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
235
237
|
- !ruby/object:Gem::Version
|
|
236
238
|
version: '0'
|
|
237
239
|
requirements: []
|
|
238
|
-
rubygems_version: 3.4.
|
|
240
|
+
rubygems_version: 3.4.20
|
|
239
241
|
signing_key:
|
|
240
242
|
specification_version: 4
|
|
241
243
|
summary: A turbo native project generator
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|