Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. struct TokenButtonLabel: View {
  2. /// Global properties
  3. private let labelType: LabelTypes
  4. private var iconName: String?
  5.  
  6. // Icon Type
  7. private var iconSize: TokenButton.IconSize?
  8. init(name: String, iconSize: TokenButton.IconSize) {
  9. self.labelType = .icon
  10. self.iconName = name
  11. self.iconSize = iconSize
  12. }
  13.  
  14. // Text Type
  15. private var btnText: String?
  16. init(text: String) {
  17. self.labelType = .text
  18. self.btnText = text
  19. }
  20.  
  21. /// Helper function
  22. func getView() -> some View {
  23. var renderView: AnyView!
  24. let highlightSuffix = isHighlighted ? "-highlight" : ""
  25.  
  26. switch labelType {
  27. case .icon:
  28. let iconString = "\(iconName!)\(highlightSuffix)"
  29.  
  30. renderView = AnyView(
  31. Image("\(iconString)")
  32. .resizable()
  33. .aspectRatio(contentMode: .fill)
  34. .frame(width: iconSize!.rawValue, height: iconSize!.rawValue, alignment: .center)
  35. )
  36. case .text:
  37. renderView = AnyView(
  38. Text("\(btnText!)")
  39. .font(Font.Typography.sizingFont(font: .main, size: .body))
  40. )
  41. }
  42.  
  43. return renderView
  44. }
  45.  
  46. // Rendering View
  47. var body: some View {
  48. getView()
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement