Update compound and remove all of the temporary icons (#2419)

* Update compound and fix breaking changes.

* Replace a lot of temporary icon assets with Compound versions.

* Replace temporary composer icon assets with Compound versions.

* Remove old icon asset from EI.

* Use Compound icons where possible for hero images.

* Snapshots
This commit is contained in:
Doug
2024-02-05 16:03:13 +00:00
committed by GitHub
parent 0bd52f10d6
commit e80612b968
216 changed files with 306 additions and 1342 deletions
@@ -14,6 +14,7 @@
// limitations under the License.
//
import Compound
import SwiftUI
enum PollViewAction {
@@ -43,11 +44,9 @@ struct PollView: View {
private var questionView: some View {
HStack(alignment: .top, spacing: 12) {
let asset = poll.hasEnded ? Asset.Images.pollsEnd : Asset.Images.polls
Image(asset.name)
.resizable()
.scaledFrame(size: 22)
CompoundIcon(poll.hasEnded ? \.pollsEnd : \.polls,
size: .custom(22),
relativeTo: .compound.bodyLGSemibold)
.accessibilityHidden(true)
Text(poll.question)
@@ -46,7 +46,7 @@ struct TimelineReplyView: View {
ReplyView(sender: sender,
plainBody: content.body,
formattedBody: nil,
icon: .init(kind: .iconAsset(Asset.Images.document), cornerRadii: iconCornerRadii))
icon: .init(kind: .icon(\.document), cornerRadii: iconCornerRadii))
case .image(let content):
ReplyView(sender: sender,
plainBody: content.body,
@@ -69,18 +69,18 @@ struct TimelineReplyView: View {
ReplyView(sender: sender,
plainBody: L10n.commonVoiceMessage,
formattedBody: nil,
icon: .init(kind: .icon(\.micOnOutline), cornerRadii: iconCornerRadii))
icon: .init(kind: .icon(\.micOn), cornerRadii: iconCornerRadii))
case .location:
ReplyView(sender: sender,
plainBody: L10n.commonSharedLocation,
formattedBody: nil,
icon: .init(kind: .iconAsset(Asset.Images.addLocation), cornerRadii: iconCornerRadii))
icon: .init(kind: .icon(\.locationPin), cornerRadii: iconCornerRadii))
}
case .poll(let question):
ReplyView(sender: sender,
plainBody: question,
formattedBody: nil,
icon: .init(kind: .iconAsset(Asset.Images.polls), cornerRadii: iconCornerRadii))
icon: .init(kind: .icon(\.polls), cornerRadii: iconCornerRadii))
}
default:
LoadingReplyView()
@@ -21,7 +21,7 @@ struct SwipeToReplyView: View {
let timelineItem: RoomTimelineItemProtocol
var body: some View {
CompoundIcon(asset: Asset.Images.reply)
CompoundIcon(\.reply)
.foregroundColor(.compound.iconPrimary)
.accessibilityHidden(true)
}
@@ -28,7 +28,7 @@ struct TimelineDeliveryStatusView: View {
private var icon: CompoundIcon {
switch deliveryStatus {
case .sending:
return CompoundIcon(asset: Asset.Images.circle, size: .xSmall, relativeTo: .compound.bodyMD)
return CompoundIcon(\.circle, size: .xSmall, relativeTo: .compound.bodyMD)
case .sent:
return CompoundIcon(\.checkCircle, size: .xSmall, relativeTo: .compound.bodyMD)
}
@@ -14,6 +14,7 @@
// limitations under the License.
//
import Compound
import SwiftUI
@MainActor
@@ -191,9 +192,7 @@ struct TimelineReactionButton: View {
struct TimelineReactionAddMoreButtonLabel: View {
var body: some View {
TimelineReactionButtonLabel {
Image(asset: Asset.Images.addReaction)
.resizable()
.scaledFrame(size: 16)
CompoundIcon(\.reactionAdd, size: .xSmall, relativeTo: .compound.bodySM)
.padding(.vertical, 8)
.padding(.horizontal, 12)
.foregroundColor(.compound.iconSecondary)
@@ -21,7 +21,7 @@ struct EncryptedRoomTimelineView: View {
var body: some View {
TimelineStyler(timelineItem: timelineItem) {
Label(timelineItem.body, iconAsset: Asset.Images.decryptionError, iconSize: .small, relativeTo: .compound.bodyLG)
Label(timelineItem.body, icon: \.time, iconSize: .small, relativeTo: .compound.bodyLG)
.labelStyle(RoomTimelineViewLabelStyle())
.font(.compound.bodyLG)
}
@@ -101,27 +101,27 @@ enum TimelineItemMenuAction: Identifiable, Hashable {
var label: some View {
switch self {
case .copy:
Label(L10n.actionCopy, iconAsset: Asset.Images.copy)
Label(L10n.actionCopy, icon: \.copy)
case .edit:
Label(L10n.actionEdit, iconAsset: Asset.Images.editOutline)
Label(L10n.actionEdit, icon: \.edit)
case .copyPermalink:
Label(L10n.actionCopyLinkToMessage, icon: \.link)
case .reply(let isThread):
Label(isThread ? L10n.actionReplyInThread : L10n.actionReply, iconAsset: Asset.Images.reply)
Label(isThread ? L10n.actionReplyInThread : L10n.actionReply, icon: \.reply)
case .forward:
Label(L10n.actionForward, iconAsset: Asset.Images.forward)
Label(L10n.actionForward, icon: \.forward)
case .redact:
Label(L10n.actionRemove, icon: \.delete)
case .viewSource:
Label(L10n.actionViewSource, iconAsset: Asset.Images.viewSource)
Label(L10n.actionViewSource, icon: \.code)
case .retryDecryption:
Label(L10n.actionRetryDecryption, systemImage: "arrow.down.message")
case .report:
Label(L10n.actionReportContent, icon: \.chatProblem)
case .react:
Label(L10n.actionReact, iconAsset: Asset.Images.addReaction)
Label(L10n.actionReact, icon: \.reactionAdd)
case .endPoll:
Label(L10n.actionEndPoll, iconAsset: Asset.Images.pollsEnd)
Label(L10n.actionEndPoll, icon: \.pollsEnd)
}
}
}
@@ -225,10 +225,7 @@ struct TimelineItemMenu: View {
context.send(viewAction: .displayEmojiPicker(itemID: item.id))
}
} label: {
Image(asset: Asset.Images.addReaction)
.resizable()
.scaledFrame(size: 24)
.frame(maxHeight: .infinity, alignment: .center)
CompoundIcon(\.reactionAdd, size: .medium, relativeTo: .compound.headingLG)
.foregroundColor(.compound.iconSecondary)
.padding(10)
}