1struct MyEntryViewBuilder: ChatFeedViewBuilder {
2
3 var renderMode: RenderModeClosure? {
4 return { model in
5 guard let entryModel = model as? ConversationEntryModel else { return .existing }
6 switch entryModel.entry.type {
7 case .participantChanged:
8 if let changed = entryModel.entry.payload as? ParticipantChanged {
9 if changed.operations.first?.type == .add { return .existing }
10 else { return .none }
11 } else {
12 return .existing
13 }
14
15 default: return .replace
16 }
17 }
18 }
19
20 var completeView: CompleteViewClosure? {
21 return { model, client in
22 guard let entryModel = model as? ConversationEntryModel else { return Color.red }
23 switch entryModel.entry.format {
24 case .textMessage: return Color.green
25 case .listPicker: return Color.yellow
26 default: return Color.blue
27 }
28 }
29 }
30}