| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- //
- // CardStack.swift
- // LoopKitUI
- //
- // Created by Michael Pangburn on 4/16/20.
- // Copyright © 2020 LoopKit Authors. All rights reserved.
- //
- import SwiftUI
- public struct CardStack: View {
- var cards: [Card?]
- var spacing: CGFloat?
-
- public init(cards: [Card?], spacing: CGFloat? = nil) {
- self.cards = cards
- self.spacing = spacing
- }
- public var body: some View {
- VStack(spacing: spacing) {
- ForEach(self.cards.indices, id: \.self) { index in
- self.cards[index]
- }
- }
- .padding(.bottom)
- }
- }
- extension CardStack {
- init(reducing stacks: [CardStack]) {
- self.cards = stacks.flatMap { $0.cards }
- self.spacing = nil
- }
- }
- extension CardStack {
- private init(_ other: Self, spacing: CGFloat? = nil) {
- self.cards = other.cards
- self.spacing = spacing ?? other.spacing
- }
- func spacing(_ spacing: CGFloat?) -> Self { Self(self, spacing: spacing) }
- }
|