39 lines
890 B
Swift
39 lines
890 B
Swift
//
|
|
// AddMediaBarView.swift
|
|
// QueueCube
|
|
//
|
|
// Created by James Magahern on 3/3/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
@Observable
|
|
class AddMediaBarViewModel
|
|
{
|
|
var fieldContents: String = ""
|
|
|
|
var onAdd: (String) -> Void = { _ in }
|
|
var onSearch: () -> Void = {}
|
|
}
|
|
|
|
struct AddMediaBarView: View
|
|
{
|
|
@State var model: AddMediaBarViewModel
|
|
|
|
var body: some View {
|
|
VStack {
|
|
HStack {
|
|
Button(action: model.onSearch) { Image(systemName: "magnifyingglass") }
|
|
|
|
TextField(.addAnyURL, text: $model.fieldContents)
|
|
.textFieldStyle(.roundedBorder)
|
|
|
|
Button(action: { model.onAdd(model.fieldContents) }) { Text(.add) }
|
|
.keyboardShortcut(.defaultAction)
|
|
}
|
|
.padding()
|
|
}
|
|
.background(Color.black.opacity(0.4))
|
|
}
|
|
}
|