* ios: block members (WIP) * CIBlocked, blocking api * show item as blocked * show blocked and merge multiple deleted items * update block icons * split sent and received deleted to two categories * merge chat feature items, refactor CIMergedRange * merge feature items, two profile images and names on merged items * ensure range is withing chat items range * merge group events * fix/refactor * make group member changes observable * exclude some group events from merging * fix states not updating and other fixes * load list of members when tapping profile * refactor * fix incorrect merging of sent/received marked deleted * fix incorrect expand/hide on single moderated items without content * load members list when opening member via item * comments * fix member counting in case of name collision
42 lines
1.2 KiB
Swift
42 lines
1.2 KiB
Swift
//
|
|
// EmojiItemView.swift
|
|
// SimpleX
|
|
//
|
|
// Created by Evgeny Poberezkin on 04/02/2022.
|
|
// Copyright © 2022 SimpleX Chat. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import SimpleXChat
|
|
|
|
struct EmojiItemView: View {
|
|
@ObservedObject var chat: Chat
|
|
var chatItem: ChatItem
|
|
|
|
var body: some View {
|
|
VStack(spacing: 1) {
|
|
emojiText(chatItem.content.text)
|
|
.padding(.top, 8)
|
|
.padding(.horizontal, 6)
|
|
CIMetaView(chat: chat, chatItem: chatItem)
|
|
.padding(.bottom, 8)
|
|
.padding(.horizontal, 12)
|
|
}
|
|
}
|
|
}
|
|
|
|
func emojiText(_ text: String) -> Text {
|
|
let s = text.trimmingCharacters(in: .whitespaces)
|
|
return Text(s).font(s.count < 4 ? largeEmojiFont : mediumEmojiFont)
|
|
}
|
|
|
|
struct EmojiItemView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
Group{
|
|
EmojiItemView(chat: Chat.sampleData, chatItem: ChatItem.getSample(1, .directSnd, .now, "🙂", .sndSent(sndProgress: .complete)))
|
|
EmojiItemView(chat: Chat.sampleData, chatItem: ChatItem.getSample(2, .directRcv, .now, "👍"))
|
|
}
|
|
.previewLayout(.fixed(width: 360, height: 70))
|
|
}
|
|
}
|