Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct TokenButtonLabel: View {
- /// Global properties
- private let labelType: LabelTypes
- private var iconName: String?
- // Icon Type
- private var iconSize: TokenButton.IconSize?
- init(name: String, iconSize: TokenButton.IconSize) {
- self.labelType = .icon
- self.iconName = name
- self.iconSize = iconSize
- }
- // Text Type
- private var btnText: String?
- init(text: String) {
- self.labelType = .text
- self.btnText = text
- }
- /// Helper function
- func getView() -> some View {
- var renderView: AnyView!
- let highlightSuffix = isHighlighted ? "-highlight" : ""
- switch labelType {
- case .icon:
- let iconString = "\(iconName!)\(highlightSuffix)"
- renderView = AnyView(
- Image("\(iconString)")
- .resizable()
- .aspectRatio(contentMode: .fill)
- .frame(width: iconSize!.rawValue, height: iconSize!.rawValue, alignment: .center)
- )
- case .text:
- renderView = AnyView(
- Text("\(btnText!)")
- .font(Font.Typography.sizingFont(font: .main, size: .body))
- )
- }
- return renderView
- }
- // Rendering View
- var body: some View {
- getView()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement