62 lines
1.6 KiB
Swift
62 lines
1.6 KiB
Swift
import SwiftUI
|
|
|
|
// swiftlint:disable closure_body_length
|
|
|
|
struct DevMenuDeveloperTools: View {
|
|
@EnvironmentObject var viewModel: DevMenuViewModel
|
|
|
|
var body: some View {
|
|
VStack(alignment: .leading, spacing: 8) {
|
|
Text("TOOLS")
|
|
.font(.caption)
|
|
.foregroundColor(.primary.opacity(0.6))
|
|
|
|
VStack(spacing: 0) {
|
|
DevMenuActionButton(
|
|
title: "Toggle performance monitor",
|
|
icon: "speedometer",
|
|
action: viewModel.togglePerformanceMonitor,
|
|
disabled: !(viewModel.devSettings?.isPerfMonitorAvailable ?? true)
|
|
)
|
|
|
|
Divider()
|
|
|
|
DevMenuActionButton(
|
|
title: "Toggle element inspector",
|
|
icon: "viewfinder",
|
|
action: viewModel.toggleElementInspector,
|
|
disabled: !(viewModel.devSettings?.isElementInspectorAvailable ?? true)
|
|
)
|
|
|
|
if viewModel.devSettings?.isJSInspectorAvailable == true {
|
|
Divider()
|
|
|
|
DevMenuActionButton(
|
|
title: "Open JS debugger",
|
|
icon: "ladybug",
|
|
action: viewModel.openJSInspector
|
|
)
|
|
}
|
|
|
|
Divider()
|
|
|
|
DevMenuToggleButton(
|
|
title: "Fast refresh",
|
|
icon: "figure.run",
|
|
isEnabled: viewModel.devSettings?.isHotLoadingEnabled ?? false,
|
|
action: viewModel.toggleFastRefresh,
|
|
disabled: !(viewModel.devSettings?.isHotLoadingAvailable ?? true)
|
|
)
|
|
}
|
|
.background(Color.expoSystemBackground)
|
|
.cornerRadius(18)
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
DevMenuDeveloperTools()
|
|
}
|
|
|
|
// swiftlint:enable closure_body_length
|