Update PopupView UI

This commit is contained in:
Benoit Martins 2025-11-20 15:54:22 +01:00
parent 7972fd7c1f
commit 07dbf407b0
21 changed files with 258 additions and 179 deletions

View file

@ -2,7 +2,7 @@
"assistant_sip_account_transport_protocol" = "Transport"; "assistant_sip_account_transport_protocol" = "Transport";
"contact_call_action" = "Volat"; "contact_call_action" = "Volat";
"conversation_action_call" = "Volat"; "conversation_action_call" = "Volat";
"dialog_ok" = "OK"; "dialog_confirm" = "Confirm";
"drawer_menu_manage_account" = "Spravovat profil"; "drawer_menu_manage_account" = "Spravovat profil";
"help_error_checking_version_toast_message" = "Během kontroly aktualizací nastala chyba"; "help_error_checking_version_toast_message" = "Během kontroly aktualizací nastala chyba";
"settings_contacts_carddav_name_title" = "Zobrazené jméno"; "settings_contacts_carddav_name_title" = "Zobrazené jméno";

View file

@ -192,7 +192,7 @@
"dialog_deny" = "Ablehnen"; "dialog_deny" = "Ablehnen";
"dialog_install" = "Installieren"; "dialog_install" = "Installieren";
"dialog_no" = "Nein"; "dialog_no" = "Nein";
"dialog_ok" = "OK"; "dialog_confirm" = "Confirm";
"dialog_yes" = "Ja"; "dialog_yes" = "Ja";
"drawer_menu_account_connection_status_cleared" = "Deaktiviert"; "drawer_menu_account_connection_status_cleared" = "Deaktiviert";
"drawer_menu_account_connection_status_connected" = "Verbunden"; "drawer_menu_account_connection_status_connected" = "Verbunden";

View file

@ -272,7 +272,7 @@
"dialog_deny" = "Deny"; "dialog_deny" = "Deny";
"dialog_install" = "Install"; "dialog_install" = "Install";
"dialog_no" = "No"; "dialog_no" = "No";
"dialog_ok" = "OK"; "dialog_confirm" = "Confirm";
"dialog_yes" = "Yes"; "dialog_yes" = "Yes";
"drawer_menu_account_connection_status_cleared" = "Disabled"; "drawer_menu_account_connection_status_cleared" = "Disabled";
"drawer_menu_account_connection_status_connected" = "Connected"; "drawer_menu_account_connection_status_connected" = "Connected";

View file

@ -272,7 +272,7 @@
"dialog_deny" = "Refuser"; "dialog_deny" = "Refuser";
"dialog_install" = "Installer"; "dialog_install" = "Installer";
"dialog_no" = "Non"; "dialog_no" = "Non";
"dialog_ok" = "OK"; "dialog_confirm" = "Confirmer";
"dialog_yes" = "Oui"; "dialog_yes" = "Oui";
"drawer_menu_account_connection_status_cleared" = "Désactivé"; "drawer_menu_account_connection_status_cleared" = "Désactivé";
"drawer_menu_account_connection_status_connected" = "Connecté"; "drawer_menu_account_connection_status_connected" = "Connecté";

View file

@ -187,7 +187,7 @@
"dialog_deny" = "Отказать"; "dialog_deny" = "Отказать";
"dialog_install" = "Установить"; "dialog_install" = "Установить";
"dialog_no" = "Нет"; "dialog_no" = "Нет";
"dialog_ok" = "ОК"; "dialog_confirm" = "ОК";
"dialog_yes" = "Да"; "dialog_yes" = "Да";
"drawer_menu_account_connection_status_cleared" = "Отключить"; "drawer_menu_account_connection_status_cleared" = "Отключить";
"drawer_menu_account_connection_status_connected" = "Подключен"; "drawer_menu_account_connection_status_connected" = "Подключен";

View file

@ -171,7 +171,7 @@
"dialog_deny" = "Odmietnuť"; "dialog_deny" = "Odmietnuť";
"dialog_install" = "Inštalovať"; "dialog_install" = "Inštalovať";
"dialog_no" = "Nie"; "dialog_no" = "Nie";
"dialog_ok" = "OK"; "dialog_confirm" = "Confirm";
"dialog_yes" = "Áno"; "dialog_yes" = "Áno";
"meeting_waiting_room_cancel" = "Zrušiť"; "meeting_waiting_room_cancel" = "Zrušiť";
"menu_delete_selected_item" = "Vymazať"; "menu_delete_selected_item" = "Vymazať";

View file

@ -377,7 +377,7 @@
"conversation_ephemeral_messages_duration_one_week" = "1 тиждень"; "conversation_ephemeral_messages_duration_one_week" = "1 тиждень";
"conversation_ephemeral_messages_duration_three_days" = "3 доби"; "conversation_ephemeral_messages_duration_three_days" = "3 доби";
"conversation_ephemeral_messages_duration_one_day" = "1 доба"; "conversation_ephemeral_messages_duration_one_day" = "1 доба";
"dialog_ok" = "ОК"; "dialog_confirm" = "ОК";
"welcome_page_title" = "Ласкаво просимо"; "welcome_page_title" = "Ласкаво просимо";
": %@" = ": %@"; ": %@" = ": %@";
"[https://sip.linphone.org](https://sip.linphone.org)" = "[https://sip.linphone.org](https://sip.linphone.org)"; "[https://sip.linphone.org](https://sip.linphone.org)" = "[https://sip.linphone.org](https://sip.linphone.org)";

View file

@ -181,7 +181,7 @@
"dialog_deny" = "拒绝"; "dialog_deny" = "拒绝";
"dialog_install" = "安装"; "dialog_install" = "安装";
"dialog_no" = "否"; "dialog_no" = "否";
"dialog_ok" = "OK"; "dialog_confirm" = "Confirm";
"dialog_yes" = "是"; "dialog_yes" = "是";
"drawer_menu_account_connection_status_cleared" = "禁用"; "drawer_menu_account_connection_status_cleared" = "禁用";
"drawer_menu_account_connection_status_connected" = "已连接"; "drawer_menu_account_connection_status_connected" = "已连接";

View file

@ -70,25 +70,33 @@ struct LoginFragment: View {
let contentPopup3 = Text(.init(splitMsg[1])) let contentPopup3 = Text(.init(splitMsg[1]))
let contentPopup4 = Text(.init(privacyPolicy)).underline() let contentPopup4 = Text(.init(privacyPolicy)).underline()
let contentPopup5 = Text(.init(splitMsg[2])) let contentPopup5 = Text(.init(splitMsg[2]))
PopupView(isShowPopup: $isShowPopup, PopupView(
isShowPopup: $isShowPopup,
title: Text("assistant_dialog_general_terms_and_privacy_policy_title"), title: Text("assistant_dialog_general_terms_and_privacy_policy_title"),
content: contentPopup1 + contentPopup2 + contentPopup3 + contentPopup4 + contentPopup5, content: contentPopup1 + contentPopup2 + contentPopup3 + contentPopup4 + contentPopup5,
titleFirstButton: Text("dialog_deny"), titleFirstButton: nil,
actionFirstButton: {self.isShowPopup.toggle()}, actionFirstButton: {},
titleSecondButton: Text("dialog_accept"), titleSecondButton: Text("dialog_accept"),
actionSecondButton: {acceptGeneralTerms()}) actionSecondButton: { acceptGeneralTerms() },
titleThirdButton: Text("dialog_deny"),
actionThirdButton: { self.isShowPopup.toggle() }
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {
self.isShowPopup.toggle() self.isShowPopup.toggle()
} }
} else { // backup just in case } else { // backup just in case
PopupView(isShowPopup: $isShowPopup, PopupView(
isShowPopup: $isShowPopup,
title: Text("assistant_dialog_general_terms_and_privacy_policy_title"), title: Text("assistant_dialog_general_terms_and_privacy_policy_title"),
content: Text(.init(String(format: String(localized: "assistant_dialog_general_terms_and_privacy_policy_message"), generalTerms, privacyPolicy))), content: Text(.init(String(format: String(localized: "assistant_dialog_general_terms_and_privacy_policy_message"), generalTerms, privacyPolicy))),
titleFirstButton: Text("dialog_deny"), titleFirstButton: nil,
actionFirstButton: {self.isShowPopup.toggle()}, actionFirstButton: {},
titleSecondButton: Text("dialog_accept"), titleSecondButton: Text("dialog_accept"),
actionSecondButton: {acceptGeneralTerms()}) actionSecondButton: { acceptGeneralTerms() },
titleThirdButton: Text("dialog_deny"),
actionThirdButton: { self.isShowPopup.toggle() }
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {
self.isShowPopup.toggle() self.isShowPopup.toggle()

View file

@ -145,7 +145,8 @@ struct ProfileModeFragment: View {
} }
if self.isShowPopup { if self.isShowPopup {
PopupView(isShowPopup: $isShowPopup, PopupView(
isShowPopup: $isShowPopup,
title: Text(isShowPopupForDefault ? "Default mode" : "Interoperable mode"), title: Text(isShowPopupForDefault ? "Default mode" : "Interoperable mode"),
content: Text( content: Text(
isShowPopupForDefault isShowPopupForDefault
@ -155,10 +156,10 @@ struct ProfileModeFragment: View {
+ " Etiam velit sapien, egestas sit amet dictum eget, condimentum a ligula."), + " Etiam velit sapien, egestas sit amet dictum eget, condimentum a ligula."),
titleFirstButton: nil, titleFirstButton: nil,
actionFirstButton: {}, actionFirstButton: {},
titleSecondButton: Text("dialog_close"), titleSecondButton: nil,
actionSecondButton: { actionSecondButton: {},
self.isShowPopup.toggle() titleThirdButton: Text("dialog_close"),
} actionThirdButton: { self.isShowPopup.toggle() }
) )
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {

View file

@ -57,22 +57,21 @@ struct RegisterFragment: View {
let titlePopup = Text("assistant_dialog_confirm_phone_number_title") let titlePopup = Text("assistant_dialog_confirm_phone_number_title")
let contentPopup = Text(String(format: String(localized: "assistant_dialog_confirm_phone_number_message"), registerViewModel.phoneNumber)) let contentPopup = Text(String(format: String(localized: "assistant_dialog_confirm_phone_number_message"), registerViewModel.phoneNumber))
PopupView( PopupView(
isShowPopup: $isShowPopup, isShowPopup: $isShowPopup,
title: titlePopup, title: titlePopup,
content: contentPopup, content: contentPopup,
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: { actionFirstButton: {},
self.isShowPopup = false
},
titleSecondButton: Text("dialog_continue"), titleSecondButton: Text("dialog_continue"),
actionSecondButton: { actionSecondButton: {
self.isShowPopup = false self.isShowPopup = false
registerViewModel.createInProgress = true registerViewModel.createInProgress = true
registerViewModel.startAccountCreation() registerViewModel.startAccountCreation()
registerViewModel.phoneNumberConfirmedByUser() registerViewModel.phoneNumberConfirmedByUser()
} },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { self.isShowPopup = false },
) )
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {

View file

@ -103,17 +103,21 @@ struct CallsListFragment: View {
.background(.white) .background(.white)
if self.isShowPopup { if self.isShowPopup {
PopupView(isShowPopup: $isShowPopup, PopupView(
isShowPopup: $isShowPopup,
title: Text("calls_list_dialog_merge_into_conference_title"), title: Text("calls_list_dialog_merge_into_conference_title"),
content: nil, content: nil,
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: {self.isShowPopup.toggle()}, actionFirstButton: {},
titleSecondButton: Text("calls_list_dialog_merge_into_conference_label"), titleSecondButton: Text("calls_list_dialog_merge_into_conference_label"),
actionSecondButton: { actionSecondButton: {
callViewModel.mergeCallsIntoConference() callViewModel.mergeCallsIntoConference()
self.isShowPopup.toggle() self.isShowPopup.toggle()
isShowCallsListFragment.toggle() isShowCallsListFragment.toggle()
}) },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { self.isShowPopup.toggle() },
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {
self.isShowPopup.toggle() self.isShowPopup.toggle()

View file

@ -108,17 +108,21 @@ struct ParticipantsListFragment: View {
if self.isShowPopup { if self.isShowPopup {
let contentPopup = Text(String(format: String(localized: "meeting_call_remove_participant_confirmation_message"), callViewModel.participantList[indexToRemove].name)) let contentPopup = Text(String(format: String(localized: "meeting_call_remove_participant_confirmation_message"), callViewModel.participantList[indexToRemove].name))
PopupView(isShowPopup: $isShowPopup, PopupView(
isShowPopup: $isShowPopup,
title: Text("meeting_call_remove_participant_confirmation_title"), title: Text("meeting_call_remove_participant_confirmation_title"),
content: contentPopup, content: contentPopup,
titleFirstButton: Text("dialog_no"), titleFirstButton: nil,
actionFirstButton: {self.isShowPopup.toggle()}, actionFirstButton: {},
titleSecondButton: Text("dialog_yes"), titleSecondButton: Text("dialog_yes"),
actionSecondButton: { actionSecondButton: {
callViewModel.removeParticipant(index: indexToRemove) callViewModel.removeParticipant(index: indexToRemove)
self.isShowPopup.toggle() self.isShowPopup.toggle()
indexToRemove = -1 indexToRemove = -1
}) },
titleThirdButton: Text("dialog_no"),
actionThirdButton: { self.isShowPopup.toggle() }
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {
self.isShowPopup.toggle() self.isShowPopup.toggle()

View file

@ -1111,14 +1111,16 @@ struct ContentView: View {
) )
), ),
content: Text("contact_dialog_delete_message"), content: Text("contact_dialog_delete_message"),
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: { actionFirstButton: {},
self.isShowDeleteContactPopup.toggle()}, titleSecondButton: Text("dialog_confirm"),
titleSecondButton: Text("dialog_ok"),
actionSecondButton: { actionSecondButton: {
contactsListVM.deleteSelectedContact() contactsListVM.deleteSelectedContact()
self.isShowDeleteContactPopup.toggle() self.isShowDeleteContactPopup.toggle()
}) },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { self.isShowDeleteContactPopup.toggle() }
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.zIndex(3) .zIndex(3)
.onTapGesture { .onTapGesture {
@ -1130,17 +1132,13 @@ struct ContentView: View {
} }
if isShowDeleteAllHistoryPopup { if isShowDeleteAllHistoryPopup {
PopupView(isShowPopup: $isShowDeleteContactPopup, PopupView(
isShowPopup: $isShowDeleteContactPopup,
title: Text("history_dialog_delete_all_call_logs_title"), title: Text("history_dialog_delete_all_call_logs_title"),
content: Text("history_dialog_delete_all_call_logs_message"), content: Text("history_dialog_delete_all_call_logs_message"),
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: { actionFirstButton: {},
self.isShowDeleteAllHistoryPopup.toggle() titleSecondButton: Text("dialog_confirm"),
if let historyListVM = historyListViewModel {
historyListVM.callLogsAddressToDelete = ""
}
},
titleSecondButton: Text("dialog_ok"),
actionSecondButton: { actionSecondButton: {
if let historyListVM = historyListViewModel { if let historyListVM = historyListViewModel {
historyListVM.removeCallLogs() historyListVM.removeCallLogs()
@ -1150,7 +1148,15 @@ struct ContentView: View {
ToastViewModel.shared.toastMessage = "Success_remove_call_logs" ToastViewModel.shared.toastMessage = "Success_remove_call_logs"
ToastViewModel.shared.displayToast.toggle() ToastViewModel.shared.displayToast.toggle()
}) },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: {
self.isShowDeleteAllHistoryPopup.toggle()
if let historyListVM = historyListViewModel {
historyListVM.callLogsAddressToDelete = ""
}
}
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.zIndex(3) .zIndex(3)
.onTapGesture { .onTapGesture {
@ -1159,12 +1165,13 @@ struct ContentView: View {
} }
if isShowDismissPopup { if isShowDismissPopup {
PopupView(isShowPopup: $isShowDismissPopup, PopupView(
isShowPopup: $isShowDismissPopup,
title: Text("contact_editor_dialog_abort_confirmation_title"), title: Text("contact_editor_dialog_abort_confirmation_title"),
content: Text("contact_editor_dialog_abort_confirmation_message"), content: Text("contact_editor_dialog_abort_confirmation_message"),
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: {self.isShowDismissPopup.toggle()}, actionFirstButton: {},
titleSecondButton: Text("dialog_ok"), titleSecondButton: Text("dialog_confirm"),
actionSecondButton: { actionSecondButton: {
self.isShowDismissPopup.toggle() self.isShowDismissPopup.toggle()
if isShowEditContactFragment { if isShowEditContactFragment {
@ -1172,7 +1179,10 @@ struct ContentView: View {
} else { } else {
isShowEditContactFragmentInContactDetails = false isShowEditContactFragmentInContactDetails = false
} }
}) },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { self.isShowDismissPopup.toggle() }
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.zIndex(3) .zIndex(3)
.onTapGesture { .onTapGesture {
@ -1294,21 +1304,25 @@ struct ContentView: View {
} }
if let meetingsListVM = meetingsListViewModel, isShowSendCancelMeetingNotificationPopup { if let meetingsListVM = meetingsListViewModel, isShowSendCancelMeetingNotificationPopup {
PopupView(isShowPopup: $isShowSendCancelMeetingNotificationPopup, PopupView(
isShowPopup: $isShowSendCancelMeetingNotificationPopup,
title: Text("meeting_schedule_cancel_dialog_title"), title: Text("meeting_schedule_cancel_dialog_title"),
content: !sharedMainViewModel.disableChatFeature ? Text("meeting_schedule_cancel_dialog_message") : Text(""), content: !sharedMainViewModel.disableChatFeature ? Text("meeting_schedule_cancel_dialog_message") : Text(""),
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: { actionFirstButton: {},
sharedMainViewModel.displayedMeeting = nil titleSecondButton: Text("dialog_confirm"),
meetingsListVM.deleteSelectedMeeting()
self.isShowSendCancelMeetingNotificationPopup.toggle(
) },
titleSecondButton: Text("dialog_ok"),
actionSecondButton: { actionSecondButton: {
sharedMainViewModel.displayedMeeting = nil sharedMainViewModel.displayedMeeting = nil
meetingsListVM.cancelMeetingWithNotifications() meetingsListVM.cancelMeetingWithNotifications()
self.isShowSendCancelMeetingNotificationPopup.toggle() self.isShowSendCancelMeetingNotificationPopup.toggle()
}) },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: {
sharedMainViewModel.displayedMeeting = nil
meetingsListVM.deleteSelectedMeeting()
self.isShowSendCancelMeetingNotificationPopup.toggle()
}
)
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.zIndex(3) .zIndex(3)
.onTapGesture { .onTapGesture {
@ -1321,17 +1335,17 @@ struct ContentView: View {
isShowPopup: $isShowStartCallGroupPopup, isShowPopup: $isShowStartCallGroupPopup,
title: Text("conversation_info_confirm_start_group_call_dialog_title"), title: Text("conversation_info_confirm_start_group_call_dialog_title"),
content: Text("conversation_info_confirm_start_group_call_dialog_message"), content: Text("conversation_info_confirm_start_group_call_dialog_message"),
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: { actionFirstButton: {},
self.isShowStartCallGroupPopup.toggle() titleSecondButton: Text("dialog_confirm"),
},
titleSecondButton: Text("dialog_ok"),
actionSecondButton: { actionSecondButton: {
if sharedMainViewModel.displayedConversation != nil { if sharedMainViewModel.displayedConversation != nil {
sharedMainViewModel.displayedConversation!.createGroupCall() sharedMainViewModel.displayedConversation!.createGroupCall()
} }
self.isShowStartCallGroupPopup.toggle() self.isShowStartCallGroupPopup.toggle()
} },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { self.isShowStartCallGroupPopup.toggle() }
) )
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.zIndex(3) .zIndex(3)
@ -1340,6 +1354,32 @@ struct ContentView: View {
} }
} }
/*
if isShowStartCallGroupPopup {
PopupView(
isShowPopup: $isShowStartCallGroupPopup,
title: Text("conversation_info_confirm_start_group_call_dialog_title"),
content: Text("conversation_info_confirm_start_group_call_dialog_message"),
titleFirstButton: Text("dialog_cancel"),
actionFirstButton: { self.isShowStartCallGroupPopup.toggle() },
titleSecondButton: Text("dialog_confirm"),
actionSecondButton: {
if sharedMainViewModel.displayedConversation != nil {
sharedMainViewModel.displayedConversation!.createGroupCall()
}
self.isShowStartCallGroupPopup.toggle()
},
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { self.isShowStartCallGroupPopup.toggle() }
)
.background(.black.opacity(0.65))
.zIndex(3)
.onTapGesture {
self.isShowStartCallGroupPopup.toggle()
}
}
*/
if isShowConversationInfoPopup { if isShowConversationInfoPopup {
PopupViewWithTextField( PopupViewWithTextField(
isShowConversationInfoPopup: $isShowConversationInfoPopup, isShowConversationInfoPopup: $isShowConversationInfoPopup,

View file

@ -111,7 +111,7 @@ struct StartGroupConversationFragment: View {
Button(action: { Button(action: {
startConversationViewModel.createGroupChatRoom() startConversationViewModel.createGroupChatRoom()
}, label: { }, label: {
Text("dialog_ok") Text("dialog_confirm")
.default_text_style_white_600(styleSize: 20) .default_text_style_white_600(styleSize: 20)
.frame(height: 35) .frame(height: 35)
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)

View file

@ -105,7 +105,7 @@ struct PopupUpdatePassword: View {
updateAuthInfo() updateAuthInfo()
isShowUpdatePasswordPopup = false isShowUpdatePasswordPopup = false
}, label: { }, label: {
Text("dialog_ok") Text("dialog_confirm")
.default_text_style_white_600(styleSize: 20) .default_text_style_white_600(styleSize: 20)
.frame(height: 35) .frame(height: 35)
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)

View file

@ -34,6 +34,9 @@ struct PopupView: View {
var titleSecondButton: Text? var titleSecondButton: Text?
var actionSecondButton: () -> Void var actionSecondButton: () -> Void
var titleThirdButton: Text?
var actionThirdButton: () -> Void
var body: some View { var body: some View {
GeometryReader { geometry in GeometryReader { geometry in
VStack(alignment: .leading) { VStack(alignment: .leading) {
@ -49,14 +52,44 @@ struct PopupView: View {
.padding(.bottom, 20) .padding(.bottom, 20)
} }
HStack {
if titleFirstButton != nil { if titleFirstButton != nil {
Button(action: { Button(action: {
actionFirstButton() actionFirstButton()
}, label: { }, label: {
titleFirstButton titleFirstButton
.default_text_style_orange_600(styleSize: 20) .default_text_style_white_600(styleSize: 14)
.frame(height: 35) .frame(height: 30)
.frame(maxWidth: .infinity) })
.padding(.horizontal, 20)
.padding(.vertical, 10)
.background(Color.orangeMain500)
.cornerRadius(60)
.padding(.horizontal, 2)
}
if titleSecondButton != nil {
Button(action: {
actionSecondButton()
}, label: {
titleSecondButton
.default_text_style_white_600(styleSize: 14)
.frame(height: 30)
})
.padding(.horizontal, 20)
.padding(.vertical, 10)
.background(Color.orangeMain500)
.cornerRadius(60)
.padding(.horizontal, 2)
}
if titleThirdButton != nil {
Button(action: {
actionThirdButton()
}, label: {
titleThirdButton
.default_text_style_orange_600(styleSize: 14)
.frame(height: 30)
}) })
.padding(.horizontal, 20) .padding(.horizontal, 20)
.padding(.vertical, 10) .padding(.vertical, 10)
@ -66,23 +99,10 @@ struct PopupView: View {
.inset(by: 0.5) .inset(by: 0.5)
.stroke(Color.orangeMain500, lineWidth: 1) .stroke(Color.orangeMain500, lineWidth: 1)
) )
.padding(.bottom, 10) .padding(.horizontal, 2)
} }
if titleSecondButton != nil {
Button(action: {
actionSecondButton()
}, label: {
titleSecondButton
.default_text_style_white_600(styleSize: 20)
.frame(height: 35)
.frame(maxWidth: .infinity)
})
.padding(.horizontal, 20)
.padding(.vertical, 10)
.background(Color.orangeMain500)
.cornerRadius(60)
} }
.frame(maxWidth: .infinity, alignment: .trailing)
} }
.padding(.horizontal, 20) .padding(.horizontal, 20)
.padding(.vertical, 20) .padding(.vertical, 20)
@ -101,9 +121,11 @@ struct PopupView: View {
PopupView(isShowPopup: .constant(true), PopupView(isShowPopup: .constant(true),
title: Text("Title"), title: Text("Title"),
content: Text("Content"), content: Text("Content"),
titleFirstButton: Text("Deny all"), titleFirstButton: Text("Accept all"),
actionFirstButton: {}, actionFirstButton: {},
titleSecondButton: Text("Accept all"), titleSecondButton: Text("dialog_confirm"),
actionSecondButton: {}) actionSecondButton: {},
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: {})
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
} }

View file

@ -72,7 +72,7 @@ struct PopupViewWithTextField: View {
setNewChatRoomSubject() setNewChatRoomSubject()
isShowConversationInfoPopup = false isShowConversationInfoPopup = false
}, label: { }, label: {
Text("dialog_ok") Text("dialog_confirm")
.default_text_style_white_600(styleSize: 20) .default_text_style_white_600(styleSize: 20)
.frame(height: 35) .frame(height: 35)
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)

View file

@ -306,17 +306,17 @@ struct HelpFragment: View {
isShowPopup: $helpViewModel.checkUpdateAvailable, isShowPopup: $helpViewModel.checkUpdateAvailable,
title: Text("help_dialog_update_available_title"), title: Text("help_dialog_update_available_title"),
content: Text(String(format: String(localized: "help_dialog_update_available_message"), helpViewModel.versionAvailable)), content: Text(String(format: String(localized: "help_dialog_update_available_message"), helpViewModel.versionAvailable)),
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: { actionFirstButton: {},
helpViewModel.checkUpdateAvailable = false
},
titleSecondButton: Text("dialog_install"), titleSecondButton: Text("dialog_install"),
actionSecondButton: { actionSecondButton: {
helpViewModel.checkUpdateAvailable = false helpViewModel.checkUpdateAvailable = false
if let url = URL(string: helpViewModel.urlVersionAvailable) { if let url = URL(string: helpViewModel.urlVersionAvailable) {
UIApplication.shared.open(url) UIApplication.shared.open(url)
} }
} },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { helpViewModel.checkUpdateAvailable = false }
) )
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.zIndex(3) .zIndex(3)

View file

@ -468,7 +468,7 @@ struct ScheduleMeetingFragment: View {
showDatePicker.toggle() showDatePicker.toggle()
} }
} }
Text("dialog_ok") Text("dialog_confirm")
.default_text_style_orange_500(styleSize: 16) .default_text_style_orange_500(styleSize: 16)
.onTapGesture { .onTapGesture {
pickDate() pickDate()

View file

@ -606,15 +606,16 @@ struct AccountProfileFragment: View {
.background(Color.gray100) .background(Color.gray100)
if self.isShowPopup { if self.isShowPopup {
PopupView(isShowPopup: $isShowPopup, PopupView(
isShowPopup: $isShowPopup,
title: Text("manage_account_international_prefix"), title: Text("manage_account_international_prefix"),
content: Text("manage_account_dialog_international_prefix_help_message"), content: Text("manage_account_dialog_international_prefix_help_message"),
titleFirstButton: nil, titleFirstButton: nil,
actionFirstButton: {}, actionFirstButton: {},
titleSecondButton: Text("dialog_ok"), titleSecondButton: Text("dialog_confirm"),
actionSecondButton: { actionSecondButton: { self.isShowPopup.toggle() },
self.isShowPopup.toggle() titleThirdButton: nil,
} actionThirdButton: {}
) )
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {
@ -635,10 +636,8 @@ struct AccountProfileFragment: View {
isShowPopup: $isShowLogoutPopup, isShowPopup: $isShowLogoutPopup,
title: Text("manage_account_dialog_remove_account_title"), title: Text("manage_account_dialog_remove_account_title"),
content: contentPopup1 + contentPopup2, content: contentPopup1 + contentPopup2,
titleFirstButton: Text("dialog_cancel"), titleFirstButton: nil,
actionFirstButton: { actionFirstButton: {},
self.isShowLogoutPopup.toggle()
},
titleSecondButton: Text("manage_account_delete"), titleSecondButton: Text("manage_account_delete"),
actionSecondButton: { actionSecondButton: {
if accountProfileViewModel.accountModelIndex != nil { if accountProfileViewModel.accountModelIndex != nil {
@ -650,7 +649,9 @@ struct AccountProfileFragment: View {
} }
} }
} }
} },
titleThirdButton: Text("dialog_cancel"),
actionThirdButton: { self.isShowLogoutPopup.toggle() }
) )
.background(.black.opacity(0.65)) .background(.black.opacity(0.65))
.onTapGesture { .onTapGesture {