1
Runt
2025-06-27 bf9e4680eb466bcb7c9cb1bef567252bb1f2bb7d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//
//  Untitled.swift
//  LiveProject
//
//  Created by 倪路朋 on 6/25/25.
//
 
 
import SwiftUI
 
struct MButton: View {
    
    var valid :ValidState = .VALID;
    
    var icon : (any View)? = nil;
    
    var text : String? = nil;
    
    var onClick : () -> Void = {
        
    }
    
    var body: some View {
        Button(action: {
            if(valid == .INVALID){
                return
            }
            onClick();
        }) {
            
            ZStack() {// iOS
                HStack() {// iOS
                    if let iconView = icon {
                        AnyView(iconView)
                    }
                    if let str = text {
                        Text(str)
                            .font(Font.system(size: 16))
                            .foregroundColor(Color.init("ColorWhite"))
                            .frame(width: .infinity, height: 40)
                    }
                }.frame(minWidth: 40, maxHeight: 40).padding(EdgeInsets(top: 0, leading: 15, bottom: 0, trailing: 15))
            }.frame(maxHeight: 40).background(
                RoundedRectangle(cornerRadius: 20, style: .continuous)
                    .fill(Color.init(valid == .INVALID ?"ColorGray":"ColorText"))
            )
            
        }.buttonStyle( TextBtnStyle())
    }
}
 
struct MButton_Previews: PreviewProvider {
    static var previews: some View {
        MButton(icon: IconPortrait())
    }
}