Add button for sending toml

This commit is contained in:
Jett Chen 2024-05-19 00:23:34 +08:00
parent c8a21c73a8
commit 3ba0004370
8 changed files with 74 additions and 11 deletions

View file

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:burrow.rs?mode=developer</string>

View file

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:burrow.rs?mode=developer</string>

View file

@ -6,7 +6,7 @@ import BurrowShared
struct BurrowView: View {
@Environment(\.webAuthenticationSession)
private var webAuthenticationSession
@State private var rpcClient: Client? = nil
@State private var rpcClient: Client?
@State private var showAlert = false
var body: some View {

View file

@ -6,30 +6,66 @@
//
import SwiftUI
import BurrowShared
struct MenuItemToggleView: View {
@Environment(\.tunnel)
var tunnel: Tunnel
@State private var showAlert = false
var body: some View {
HStack {
VStack(alignment: .leading) {
Text("Burrow")
.font(.headline)
Text(tunnel.status.description)
.font(.subheadline)
}
Spacer()
Toggle(isOn: tunnel.toggleIsOn) {
}
VStack {
HStack {
VStack(alignment: .leading) {
Text("Burrow")
.font(.headline)
Text(tunnel.status.description)
.font(.subheadline)
}
Spacer()
Toggle(isOn: tunnel.toggleIsOn) {
}
.disabled(tunnel.toggleDisabled)
.toggleStyle(.switch)
}
Button("Add Custom WG Config", action: sncAddCustomnetwork)
}
.accessibilityElement(children: .combine)
.padding(.horizontal, 4)
.padding(10)
.frame(minWidth: 300, minHeight: 32, maxHeight: 32)
}
func sncAddCustomnetwork(){
Task {
try await addCustomnetwork()
}
}
func addCustomnetwork() async {
do{
let networkToml = """
[[peers]]
public_key = "8GaFjVO6c4luCHG4ONO+1bFG8tO+Zz5/Gy+Geht1USM="
preshared_key = "ha7j4BjD49sIzyF9SNlbueK0AMHghlj6+u0G3bzC698="
allowed_ips = ["8.8.8.8/32", "0.0.0.0/0"]
endpoint = "wg.burrow.rs:51820"
[interface]
private_key = "OEPVdomeLTxTIBvv3TYsJRge0Hp9NMiY0sIrhT8OWG8="
address = ["10.13.13.2/24"]
listen_port = 51820
dns = []
"""
let client = try Client()
try await client.single_request("AddConfigToml", params: networkToml, type: BurrowResult<AnyResponseData>.self)
alert("Successs!", isPresented: $showAlert){
Button("OK", role: .cancel) {}
}
} catch {
}
}
}
extension Tunnel {

View file

@ -0,0 +1,14 @@
//
// RpcOperations.swift
// App
//
// Created by Jett Chen on 2024/5/18.
//
import Foundation
class RpcOperations{
func uploadConfig(){
}
}