mirror of
https://github.com/StikDebug/StikDebug.git
synced 2026-10-15 20:10:30 +00:00
* Change default UPLOAD_IPA value to 'false' * Part 1 of the great debloat * Remove Mini Tools, adopt native alerts in StikJITApp, and update HomeView UI * Refactor views to use native SwiftUI alerts instead of CustomErrorView * Update ProfileView to use minimal List UI style with native alerts * Fix up homeview * Squash: Redesign HomeView, remove Feature Flags, enable all tabs, refactor alerts, and updates - Redesign HomeView to a simpler style with 'Enable JIT' action. - Remove 'Help & Info' and 'Quick Launch' from Home. - Fix DDI false positive by starting heartbeat on HomeView appear. - Restore robust DDI checks and update app name to 'StikDebug'. - Remove FeatureFlags and Beta tags; enable 'profiles', 'processes', 'location' tabs by default. - Remove 'Devices' tab; add 'Target Device IP' field in Settings. - Hardcode 'Settings' tab to 4th position. - Refactor 'SettingsView' tab customization to be reorder-only. - Remove 'Appearance' theme section from Settings. - Refactor custom error cards to use native SwiftUI/UIKit alerts across the app (HomeView, ConsoleLogsView, ProfileView, etc). - Restore JS callback support and script execution logic in HomeView. - Add necessary Color extensions. - Update project version to 3.0.0. * Clean up: Remove In-App Purchases, update checker, and unused IPA installer code * delete more bloat * fix build issue * Remove widget to save on App IDs * Attempt heartbeat restart when Enable JIT button is pressed * Get rid of PIP * Update Tab Naming * remove more bloat * final changes for today * Remove unused packages * UX Improvements * revert bundle id * Update README.md * remove old idevice * add updated idevice * Fix ddi false positive errors and add templates for GitHub stuff * Remove more unused stuff. * Fix links and update README content * Update compatibility table in README.md * Improve performance of console logs * Remove old code * Change default UPLOAD_IPA value to 'true' * remove the welcome sheet * import support for .mobiledevicepair * Add back LC JIT stuff * Fix heartbeat issues with LC JIT * update the build yml for nightly stuff * Update README.md * Update README.md * Update GitHub Actions workflow for IPA build * Update GitHub Actions workflow for nightly builds * Add URL scheme to kill tasks stikjit://kill-process?pid=1234 * fix build issues * Added App Intents * Unify the error handling style across the app
66 lines
1.9 KiB
Swift
66 lines
1.9 KiB
Swift
//
|
|
// ScriptEditorView.swift
|
|
// StikDebug
|
|
//
|
|
// Created by s s on 2025/7/4.
|
|
//
|
|
|
|
import SwiftUI
|
|
import CodeEditorView
|
|
import LanguageSupport
|
|
|
|
struct ScriptEditorView: View {
|
|
let scriptURL: URL
|
|
|
|
@State private var scriptContent: String = ""
|
|
@State private var position: CodeEditor.Position = .init()
|
|
@State private var messages: Set<TextLocated<Message>> = []
|
|
|
|
@Environment(\.colorScheme) private var colorScheme
|
|
@Environment(\.dismiss) private var dismiss
|
|
private var editorTheme: Theme {
|
|
colorScheme == .dark ? Theme.defaultDark : Theme.defaultLight
|
|
}
|
|
|
|
var body: some View {
|
|
ZStack {
|
|
Color(UIColor.systemBackground)
|
|
.ignoresSafeArea()
|
|
|
|
VStack(spacing: 0) {
|
|
CodeEditor(
|
|
text: $scriptContent,
|
|
position: $position,
|
|
messages: $messages,
|
|
language: .none
|
|
)
|
|
.font(.system(.footnote, design: .monospaced))
|
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
.environment(\.codeEditorTheme, editorTheme)
|
|
}
|
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|
.ignoresSafeArea(edges: .bottom)
|
|
}
|
|
.navigationTitle(scriptURL.lastPathComponent)
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
.onAppear(perform: loadScript)
|
|
.toolbar {
|
|
ToolbarItem(placement: .confirmationAction) {
|
|
Button("Save") {
|
|
saveScript()
|
|
dismiss()
|
|
}
|
|
}
|
|
}
|
|
.tint(colorScheme == .dark ? .white : .black)
|
|
.toolbar(.hidden, for: .tabBar)
|
|
}
|
|
|
|
private func loadScript() {
|
|
scriptContent = (try? String(contentsOf: scriptURL)) ?? ""
|
|
}
|
|
|
|
private func saveScript() {
|
|
try? scriptContent.write(to: scriptURL, atomically: true, encoding: .utf8)
|
|
}
|
|
}
|