diff --git a/PlaybookShowcase/PlaybookShowcase/Components/Avatar/AvatarCatalog.swift b/PlaybookShowcase/PlaybookShowcase/Components/Avatar/AvatarCatalog.swift index 2405f6b9..b85f73e0 100644 --- a/PlaybookShowcase/PlaybookShowcase/Components/Avatar/AvatarCatalog.swift +++ b/PlaybookShowcase/PlaybookShowcase/Components/Avatar/AvatarCatalog.swift @@ -58,15 +58,15 @@ extension AvatarCatalog { var statusSize: some View { VStack(alignment: .leading, spacing: Spacing.small) { VStack(spacing: Spacing.xxSmall) { - PBAvatar(image: Image("andrew"), size: .small, status: .online, statusSize: .medium) + PBAvatar(image: Image("andrew"), size: .small, status: .online) Text("Small").pbFont(.caption) } VStack(spacing: Spacing.xxSmall) { - PBAvatar(image: Image("andrew"), size: .medium, status: .away, statusSize: .medium) + PBAvatar(image: Image("andrew"), size: .medium, status: .away) Text("Medium").pbFont(.caption) } VStack(spacing: Spacing.xxSmall) { - PBAvatar(image: Image("andrew"), size: .large, status: .offline, statusSize: .medium) + PBAvatar(image: Image("andrew"), size: .large, status: .offline) Text("Large").pbFont(.caption) } } @@ -75,15 +75,15 @@ extension AvatarCatalog { var statusColor: some View { VStack(alignment: .leading, spacing: Spacing.small) { VStack(spacing: Spacing.xxSmall) { - PBAvatar(image: Image("andrew"), size: .medium, status: .online, statusSize: .medium) + PBAvatar(image: Image("andrew"), size: .medium, status: .online) Text("Online").pbFont(.caption) } VStack(spacing: Spacing.xxSmall) { - PBAvatar(image: Image("andrew"), size: .medium, status: .away, statusSize: .medium) + PBAvatar(image: Image("andrew"), size: .medium, status: .away) Text("Away").pbFont(.caption) } VStack(spacing: Spacing.xxSmall) { - PBAvatar(image: Image("andrew"), size: .medium, status: .offline, statusSize: .medium) + PBAvatar(image: Image("andrew"), size: .medium, status: .offline) Text("Offline").pbFont(.caption) } } @@ -91,11 +91,11 @@ extension AvatarCatalog { var greyScale: some View { VStack(alignment: .leading, spacing: Spacing.small) { - PBAvatar(image: Image("andrew"), size: .xxSmall, status: .online, isActive: false) - PBAvatar(image: Image("andrew"), size: .xSmall, status: .away, isActive: false) - PBAvatar(image: Image("andrew"), size: .small, status: .online, isActive: false) - PBAvatar(image: Image("andrew"), size: .medium, status: .away, isActive: false) - PBAvatar(image: Image("andrew"), size: .large, status: .online, isActive: false) + PBAvatar(image: Image("andrew"), size: .xxSmall, status: .offline, isActive: false) + PBAvatar(image: Image("andrew"), size: .xSmall, status: .offline, isActive: false) + PBAvatar(image: Image("andrew"), size: .small, status: .offline, isActive: false) + PBAvatar(image: Image("andrew"), size: .medium, status: .offline, isActive: false) + PBAvatar(image: Image("andrew"), size: .large, status: .offline, isActive: false) PBAvatar(image: Image("andrew"), size: .xLarge, status: .offline, isActive: false) } } diff --git a/Sources/Playbook/Components/Avatar/PBAvatar.swift b/Sources/Playbook/Components/Avatar/PBAvatar.swift index fe6f5a28..8d4d9938 100644 --- a/Sources/Playbook/Components/Avatar/PBAvatar.swift +++ b/Sources/Playbook/Components/Avatar/PBAvatar.swift @@ -14,7 +14,6 @@ public struct PBAvatar: View { var name: String? var size: Size var status: PBOnlineStatus.Status? - var statusSize: PBOnlineStatus.Size var wrapped: Bool var isActive: Bool @Environment(\.colorScheme) var colorScheme @@ -24,7 +23,6 @@ public struct PBAvatar: View { name: String? = nil, size: Size = .medium, status: PBOnlineStatus.Status? = nil, - statusSize: PBOnlineStatus.Size = .small, wrapped: Bool = false, isActive: Bool = true ) { @@ -32,7 +30,6 @@ public struct PBAvatar: View { self.name = name self.size = size self.status = status - self.statusSize = statusSize self.wrapped = wrapped self.isActive = isActive } @@ -63,7 +60,7 @@ public struct PBAvatar: View { if let status = self.status { - PBOnlineStatus(status: status, size: statusSize, variant: .border) + PBOnlineStatus(status: status, size: avatarStatusSize, variant: .border) .grayscale(isActive ? 0 : 1) .offset( x: (size.diameter/2 - size.diameter/9) * size.statusXModifier, @@ -151,7 +148,16 @@ public extension PBAvatar { [.xLarge, .large, .medium, .small, .xSmall, .xxSmall] } } - + + var avatarStatusSize: PBOnlineStatus.Size { + switch size { + case .xxSmall, .xSmall, .smallStacked, .smallStackedIndicator, .defaultStacked, .defaultStackedIndicator: return .small + case .small, .medium: return .medium + case .large, .xLarge: return .large + case .custom: return .medium + } + } + var avatarBorderColor: Color { switch colorScheme { case .light: return Color.BorderColor.borderColor(.light)