Skip to content

Commit f142b97

Browse files
committed
IOS-5549 Make chat object icons circular
1 parent bf354d4 commit f142b97

File tree

5 files changed

+29
-17
lines changed

5 files changed

+29
-17
lines changed

Anytype/Sources/PresentationLayer/Common/SwiftUI/IconView/Specific/Object/BasicIconView.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,16 @@ import Foundation
22
import SwiftUI
33

44
struct BasicIconView: View {
5-
5+
66
let imageId: String
7-
7+
let circular: Bool
8+
89
var body: some View {
910
ImageIdIconView(imageId: imageId)
10-
.objectIconCornerRadius()
11+
.if(circular, if: {
12+
$0.circleOverCornerRadius()
13+
}, else: {
14+
$0.objectIconCornerRadius()
15+
})
1116
}
1217
}

Anytype/Sources/PresentationLayer/Common/SwiftUI/IconView/Specific/Object/EmojiIconView.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@ import SwiftUI
33
import AnytypeCore
44

55
struct EmojiIconView: View {
6-
6+
77
let emoji: Emoji
8-
8+
let circular: Bool
9+
910
var body: some View {
1011
ImageCharIconView(text: emoji.value)
1112
.objectIconBackgroundColorModifier()
12-
.objectIconCornerRadius()
13+
.if(circular, if: {
14+
$0.circleOverCornerRadius()
15+
}, else: {
16+
$0.objectIconCornerRadius()
17+
})
1318
}
1419
}

Anytype/Sources/PresentationLayer/Common/SwiftUI/IconView/Specific/ObjectIconView.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ struct ObjectIconView: View {
88

99
var body: some View {
1010
switch icon {
11-
case .basic(let imageId):
12-
BasicIconView(imageId: imageId)
11+
case .basic(let imageId, let circular):
12+
BasicIconView(imageId: imageId, circular: circular)
1313
case .profile(let profile):
1414
ProfileIconView(icon: profile)
15-
case .emoji(let emoji):
16-
EmojiIconView(emoji: emoji)
15+
case .emoji(let emoji, let circular):
16+
EmojiIconView(emoji: emoji, circular: circular)
1717
case let .customIcon(data):
1818
CustomIconView(icon: data.icon, iconColor: data.color)
1919
case .bookmark(let imageId):

Modules/Services/Sources/Models/Details/ObjectIcon.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import AnytypeCore
22

33
public enum ObjectIcon: Hashable, Sendable, Equatable, Codable {
4-
case basic(_ imageId: String)
4+
case basic(_ imageId: String, circular: Bool = false)
55
case profile(Profile)
6-
case emoji(Emoji)
6+
case emoji(Emoji, circular: Bool = false)
77
case customIcon(CustomIconData)
88
case bookmark(_ imageId: String)
99
case space(Space)
@@ -16,7 +16,7 @@ public enum ObjectIcon: Hashable, Sendable, Equatable, Codable {
1616
public extension ObjectIcon {
1717
var imageId: String? {
1818
switch self {
19-
case .basic(let imageId):
19+
case .basic(let imageId, _):
2020
return imageId
2121
case .profile(let data):
2222
return data.imageId

Modules/Services/Sources/Models/Details/ObjectIconBuilder.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ public final class ObjectIconBuilder: ObjectIconBuilderProtocol {
4343

4444
private func icon(relations: BundledPropertiesValueProvider) -> ObjectIcon? {
4545
switch relations.resolvedLayoutValue {
46-
case .basic, .set, .collection, .image, .chatDerived:
46+
case .basic, .set, .collection, .image:
4747
return basicIcon(iconImage: relations.iconImage, iconEmoji: relations.iconEmoji)
48+
case .chatDerived:
49+
return basicIcon(iconImage: relations.iconImage, iconEmoji: relations.iconEmoji, circular: true)
4850
case .profile, .participant:
4951
return profileIcon(iconImage: relations.iconImage, objectName: relations.objectName)
5052
case .bookmark:
@@ -59,13 +61,13 @@ public final class ObjectIconBuilder: ObjectIconBuilderProtocol {
5961
}
6062
}
6163

62-
private func basicIcon(iconImage: String, iconEmoji: Emoji?) -> ObjectIcon? {
64+
private func basicIcon(iconImage: String, iconEmoji: Emoji?, circular: Bool = false) -> ObjectIcon? {
6365
if iconImage.isNotEmpty {
64-
return .basic(iconImage)
66+
return .basic(iconImage, circular: circular)
6567
}
6668

6769
if let iconEmoji = iconEmoji {
68-
return .emoji(iconEmoji)
70+
return .emoji(iconEmoji, circular: circular)
6971
}
7072

7173
return nil

0 commit comments

Comments
 (0)