minor refactor

pull/874/head
Ryan Zhao 2 years ago
parent ae2a17a527
commit cd0e699bde

@ -7,6 +7,9 @@ import SessionSnodeKit
struct MessageInfoView: View {
var actions: [ContextMenuVC.Action]
var messageViewModel: MessageViewModel
var isMessageFailed: Bool {
return [.failed, .failedToSync].contains(messageViewModel.state)
}
var body: some View {
ZStack (alignment: .topLeading) {
@ -53,7 +56,7 @@ struct MessageInfoView: View {
)
}
if [.failed, .failedToSync].contains(messageViewModel.state) {
if isMessageFailed {
let (image, statusText, tintColor) = messageViewModel.state.statusIconInfo(
variant: messageViewModel.variant,
hasAtLeastOneReadReceipt: messageViewModel.hasAtLeastOneReadReceipt
@ -110,14 +113,7 @@ struct MessageInfoView: View {
alignment: .leading,
spacing: 16
) {
VStack(
alignment: .leading,
spacing: 4
) {
Text("ATTACHMENT_INFO_FILE_ID".localized() + ":")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
InfoBlock(title: "ATTACHMENT_INFO_FILE_ID".localized() + ":") {
Text("12378965485235985214")
.font(.system(size: 16))
.foregroundColor(.white)
@ -127,14 +123,7 @@ struct MessageInfoView: View {
alignment: .center,
spacing: 48
) {
VStack(
alignment: .leading,
spacing: 4
) {
Text("ATTACHMENT_INFO_FILE_TYPE".localized() + ":")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
InfoBlock(title: "ATTACHMENT_INFO_FILE_TYPE".localized() + ":") {
Text(".PNG")
.font(.system(size: 16))
.foregroundColor(.white)
@ -142,14 +131,7 @@ struct MessageInfoView: View {
Spacer()
VStack(
alignment: .leading,
spacing: 4
) {
Text("ATTACHMENT_INFO_FILE_SIZE".localized() + ":")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
InfoBlock(title: "ATTACHMENT_INFO_FILE_SIZE".localized() + ":") {
Text("6mb")
.font(.system(size: 16))
.foregroundColor(.white)
@ -162,14 +144,7 @@ struct MessageInfoView: View {
alignment: .center,
spacing: 48
) {
VStack(
alignment: .leading,
spacing: 4
) {
Text("ATTACHMENT_INFO_RESOLUTION".localized() + ":")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
InfoBlock(title: "ATTACHMENT_INFO_RESOLUTION".localized() + ":") {
Text("550×550")
.font(.system(size: 16))
.foregroundColor(.white)
@ -177,14 +152,7 @@ struct MessageInfoView: View {
Spacer()
VStack(
alignment: .leading,
spacing: 4
) {
Text("ATTACHMENT_INFO_DURATION".localized() + ":")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
InfoBlock(title: "ATTACHMENT_INFO_DURATION".localized() + ":") {
Text("N/A")
.font(.system(size: 16))
.foregroundColor(.white)
@ -228,40 +196,23 @@ struct MessageInfoView: View {
alignment: .leading,
spacing: 16
) {
VStack(
alignment: .leading,
spacing: 4
) {
Text("Sent:")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
InfoBlock(title: "Sent:") {
Text(messageViewModel.dateForUI.fromattedForMessageInfo)
.font(.system(size: 16))
.foregroundColor(.white)
}
VStack(
alignment: .leading,
spacing: 4
) {
Text("Received:")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
InfoBlock(title: "Received:") {
Text(messageViewModel.receivedDateForUI.fromattedForMessageInfo)
.font(.system(size: 16))
.foregroundColor(.white)
}
VStack(
alignment: .leading,
spacing: 4
) {
Text("From:")
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
if isMessageFailed {
}
InfoBlock(title: "From:") {
HStack(
spacing: 10
) {
@ -336,6 +287,24 @@ struct MessageInfoView: View {
}
}
struct InfoBlock<Content>: View where Content: View {
let title: String
let content: () -> Content
var body: some View {
VStack(
alignment: .leading,
spacing: 4
) {
Text(self.title)
.bold()
.font(.system(size: 18))
.foregroundColor(.white)
self.content()
}
}
}
struct MessageInfoView_Previews: PreviewProvider {
static var messageViewModel: MessageViewModel {
let result = MessageViewModel(

Loading…
Cancel
Save