import SwiftUI import LumaCore struct CodeShareUI: InstrumentUI { func makeConfigEditor( configJSON: Binding, engine: Engine, selection: Binding ) -> AnyView { let cfgBinding = Binding( get: { (try? JSONDecoder().decode(CodeShareConfig.self, from: configJSON.wrappedValue)) ?? CodeShareConfig( name: "", description: "", source: "", exports: [], project: nil, lastSyncedHash: nil, lastReviewedHash: nil, fridaVersion: "", allowRemoteUpdates: false ) }, set: { newValue in if let data = try? JSONEncoder().encode(newValue) { configJSON.wrappedValue = data } } ) return AnyView( CodeShareConfigView( config: cfgBinding, engine: engine ) ) } func renderEvent( _ event: RuntimeEvent, engine: Engine, selection: Binding ) -> AnyView { if case .jsValue(let v) = event.payload { return AnyView( JSInspectValueView( value: v, sessionID: event.sessionID ?? UUID(), engine: engine, selection: selection ) .font(.system(.footnote, design: .monospaced)) ) } return AnyView(Text(String(describing: event.payload))) } }