Skip to content

Commit 330a733

Browse files
committed
Bug fixes
1 parent 1e42310 commit 330a733

File tree

4 files changed

+30
-26
lines changed

4 files changed

+30
-26
lines changed

RuntimeViewerUsingAppKit/RuntimeViewerUsingAppKit.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -977,7 +977,7 @@
977977
"@executable_path/../Frameworks",
978978
);
979979
MACOSX_DEPLOYMENT_TARGET = 12.0;
980-
MARKETING_VERSION = 1.1.0;
980+
MARKETING_VERSION = 1.2.0;
981981
PRODUCT_BUNDLE_IDENTIFIER = com.JH.RuntimeViewer;
982982
PRODUCT_NAME = RuntimeViewer;
983983
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -1012,7 +1012,7 @@
10121012
"@executable_path/../Frameworks",
10131013
);
10141014
MACOSX_DEPLOYMENT_TARGET = 12.0;
1015-
MARKETING_VERSION = 1.1.0;
1015+
MARKETING_VERSION = 1.2.0;
10161016
PRODUCT_BUNDLE_IDENTIFIER = com.JH.RuntimeViewer;
10171017
PRODUCT_NAME = RuntimeViewer;
10181018
SWIFT_EMIT_LOC_STRINGS = YES;

RuntimeViewerUsingAppKit/RuntimeViewerUsingAppKit/Main/MainCoordinator.swift

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class MainCoordinator: SceneCoordinator<MainRoute, MainTransition> {
2727
super.init(windowController: .init(), initialRoute: .main(.shared))
2828
}
2929

30-
lazy var viewModel = MainViewModel(appServices: appServices, router: self, completeTransition: sidebarCoordinator.rx.didCompleteTransition())
30+
lazy var viewModel = MainViewModel(appServices: appServices, router: self)
3131

3232
override func prepareTransition(for route: MainRoute) -> MainTransition {
3333
switch route {
@@ -39,6 +39,7 @@ class MainCoordinator: SceneCoordinator<MainRoute, MainTransition> {
3939
sidebarCoordinator = SidebarCoordinator(appServices: appServices, delegate: self)
4040
contentCoordinator = ContentCoordinator(appServices: appServices, delegate: self)
4141
inspectorCoordinator = InspectorCoordinator(appServices: appServices)
42+
viewModel.completeTransition = sidebarCoordinator.rx.didCompleteTransition()
4243
windowController.setupBindings(for: viewModel)
4344
return .multiple(
4445
.show(windowController.splitViewController),
@@ -55,7 +56,7 @@ class MainCoordinator: SceneCoordinator<MainRoute, MainTransition> {
5556
return .route(on: sidebarCoordinator, to: .back)
5657
case .contentBack:
5758
return .route(on: contentCoordinator, to: .back)
58-
case .generationOptions(let sender):
59+
case let .generationOptions(sender):
5960
let viewController = GenerationOptionsViewController()
6061
let viewModel = GenerationOptionsViewModel(appServices: appServices, router: self)
6162
viewController.setupBindings(for: viewModel)
@@ -77,8 +78,7 @@ class MainCoordinator: SceneCoordinator<MainRoute, MainTransition> {
7778
switch route {
7879
case .main:
7980
windowController.splitViewController.setupSplitViewItems()
80-
81-
break
81+
8282
default:
8383
break
8484
}
@@ -87,17 +87,19 @@ class MainCoordinator: SceneCoordinator<MainRoute, MainTransition> {
8787

8888
extension MainCoordinator: SidebarCoordinator.Delegate {
8989
func sidebarCoordinator(_ sidebarCoordinator: SidebarCoordinator, completeTransition route: SidebarRoute) {
90+
// if sidebarCoordinator.rootViewController.viewControllers.count < 2 {
91+
// windowController.toolbarController.toolbar.removeItem(at: .Main.sidebarBack)
92+
// } else if !windowController.toolbarController.toolbar.items.contains(where: { $0.itemIdentifier == .Main.sidebarBack }) {
93+
// windowController.toolbarController.toolbar.insertItem(withItemIdentifier: .Main.sidebarBack, at: 0)
94+
// }
9095
switch route {
91-
case .selectedNode(_):
96+
case .selectedNode:
9297
break
9398
case let .clickedNode(runtimeNamedNode):
9499
windowController.window?.title = runtimeNamedNode.name
95100
case let .selectedObject(runtimeObjectType):
96-
// windowController.window?.title = runtimeObjectType.name
97-
98101
contentCoordinator.contextTrigger(.root(runtimeObjectType))
99102
case .back:
100-
// windowController.window?.title = "Runtime Viewer"
101103
contentCoordinator.contextTrigger(.placeholder)
102104
default:
103105
break
@@ -115,9 +117,9 @@ extension MainCoordinator: ContentCoordinator.Delegate {
115117
switch route {
116118
case .placeholder:
117119
inspectorCoordinator.contextTrigger(.placeholder)
118-
case .root(let runtimeObjectType):
120+
case let .root(runtimeObjectType):
119121
inspectorCoordinator.contextTrigger(.root(.object(runtimeObjectType)))
120-
case .next(let runtimeObjectType):
122+
case let .next(runtimeObjectType):
121123
inspectorCoordinator.contextTrigger(.next(.object(runtimeObjectType)))
122124
case .back:
123125
inspectorCoordinator.contextTrigger(.back)

RuntimeViewerUsingAppKit/RuntimeViewerUsingAppKit/Main/MainViewModel.swift

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ enum MessageError: LocalizedError {
1717

1818
var errorDescription: String? {
1919
switch self {
20-
case .message(let message):
20+
case let .message(message):
2121
return message
2222
}
2323
}
@@ -45,8 +45,15 @@ class MainViewModel: ViewModel<MainRoute> {
4545
let selectedRuntimeSourceIndex: Driver<Int>
4646
}
4747

48-
let completeTransition: Observable<SidebarRoute>
48+
var completeTransition: Observable<SidebarRoute>? {
49+
didSet {
50+
completeTransitionDisposable?.dispose()
51+
completeTransitionDisposable = completeTransition?.map { if case let .selectedObject(runtimeObject) = $0 { runtimeObject } else { nil } }.bind(to: $selectedRuntimeObject)
52+
}
53+
}
4954

55+
var completeTransitionDisposable: Disposable?
56+
5057
let selectedRuntimeSourceIndex = BehaviorRelay(value: 0)
5158

5259
let runtimeEngineManager = RuntimeEngineManager.shared
@@ -55,6 +62,8 @@ class MainViewModel: ViewModel<MainRoute> {
5562
var selectedRuntimeObject: RuntimeObjectType?
5663

5764
func transform(_ input: Input) -> Output {
65+
rx.disposeBag = DisposeBag()
66+
5867
input.loadFrameworksClick.emitOnNext { [weak self] in
5968
guard let self else { return }
6069
Task { @MainActor in
@@ -133,7 +142,7 @@ class MainViewModel: ViewModel<MainRoute> {
133142
$0.selectedRuntimeSourceIndex.accept($1)
134143
}.disposed(by: rx.disposeBag)
135144

136-
let sharingServiceItems = completeTransition.map { [weak self] router -> [Any] in
145+
let sharingServiceItems = completeTransition?.map { [weak self] router -> [Any] in
137146
guard let self else { return [] }
138147
switch router {
139148
case let .selectedObject(runtimeObjectType):
@@ -162,19 +171,13 @@ class MainViewModel: ViewModel<MainRoute> {
162171
}
163172

164173
return Output(
165-
sharingServiceItems: sharingServiceItems,
174+
sharingServiceItems: sharingServiceItems ?? .empty(),
166175
isSavable: $selectedRuntimeObject.asDriver().map { $0 != nil },
167-
isSidebarBackHidden: completeTransition.map {
176+
isSidebarBackHidden: completeTransition?.map {
168177
if case .clickedNode = $0 { false } else if case .selectedObject = $0 { false } else { true }
169-
}.asDriver(onErrorJustReturn: true),
178+
}.asDriver(onErrorJustReturn: true) ?? .empty(),
170179
runtimeSources: runtimeEngineManager.rx.runtimeEngines.map { $0.map(\.source) },
171180
selectedRuntimeSourceIndex: selectedRuntimeSourceIndex.asDriver()
172181
)
173182
}
174-
175-
init(appServices: AppServices, router: any Router<MainRoute>, completeTransition: Observable<SidebarRoute>) {
176-
self.completeTransition = completeTransition
177-
super.init(appServices: appServices, router: router)
178-
completeTransition.map { if case let .selectedObject(runtimeObject) = $0 { runtimeObject } else { nil } }.bind(to: $selectedRuntimeObject).disposed(by: rx.disposeBag)
179-
}
180183
}

RuntimeViewerUsingAppKit/RuntimeViewerUsingAppKit/Main/MainWindowController.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ class MainWindowController: XiblessWindowController<MainWindow> {
7575
output.isSidebarBackHidden.drive(toolbarController.sidebarBackItem.button.rx.isHidden).disposed(by: rx.disposeBag)
7676
output.selectedRuntimeSourceIndex.drive(toolbarController.switchSourceItem.popUpButton.rx.selectedIndex()).disposed(by: rx.disposeBag)
7777
output.runtimeSources.drive(toolbarController.switchSourceItem.popUpButton.rx.items()).disposed(by: rx.disposeBag)
78-
viewModel.errorRelay.asSignal().emitOnNextMainActor { [weak self] error in
79-
guard let self else { return }
78+
viewModel.errorRelay.asSignal().emitOnNextMainActor { error in
8079
NSAlert(error: error).runModal()
8180
}
8281
.disposed(by: rx.disposeBag)

0 commit comments

Comments
 (0)