You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.0 KiB
121 lines
3.0 KiB
//
|
|
// ModuleView.swift
|
|
// CalculMoy
|
|
//
|
|
// Created by etudiant on 12/06/2023.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
|
|
final class Slider: UISlider {
|
|
|
|
override func draw(_ rect: CGRect) {
|
|
super.draw(rect)
|
|
setup()
|
|
}
|
|
|
|
private func setup() {
|
|
clear()
|
|
}
|
|
|
|
private func clear() {
|
|
tintColor = .clear
|
|
maximumTrackTintColor = .clear
|
|
backgroundColor = .clear
|
|
thumbTintColor = .clear
|
|
}
|
|
}
|
|
|
|
|
|
struct ModuleView: View {
|
|
|
|
@ObservedObject var moduleVM:ModuleVM
|
|
@ObservedObject var ueVm: UeVM
|
|
@ObservedObject var managerVm: ManagerVM
|
|
@State private var editable:Bool=false
|
|
|
|
|
|
|
|
|
|
var body: some View {
|
|
|
|
HStack{
|
|
|
|
|
|
|
|
VStack{
|
|
|
|
HStack{
|
|
Text("> " + moduleVM.moduleName)
|
|
Spacer()
|
|
Text(String(moduleVM.coef))
|
|
}
|
|
|
|
HStack{
|
|
|
|
if let note = moduleVM.note{
|
|
|
|
UISliderView(
|
|
value: Binding(
|
|
get: {note}, set: {
|
|
newValue in
|
|
if editable{
|
|
moduleVM.note = newValue
|
|
ueVm.updateModule(modulVM: moduleVM)
|
|
managerVm.updateNoteModule(ueVM: ueVm, moduleVM: moduleVM)
|
|
}
|
|
|
|
} ),
|
|
editable: $editable,
|
|
minValue: 0.0,
|
|
maxValue: 20.00
|
|
|
|
|
|
).disabled(!editable)
|
|
.scaleEffect(x: 1, y: 4, anchor: .center)
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
if let note = moduleVM.note{
|
|
|
|
Text(String(format: "%.2f",note))
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}.padding(10)
|
|
Button{
|
|
//do somthing
|
|
editable = !editable
|
|
}label: {
|
|
Image(systemName: "square.and.pencil")
|
|
}.foregroundColor(
|
|
editable ? .green : .gray
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
struct ModuleView_Previews: PreviewProvider {
|
|
|
|
static var managerData:ManagerVM=ManagerVM(
|
|
manager: Manager(ues: Stub.uesData)
|
|
)
|
|
static var previews: some View {
|
|
ModuleView(
|
|
moduleVM: ModuleVM(module: Stub.uesData[0].modules[0]), ueVm: UeVM(ue: Stub.uesData[0]), managerVm: managerData
|
|
)
|
|
}
|
|
}
|