ssap_app/node_modules/expo-dev-menu/ios/SwiftUI/DevMenuDeveloperTools.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