@pi-spi/app 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/core/api.js +14 -5
- package/lib/module/core/api.js.map +1 -1
- package/lib/module/l10n/app_localizations.js.map +1 -1
- package/lib/module/l10n/app_localizations_en.js +8 -0
- package/lib/module/l10n/app_localizations_en.js.map +1 -1
- package/lib/module/l10n/app_localizations_fr.js +8 -0
- package/lib/module/l10n/app_localizations_fr.js.map +1 -1
- package/lib/module/l10n/app_localizations_pt.js +8 -0
- package/lib/module/l10n/app_localizations_pt.js.map +1 -1
- package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js +25 -35
- package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js +6 -28
- package/lib/module/modules/profile/presentation/pages/profile_page_avatar.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js +0 -1
- package/lib/module/modules/profile/presentation/pages/profile_page_contacts.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js +122 -162
- package/lib/module/modules/profile/presentation/pages/profile_page_contacts_actions.js.map +1 -1
- package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js +0 -1
- package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page.js.map +1 -1
- package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js +26 -38
- package/lib/module/modules/qrcode/presentation/pages/qrcode_alias_page_share.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js +0 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js +0 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js +38 -93
- package/lib/module/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js +0 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js +0 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js +23 -42
- package/lib/module/modules/subscription/presentation/pages/subscription_menu_widget.js.map +1 -1
- package/lib/module/modules/transactions/infra/transaction_output_remote.js +2 -1
- package/lib/module/modules/transactions/infra/transaction_output_remote.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js +0 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js +34 -61
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js +49 -62
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js +68 -88
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js +77 -0
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.js.map +1 -0
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js +49 -155
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js +8 -28
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js +0 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js +50 -42
- package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js +0 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js +0 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js +37 -67
- package/lib/module/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.js.map +1 -1
- package/lib/module/shared/widgets/confirm_action_sheet_widget.js +34 -67
- package/lib/module/shared/widgets/confirm_action_sheet_widget.js.map +1 -1
- package/lib/module/shared/widgets/image_select_widget.js +43 -107
- package/lib/module/shared/widgets/image_select_widget.js.map +1 -1
- package/lib/module/shared/widgets/notification_dialog.js +25 -35
- package/lib/module/shared/widgets/notification_dialog.js.map +1 -1
- package/lib/module/shared/widgets/selection.js +381 -5
- package/lib/module/shared/widgets/selection.js.map +1 -1
- package/lib/typescript/src/core/api.d.ts +6 -0
- package/lib/typescript/src/core/api.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations.d.ts +16 -0
- package/lib/typescript/src/l10n/app_localizations.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations_en.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations_fr.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations_pt.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page_avatar.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/profile_page_contacts_actions.d.ts.map +1 -1
- package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.d.ts.map +1 -1
- package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.d.ts.map +1 -1
- package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts +2 -2
- package/lib/typescript/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.d.ts.map +1 -1
- package/lib/typescript/src/modules/subscription/presentation/pages/subscription_menu_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/infra/transaction_output_remote.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts +17 -0
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.d.ts.map +1 -0
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts +6 -2
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts +4 -1
- package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/image_select_widget.d.ts +6 -4
- package/lib/typescript/src/shared/widgets/image_select_widget.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/notification_dialog.d.ts +2 -2
- package/lib/typescript/src/shared/widgets/notification_dialog.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/selection.d.ts +69 -2
- package/lib/typescript/src/shared/widgets/selection.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/api.ts +11 -2
- package/src/l10n/app_localizations.ts +16 -0
- package/src/l10n/app_localizations_en.ts +8 -0
- package/src/l10n/app_localizations_fr.ts +8 -0
- package/src/l10n/app_localizations_pt.ts +8 -0
- package/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.tsx +25 -27
- package/src/modules/profile/presentation/pages/profile_page_avatar.tsx +6 -12
- package/src/modules/profile/presentation/pages/profile_page_contacts.tsx +0 -1
- package/src/modules/profile/presentation/pages/profile_page_contacts_actions.tsx +111 -117
- package/src/modules/qrcode/presentation/pages/qrcode_alias_page.tsx +0 -1
- package/src/modules/qrcode/presentation/pages/qrcode_alias_page_share.tsx +32 -40
- package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page.tsx +0 -1
- package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_actions.tsx +0 -1
- package/src/modules/subscription/presentation/pages/subscription_details/subscription_details_page_note_sheet.tsx +20 -59
- package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_empty_widget.tsx +1 -1
- package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.tsx +1 -1
- package/src/modules/subscription/presentation/pages/subscription_menu_widget.tsx +25 -39
- package/src/modules/transactions/infra/transaction_output_remote.ts +6 -1
- package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions.tsx +0 -1
- package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_cancel.tsx +39 -41
- package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_actions_return.tsx +41 -46
- package/src/modules/transactions/presentation/pages/transaction_details/transaction_details_page_ticket.tsx +46 -40
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_pays.tsx +92 -0
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_psp.tsx +48 -94
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.tsx +4 -17
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.tsx +0 -1
- package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_nombre_widget.tsx +49 -42
- package/src/modules/transactions/presentation/pages/transaction_recents/transaction_recents_widget.tsx +1 -1
- package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions.tsx +0 -1
- package/src/modules/transactions/presentation/pages/transaction_rtp/transaction_rtp_page_actions_reject.tsx +47 -48
- package/src/shared/widgets/confirm_action_sheet_widget.tsx +30 -34
- package/src/shared/widgets/image_select_widget.tsx +46 -61
- package/src/shared/widgets/notification_dialog.tsx +66 -70
- package/src/shared/widgets/selection.tsx +292 -4
- package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js +0 -47
- package/lib/module/modules/transactions/presentation/pages/transaction_details/sheet_box.js.map +0 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts +0 -10
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_details/sheet_box.d.ts.map +0 -1
- package/src/modules/transactions/presentation/pages/transaction_details/sheet_box.tsx +0 -30
|
@@ -39,6 +39,10 @@ export interface AppLocalizations {
|
|
|
39
39
|
readonly errorDialogOk: string;
|
|
40
40
|
/** Unavailable */
|
|
41
41
|
readonly indisponible: string;
|
|
42
|
+
/** Take a photo */
|
|
43
|
+
readonly imageSelectCamera: string;
|
|
44
|
+
/** Choose from gallery */
|
|
45
|
+
readonly imageSelectGalerie: string;
|
|
42
46
|
/** It seems that you haven’t granted PI-SPI permission to access your location! */
|
|
43
47
|
readonly locationErrorMessage: string;
|
|
44
48
|
/** It seems that you haven't granted PI-SPI permission to send you notifications! */
|
|
@@ -603,6 +607,14 @@ export interface AppLocalizations {
|
|
|
603
607
|
readonly transactionFormOthrPaysLabel: string;
|
|
604
608
|
/** Financial institution */
|
|
605
609
|
readonly transactionFormOthrNomLabel: string;
|
|
610
|
+
/** Search for a country */
|
|
611
|
+
readonly transactionFormOthrPaysRecherche: string;
|
|
612
|
+
/** No country found */
|
|
613
|
+
readonly transactionFormOthrPaysAucun: string;
|
|
614
|
+
/** Search for an institution */
|
|
615
|
+
readonly transactionFormOthrPspRecherche: string;
|
|
616
|
+
/** No institution found */
|
|
617
|
+
readonly transactionFormOthrPspAucune: string;
|
|
606
618
|
/** Continue */
|
|
607
619
|
readonly transactionFormContinueBtn: string;
|
|
608
620
|
/** Save and make transfer */
|
|
@@ -871,6 +883,8 @@ export interface AppLocalizations {
|
|
|
871
883
|
readonly transactionDetailsTicketCaisse: string;
|
|
872
884
|
/** You can share the receipt */
|
|
873
885
|
readonly transactionDetailsTicketCaisseSubtitle: string;
|
|
886
|
+
/** Share */
|
|
887
|
+
readonly transactionDetailsTicketPartager: string;
|
|
874
888
|
/** Account */
|
|
875
889
|
readonly transactionDetailsCompte: string;
|
|
876
890
|
/** Institution */
|
|
@@ -1051,6 +1065,8 @@ export interface AppLocalizations {
|
|
|
1051
1065
|
readonly qrcodePagePartageAliasTitle: string;
|
|
1052
1066
|
/** Alias sharing */
|
|
1053
1067
|
readonly qrcodePagePartageAliasSubTitle: string;
|
|
1068
|
+
/** Add my number */
|
|
1069
|
+
readonly qrcodePagePartageContactAjouterHint: string;
|
|
1054
1070
|
/** Your contact */
|
|
1055
1071
|
readonly qrcodePagePartageContactTitle: string;
|
|
1056
1072
|
/** Share your alias contact */
|
|
@@ -19,6 +19,8 @@ export const AppLocalizationsEn: AppLocalizations = {
|
|
|
19
19
|
reessayer: `Retry`,
|
|
20
20
|
errorDialogOk: `Ok`,
|
|
21
21
|
indisponible: `Unavailable`,
|
|
22
|
+
imageSelectCamera: `Take a photo`,
|
|
23
|
+
imageSelectGalerie: `Choose from gallery`,
|
|
22
24
|
locationErrorMessage: `It seems that you haven’t granted PI-SPI permission to access your location!`,
|
|
23
25
|
notificationErrorMessage: `It seems that you haven't granted PI-SPI permission to send you notifications!`,
|
|
24
26
|
contactErrorMessage: `It looks like you haven't granted PI-SPI permission to access your contacts!`,
|
|
@@ -302,6 +304,10 @@ Check your Wi-Fi or mobile data, then tap Retry.`,
|
|
|
302
304
|
transactionFormOthrMax: `The account number must not exceed 34 characters`,
|
|
303
305
|
transactionFormOthrPaysLabel: `Country`,
|
|
304
306
|
transactionFormOthrNomLabel: `Financial institution`,
|
|
307
|
+
transactionFormOthrPaysRecherche: `Search for a country`,
|
|
308
|
+
transactionFormOthrPaysAucun: `No country found`,
|
|
309
|
+
transactionFormOthrPspRecherche: `Search for an institution`,
|
|
310
|
+
transactionFormOthrPspAucune: `No institution found`,
|
|
305
311
|
transactionFormContinueBtn: `Continue`,
|
|
306
312
|
transactionFormSaveContactBtn: `Save and make transfer`,
|
|
307
313
|
transactionFormVerificationTitle: `Confirmation`,
|
|
@@ -441,6 +447,7 @@ If this request comes from someone you trust, simply add their alias to your con
|
|
|
441
447
|
transactionDetailsRecuPaiementPDFSousTitre: `You can download or share the PDF file`,
|
|
442
448
|
transactionDetailsTicketCaisse: `Transaction Statement`,
|
|
443
449
|
transactionDetailsTicketCaisseSubtitle: `You can share the receipt`,
|
|
450
|
+
transactionDetailsTicketPartager: `Share`,
|
|
444
451
|
transactionDetailsCompte: `Account`,
|
|
445
452
|
transactionDetailsInstitution: `Institution`,
|
|
446
453
|
transactionDetailsRejet: `Reason for rejection`,
|
|
@@ -536,6 +543,7 @@ Please try again later.`,
|
|
|
536
543
|
qrcodePagePartageQrCodeSubTitle: `Share as picture`,
|
|
537
544
|
qrcodePagePartageAliasTitle: `Share the alias`,
|
|
538
545
|
qrcodePagePartageAliasSubTitle: `Alias sharing`,
|
|
546
|
+
qrcodePagePartageContactAjouterHint: `Add my number`,
|
|
539
547
|
qrcodePagePartageContactTitle: `Your contact`,
|
|
540
548
|
qrcodePagePartageContactSubTitle: `Share your alias contact`,
|
|
541
549
|
qrcodePagePartageAliasMessage: (name: string) => `PI Alias of ${name}`,
|
|
@@ -19,6 +19,8 @@ export const AppLocalizationsFr: AppLocalizations = {
|
|
|
19
19
|
reessayer: `Réessayez`,
|
|
20
20
|
errorDialogOk: `Compris`,
|
|
21
21
|
indisponible: `Indisponible`,
|
|
22
|
+
imageSelectCamera: `Prendre une photo`,
|
|
23
|
+
imageSelectGalerie: `Choisir dans la galerie`,
|
|
22
24
|
locationErrorMessage: `Il semble que vous n’ayez pas accordé à PI-SPI l’autorisation d’accéder à votre localisation!`,
|
|
23
25
|
notificationErrorMessage: `Il semble que vous n’ayez pas accordé à PI-SPI l’autorisation de vous envoyer des notifications!`,
|
|
24
26
|
contactErrorMessage: `Il semble que vous n’ayez pas accordé à PI-SPI l’autorisation d’accéder à vos contacts!`,
|
|
@@ -302,6 +304,10 @@ Vérifiez votre Wi-Fi ou vos données mobiles puis appuyez sur Réessayer.`,
|
|
|
302
304
|
transactionFormOthrMax: `Le numéro de compte ne doit pas excéder 34 caractères`,
|
|
303
305
|
transactionFormOthrPaysLabel: `Pays`,
|
|
304
306
|
transactionFormOthrNomLabel: `Institution financière`,
|
|
307
|
+
transactionFormOthrPaysRecherche: `Rechercher un pays`,
|
|
308
|
+
transactionFormOthrPaysAucun: `Aucun pays trouvé`,
|
|
309
|
+
transactionFormOthrPspRecherche: `Rechercher une institution`,
|
|
310
|
+
transactionFormOthrPspAucune: `Aucune institution trouvée`,
|
|
305
311
|
transactionFormContinueBtn: `Continuer`,
|
|
306
312
|
transactionFormSaveContactBtn: `Enregistrer et faire un transfert`,
|
|
307
313
|
transactionFormVerificationTitle: `Confirmation`,
|
|
@@ -441,6 +447,7 @@ Si cette demande provient d'une personne de confiance, il vous suffit d'ajouter
|
|
|
441
447
|
transactionDetailsRecuPaiementPDFSousTitre: `Vous pouvez partager ou télécharger le PDF`,
|
|
442
448
|
transactionDetailsTicketCaisse: `Reçu réglé`,
|
|
443
449
|
transactionDetailsTicketCaisseSubtitle: `Vous pouvez partager le ticket de caisse`,
|
|
450
|
+
transactionDetailsTicketPartager: `Partager`,
|
|
444
451
|
transactionDetailsCompte: `Compte`,
|
|
445
452
|
transactionDetailsInstitution: `Institution`,
|
|
446
453
|
transactionDetailsRejet: `Raison du rejet`,
|
|
@@ -535,6 +542,7 @@ Merci de votre compréhension.`,
|
|
|
535
542
|
qrcodePagePartageQrCodeSubTitle: `Partage de l’image`,
|
|
536
543
|
qrcodePagePartageAliasTitle: `Votre alias`,
|
|
537
544
|
qrcodePagePartageAliasSubTitle: `Partage de l’alias`,
|
|
545
|
+
qrcodePagePartageContactAjouterHint: `Ajouter mon numéro`,
|
|
538
546
|
qrcodePagePartageContactTitle: `Votre contact`,
|
|
539
547
|
qrcodePagePartageContactSubTitle: `Partager le contact de votre alias`,
|
|
540
548
|
qrcodePagePartageAliasMessage: (name: string) => `Alias PI de ${name}`,
|
|
@@ -19,6 +19,8 @@ export const AppLocalizationsPt: AppLocalizations = {
|
|
|
19
19
|
reessayer: `Tente novamente`,
|
|
20
20
|
errorDialogOk: `Entendi`,
|
|
21
21
|
indisponible: `Indisponível`,
|
|
22
|
+
imageSelectCamera: `Tirar uma foto`,
|
|
23
|
+
imageSelectGalerie: `Escolher da galeria`,
|
|
22
24
|
locationErrorMessage: `Parece que você não concedeu permissão para que o PI-SPI acesse a sua localização!`,
|
|
23
25
|
notificationErrorMessage: `Parece que você não concedeu permissão ao PI-SPI para lhe enviar notificações!`,
|
|
24
26
|
contactErrorMessage: `Parece que você não concedeu ao PI-SPI permissão para aceder aos seus contatos!`,
|
|
@@ -302,6 +304,10 @@ Verifique o Wi-Fi ou os dados móveis e toque em Tentar novamente.`,
|
|
|
302
304
|
transactionFormOthrMax: `O número de conta não deve exceder 34 caracteres`,
|
|
303
305
|
transactionFormOthrPaysLabel: `País`,
|
|
304
306
|
transactionFormOthrNomLabel: `Instituição financeira`,
|
|
307
|
+
transactionFormOthrPaysRecherche: `Pesquisar um país`,
|
|
308
|
+
transactionFormOthrPaysAucun: `Nenhum país encontrado`,
|
|
309
|
+
transactionFormOthrPspRecherche: `Pesquisar uma instituição`,
|
|
310
|
+
transactionFormOthrPspAucune: `Nenhuma instituição encontrada`,
|
|
305
311
|
transactionFormContinueBtn: `Continuar`,
|
|
306
312
|
transactionFormSaveContactBtn: `Salvar e fazer um transferência`,
|
|
307
313
|
transactionFormVerificationTitle: `Confirmação`,
|
|
@@ -441,6 +447,7 @@ Se este pedido for de uma pessoa de confiança, basta adicionar o alias aos seus
|
|
|
441
447
|
transactionDetailsRecuPaiementPDFSousTitre: `Você pode compartilhar ou baixar o PDF`,
|
|
442
448
|
transactionDetailsTicketCaisse: `Recebido pago`,
|
|
443
449
|
transactionDetailsTicketCaisseSubtitle: `Você pode compartilhar o recibo`,
|
|
450
|
+
transactionDetailsTicketPartager: `Partilhar`,
|
|
444
451
|
transactionDetailsCompte: `Conta`,
|
|
445
452
|
transactionDetailsInstitution: `Instituição`,
|
|
446
453
|
transactionDetailsRejet: `Motivo da rejeição`,
|
|
@@ -536,6 +543,7 @@ Por favor, tente novamente mais tarde`,
|
|
|
536
543
|
qrcodePagePartageQrCodeSubTitle: `Compartilhar a imagem`,
|
|
537
544
|
qrcodePagePartageAliasTitle: `Seu alias`,
|
|
538
545
|
qrcodePagePartageAliasSubTitle: `Compartilhamento de alias`,
|
|
546
|
+
qrcodePagePartageContactAjouterHint: `Adicionar o meu número`,
|
|
539
547
|
qrcodePagePartageContactTitle: `Seu contato`,
|
|
540
548
|
qrcodePagePartageContactSubTitle: `Compartilhar o contato do seu alias`,
|
|
541
549
|
qrcodePagePartageAliasMessage: (name: string) => `Alias PI de ${name}`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Image } from 'expo-image';
|
|
2
2
|
import { useRef } from 'react';
|
|
3
|
-
import { Pressable, ScrollView, StyleSheet,
|
|
3
|
+
import { Pressable, ScrollView, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
4
4
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
5
5
|
|
|
6
6
|
import { Images } from '../../../../core/assets';
|
|
@@ -9,10 +9,9 @@ import { AppRouter, useAppRouter } from '../../../../core/router';
|
|
|
9
9
|
import { useTheme } from '../../../../core/theme';
|
|
10
10
|
import { useAppLocalizations } from '../../../../l10n/localizations';
|
|
11
11
|
import { ElevatedButton } from '../../../../shared/material/buttons';
|
|
12
|
-
import { Card } from '../../../../shared/material/card';
|
|
13
12
|
import { showModalBottomSheet } from '../../../../shared/material/overlays';
|
|
14
13
|
import { EmojiSelectWidget } from '../../../../shared/widgets/emoji_select_widget';
|
|
15
|
-
import {
|
|
14
|
+
import { SbSelectionOption, SelectionSheet } from '../../../../shared/widgets/selection';
|
|
16
15
|
import { CategorieIconType } from '../../domain/models/categorie';
|
|
17
16
|
import { CategorieBloc } from '../bloc/categorie_bloc';
|
|
18
17
|
import { CategorieAddValidationEvent, CategorieEditValidationEvent } from '../bloc/categorie_event';
|
|
@@ -25,7 +24,7 @@ export function CategorieEditIconBtn() {
|
|
|
25
24
|
return (
|
|
26
25
|
<Pressable
|
|
27
26
|
accessibilityRole="button"
|
|
28
|
-
onPress={() => void showModalBottomSheet(router, {
|
|
27
|
+
onPress={() => void showModalBottomSheet(router, { builder: () => <CategorieEditIconOptions /> })}
|
|
29
28
|
style={[styles.fab, { backgroundColor: theme.colorScheme.surface }]}
|
|
30
29
|
>
|
|
31
30
|
<Image source={Images.categorieImageSelect} style={styles.fabIcon} />
|
|
@@ -33,13 +32,10 @@ export function CategorieEditIconBtn() {
|
|
|
33
32
|
);
|
|
34
33
|
}
|
|
35
34
|
|
|
36
|
-
/** Feuille des options d'icône : emoji (ou galerie, non disponible, comme en Flutter) */
|
|
35
|
+
/** Feuille des options d'icône : emoji (ou galerie, non disponible, comme en Flutter). */
|
|
37
36
|
function CategorieEditIconOptions() {
|
|
38
37
|
const traductions = useAppLocalizations();
|
|
39
|
-
const theme = useTheme();
|
|
40
38
|
const router = useAppRouter();
|
|
41
|
-
const insets = useSafeAreaInsets();
|
|
42
|
-
const { height } = useWindowDimensions();
|
|
43
39
|
const categorieBloc = useBloc(CategorieBloc);
|
|
44
40
|
|
|
45
41
|
const selectEmoji = async () => {
|
|
@@ -63,25 +59,26 @@ function CategorieEditIconOptions() {
|
|
|
63
59
|
};
|
|
64
60
|
|
|
65
61
|
return (
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}),
|
|
76
|
-
// Choisir dans la galerie (sans action, comme dans le SDK Flutter)
|
|
77
|
-
new MenuActionItem(Images.categorieImageSelect, traductions.categorieFormIconSheetGalleryTitle, null, () => undefined, {
|
|
78
|
-
iconSize: 20,
|
|
79
|
-
}),
|
|
80
|
-
]}
|
|
62
|
+
<SelectionSheet
|
|
63
|
+
titre={traductions.categorieFormIconSheetTitle}
|
|
64
|
+
contenu={
|
|
65
|
+
<ScrollView bounces={false} contentContainerStyle={styles.optionsContent}>
|
|
66
|
+
{/* Emoji */}
|
|
67
|
+
<SbSelectionOption
|
|
68
|
+
image={Images.categorieIconEmoji}
|
|
69
|
+
titre={traductions.categorieFormIconSheetEmojiTitle}
|
|
70
|
+
onPress={() => void selectEmoji()}
|
|
81
71
|
/>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
72
|
+
<View style={styles.gap10} />
|
|
73
|
+
{/* Choisir dans la galerie (sans action, comme dans le SDK Flutter) */}
|
|
74
|
+
<SbSelectionOption
|
|
75
|
+
image={Images.categorieImageSelect}
|
|
76
|
+
titre={traductions.categorieFormIconSheetGalleryTitle}
|
|
77
|
+
onPress={() => undefined}
|
|
78
|
+
/>
|
|
79
|
+
</ScrollView>
|
|
80
|
+
}
|
|
81
|
+
/>
|
|
85
82
|
);
|
|
86
83
|
}
|
|
87
84
|
|
|
@@ -115,6 +112,7 @@ const styles = StyleSheet.create({
|
|
|
115
112
|
fabIcon: { width: 24, height: 24 },
|
|
116
113
|
sheet: { borderRadius: 20, overflow: 'hidden' },
|
|
117
114
|
sheetContent: { padding: 20 },
|
|
118
|
-
|
|
115
|
+
optionsContent: { paddingHorizontal: 20, paddingTop: 8, paddingBottom: 16 },
|
|
116
|
+
gap10: { height: 10 },
|
|
119
117
|
saveBtn: { paddingVertical: 20, paddingHorizontal: 4 },
|
|
120
118
|
});
|
|
@@ -15,6 +15,7 @@ import { withAlpha } from '../../../../shared/utils/color';
|
|
|
15
15
|
import { AvatarWidget } from '../../../../shared/widgets/avatar_widget';
|
|
16
16
|
import { ClipboardWidget } from '../../../../shared/widgets/clipboard_widget';
|
|
17
17
|
import { ImageSelectWidget } from '../../../../shared/widgets/image_select_widget';
|
|
18
|
+
import { SbSelectionOption } from '../../../../shared/widgets/selection';
|
|
18
19
|
import { AliasBloc } from '../../../alias/presentation/bloc/alias_bloc';
|
|
19
20
|
import { AliasExistState } from '../../../alias/presentation/bloc/alias_state';
|
|
20
21
|
import { ProfileAvatar } from '../../domain/profile_avatar';
|
|
@@ -45,21 +46,16 @@ export function ProfilePageAvatar() {
|
|
|
45
46
|
otherActions={
|
|
46
47
|
avatar != null
|
|
47
48
|
? [
|
|
48
|
-
<
|
|
49
|
+
<SbSelectionOption
|
|
49
50
|
key="delete"
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
icone="delete-forever"
|
|
52
|
+
titre={traductions.btnTextDelete}
|
|
53
|
+
couleur={Themer.systemErrorColor}
|
|
52
54
|
onPress={() => {
|
|
53
55
|
AppRouter.pop(router);
|
|
54
56
|
void ProfileAvatar.remove();
|
|
55
57
|
}}
|
|
56
|
-
|
|
57
|
-
<MaterialIcons name="delete-forever" size={24} color={Themer.systemErrorColor} />
|
|
58
|
-
<Text style={[theme.textTheme.bodyLarge, styles.deleteText, { color: Themer.systemErrorColor }]}>
|
|
59
|
-
{traductions.btnTextDelete}
|
|
60
|
-
</Text>
|
|
61
|
-
<MaterialIcons name="arrow-forward-ios" size={16} color={Themer.systemErrorColor} />
|
|
62
|
-
</Pressable>,
|
|
58
|
+
/>,
|
|
63
59
|
]
|
|
64
60
|
: []
|
|
65
61
|
}
|
|
@@ -147,6 +143,4 @@ const styles = StyleSheet.create({
|
|
|
147
143
|
maxWidth: '100%',
|
|
148
144
|
},
|
|
149
145
|
aliasTexte: { flexShrink: 1, marginHorizontal: 6 },
|
|
150
|
-
deleteTile: { flexDirection: 'row', alignItems: 'center', paddingHorizontal: 16, minHeight: 56 },
|
|
151
|
-
deleteText: { flex: 1, marginHorizontal: 16 },
|
|
152
146
|
});
|
|
@@ -36,7 +36,6 @@ export function ProfilePageContacts({ contactPI }: { contactPI?: ContactPI | nul
|
|
|
36
36
|
|
|
37
37
|
const onSelect = async (contact: PhoneContact | null, alias: string | null) => {
|
|
38
38
|
const value = await showModalBottomSheet<boolean>(router, {
|
|
39
|
-
themed: true,
|
|
40
39
|
builder: () => <ProfilePageContactsActions alias={alias} contact={contact} contactPI={contactPI} />,
|
|
41
40
|
});
|
|
42
41
|
if (value != null && contactPI != null) AppRouter.pop(router);
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { Image } from 'expo-image';
|
|
2
1
|
import { MaterialIcons } from '@expo/vector-icons';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Keyboard, Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';
|
|
6
4
|
|
|
7
5
|
import { Images } from '../../../../core/assets';
|
|
8
6
|
import { useBloc, useBlocListener, useCreateBloc } from '../../../../core/bloc_react';
|
|
@@ -11,11 +9,12 @@ import { Themer, useTheme } from '../../../../core/theme';
|
|
|
11
9
|
import { useAppLocalizations } from '../../../../l10n/localizations';
|
|
12
10
|
import { ElevatedButton, FilledTonalButton } from '../../../../shared/material/buttons';
|
|
13
11
|
import { AliasPI } from '../../../../shared/models/alias_pi';
|
|
14
|
-
import {
|
|
12
|
+
import { withAlpha } from '../../../../shared/utils/color';
|
|
15
13
|
import { ClipboardWidget } from '../../../../shared/widgets/clipboard_widget';
|
|
16
14
|
import { InputAliasWidget } from '../../../../shared/widgets/input_alias_widget';
|
|
17
15
|
import { CustomTextInput } from '../../../../shared/widgets/input_text';
|
|
18
16
|
import { CustomLoadingDialog } from '../../../../shared/widgets/loading_page';
|
|
17
|
+
import { SelectionBoutons, SelectionSheet } from '../../../../shared/widgets/selection';
|
|
19
18
|
import { ContactPI } from '../../../contacts/domain/contact_pi';
|
|
20
19
|
import { contactIdOf, type PhoneContact } from '../../../contacts/domain/phone_contact';
|
|
21
20
|
import { ContactBloc } from '../../../contacts/presentation/bloc/contact_bloc';
|
|
@@ -27,6 +26,7 @@ import {
|
|
|
27
26
|
ContactCreateLoadingState,
|
|
28
27
|
ContactCreateSuccessState,
|
|
29
28
|
} from '../../../contacts/presentation/bloc/create/contact_create_state';
|
|
29
|
+
import { ProfileMenuTile, ProfilePageMenu } from './profile_menu';
|
|
30
30
|
|
|
31
31
|
function fullName(contact: PhoneContact): string {
|
|
32
32
|
return `${contact.firstName} ${contact.lastName}`.trim();
|
|
@@ -50,9 +50,6 @@ export function ProfilePageContactsActions({
|
|
|
50
50
|
const traductions = useAppLocalizations();
|
|
51
51
|
const theme = useTheme();
|
|
52
52
|
const router = useAppRouter();
|
|
53
|
-
const insets = useSafeAreaInsets();
|
|
54
|
-
const { height } = useWindowDimensions();
|
|
55
|
-
const isKeyboardVisible = useKeyboardVisible();
|
|
56
53
|
const contactListBloc = useBloc(ContactBloc);
|
|
57
54
|
const contactBloc = useCreateBloc(() => new ContactCreateBloc());
|
|
58
55
|
|
|
@@ -107,127 +104,124 @@ export function ProfilePageContactsActions({
|
|
|
107
104
|
};
|
|
108
105
|
|
|
109
106
|
const canSave = command.isValid() && command.value !== alias && name != null && name.length > 0;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
// formulaire reste au-dessus du clavier. Sur iOS, la feuille est déjà
|
|
113
|
-
// remontée au-dessus du clavier par l'OverlayHost : elle garde sa hauteur.
|
|
114
|
-
const keyboardOpen = isKeyboardVisible && Platform.OS !== 'ios';
|
|
115
|
-
const ratio = !keyboardOpen ? (contact != null ? 0.35 : 0.5) : contact != null ? 0.7 : 0.8;
|
|
116
|
-
const sheetHeight = useRef(new Animated.Value(height * ratio)).current;
|
|
117
|
-
useEffect(() => {
|
|
118
|
-
Animated.timing(sheetHeight, {
|
|
119
|
-
toValue: height * ratio,
|
|
120
|
-
duration: 300,
|
|
121
|
-
easing: Easing.inOut(Easing.ease),
|
|
122
|
-
useNativeDriver: false,
|
|
123
|
-
}).start();
|
|
124
|
-
}, [height, ratio, sheetHeight]);
|
|
107
|
+
const primaire = theme.colorScheme.primary;
|
|
108
|
+
const initiale = contact != null && name != null && name.trim().length > 0 ? name.trim()[0].toUpperCase() : null;
|
|
125
109
|
|
|
110
|
+
// La feuille remonte d'elle-même au-dessus du clavier
|
|
126
111
|
return (
|
|
127
|
-
<
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
<>
|
|
134
|
-
<View style={styles.gap10} />
|
|
112
|
+
<SelectionSheet
|
|
113
|
+
hauteurMax={0.9}
|
|
114
|
+
contenu={
|
|
115
|
+
<>
|
|
116
|
+
<ScrollView keyboardShouldPersistTaps="handled" bounces={false} style={styles.defile} contentContainerStyle={styles.content}>
|
|
117
|
+
{/* Pastille, nom du contact (ou « Ajouter un contact ») et alias à copier (ou sous-titre de la création) */}
|
|
135
118
|
<View style={styles.row}>
|
|
136
|
-
<
|
|
137
|
-
{
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
</View>
|
|
143
|
-
</>
|
|
144
|
-
) : contact == null ? (
|
|
145
|
-
<>
|
|
146
|
-
<View style={styles.gap10} />
|
|
147
|
-
<Text numberOfLines={1} style={[theme.textTheme.bodyLarge, { color: Themer.neural03Color }]}>
|
|
148
|
-
{traductions.contactCreateSubtitle}
|
|
149
|
-
</Text>
|
|
150
|
-
</>
|
|
151
|
-
) : null}
|
|
152
|
-
<View style={styles.gap20} />
|
|
153
|
-
|
|
154
|
-
{canEdit ? (
|
|
155
|
-
<>
|
|
156
|
-
{/* Formulaire */}
|
|
157
|
-
<ScrollView style={styles.flex} keyboardShouldPersistTaps="handled">
|
|
158
|
-
{contact == null && (
|
|
159
|
-
<>
|
|
160
|
-
<CustomTextInput
|
|
161
|
-
defaultValue={name ?? ''}
|
|
162
|
-
labelText={traductions.contactCreateNameLabel}
|
|
163
|
-
messageError={name == null || name.length === 0 ? traductions.contactCreateNameErrorEmpty : null}
|
|
164
|
-
onChange={setName}
|
|
165
|
-
/>
|
|
166
|
-
<View style={styles.gap10} />
|
|
167
|
-
</>
|
|
168
|
-
)}
|
|
169
|
-
<InputAliasWidget command={command} onChange={rebuild} />
|
|
170
|
-
</ScrollView>
|
|
171
|
-
<View style={styles.gap20} />
|
|
172
|
-
{/* Annuler / Enregistrer */}
|
|
173
|
-
<View style={styles.buttons}>
|
|
174
|
-
<View style={styles.flex}>
|
|
175
|
-
<FilledTonalButton onPress={cancel}>{traductions.btnTextCancel}</FilledTonalButton>
|
|
119
|
+
<View style={[styles.avatar, { backgroundColor: withAlpha(primaire, 0.12) }]}>
|
|
120
|
+
{initiale != null ? (
|
|
121
|
+
<Text style={[theme.textTheme.headlineMedium, styles.initiale, { color: primaire }]}>{initiale}</Text>
|
|
122
|
+
) : (
|
|
123
|
+
<MaterialIcons name="person-add-alt-1" size={24} color={primaire} />
|
|
124
|
+
)}
|
|
176
125
|
</View>
|
|
177
|
-
<View style={styles.
|
|
178
|
-
|
|
179
|
-
|
|
126
|
+
<View style={styles.entete}>
|
|
127
|
+
<Text numberOfLines={1} style={theme.textTheme.headlineMedium}>
|
|
128
|
+
{contact != null && name != null ? name : traductions.contactCreateTitle}
|
|
129
|
+
</Text>
|
|
130
|
+
<View style={styles.gap2} />
|
|
131
|
+
{alias != null && alias.length > 0 ? (
|
|
132
|
+
<View style={styles.row}>
|
|
133
|
+
<Text numberOfLines={1} style={[theme.textTheme.displayMedium, styles.flexShrink, { color: Themer.neural03Color }]}>
|
|
134
|
+
{AliasPI.formatPhoneNumber(alias)}
|
|
135
|
+
</Text>
|
|
136
|
+
<Pressable
|
|
137
|
+
accessibilityRole="button"
|
|
138
|
+
hitSlop={8}
|
|
139
|
+
style={styles.copier}
|
|
140
|
+
onPress={() => void ClipboardWidget.setData(alias)}
|
|
141
|
+
>
|
|
142
|
+
<MaterialIcons name="content-copy" size={16} color={primaire} />
|
|
143
|
+
</Pressable>
|
|
144
|
+
</View>
|
|
145
|
+
) : contact == null ? (
|
|
146
|
+
<Text style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>{traductions.contactCreateSubtitle}</Text>
|
|
147
|
+
) : null}
|
|
180
148
|
</View>
|
|
181
149
|
</View>
|
|
182
|
-
|
|
183
|
-
) : contact != null && alias != null ? (
|
|
184
|
-
<>
|
|
185
|
-
{/* Modifier */}
|
|
186
|
-
<Action
|
|
187
|
-
icon={Images.iconEdit}
|
|
188
|
-
title={traductions.profileContactPageaActionEdit}
|
|
189
|
-
onPress={() => {
|
|
190
|
-
command.value = alias;
|
|
191
|
-
setCanEdit(true);
|
|
192
|
-
}}
|
|
193
|
-
/>
|
|
194
|
-
{/* Supprimer */}
|
|
195
|
-
<Action
|
|
196
|
-
icon={Images.iconDelete}
|
|
197
|
-
title={traductions.profileContactPageaActionDelete}
|
|
198
|
-
onPress={() => contactBloc.add(new ContactDeleteSubmitEvent(contactIdOf(contact), alias))}
|
|
199
|
-
/>
|
|
200
|
-
</>
|
|
201
|
-
) : null}
|
|
202
|
-
</View>
|
|
203
|
-
</Animated.View>
|
|
204
|
-
);
|
|
205
|
-
}
|
|
150
|
+
<View style={styles.gap20} />
|
|
206
151
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
152
|
+
{canEdit ? (
|
|
153
|
+
<>
|
|
154
|
+
{/* Champs nom et alias */}
|
|
155
|
+
{contact == null && (
|
|
156
|
+
<>
|
|
157
|
+
<CustomTextInput
|
|
158
|
+
defaultValue={name ?? ''}
|
|
159
|
+
labelText={traductions.contactCreateNameLabel}
|
|
160
|
+
messageError={name == null || name.length === 0 ? traductions.contactCreateNameErrorEmpty : null}
|
|
161
|
+
onChange={setName}
|
|
162
|
+
/>
|
|
163
|
+
<View style={styles.gap12} />
|
|
164
|
+
</>
|
|
165
|
+
)}
|
|
166
|
+
<InputAliasWidget command={command} onChange={rebuild} />
|
|
167
|
+
</>
|
|
168
|
+
) : contact != null && alias != null ? (
|
|
169
|
+
// Actions sur l'alias du contact
|
|
170
|
+
<ProfilePageMenu
|
|
171
|
+
items={[
|
|
172
|
+
// Modifier
|
|
173
|
+
<ProfileMenuTile
|
|
174
|
+
key="modifier"
|
|
175
|
+
image={Images.iconEdit}
|
|
176
|
+
titre={traductions.profileContactPageaActionEdit}
|
|
177
|
+
onPress={() => {
|
|
178
|
+
command.value = alias;
|
|
179
|
+
setCanEdit(true);
|
|
180
|
+
}}
|
|
181
|
+
/>,
|
|
182
|
+
// Supprimer
|
|
183
|
+
<ProfileMenuTile
|
|
184
|
+
key="supprimer"
|
|
185
|
+
image={Images.iconDelete}
|
|
186
|
+
titre={traductions.profileContactPageaActionDelete}
|
|
187
|
+
couleur={theme.colorScheme.error}
|
|
188
|
+
trailing={<View />}
|
|
189
|
+
onPress={() => contactBloc.add(new ContactDeleteSubmitEvent(contactIdOf(contact), alias))}
|
|
190
|
+
/>,
|
|
191
|
+
]}
|
|
192
|
+
/>
|
|
193
|
+
) : null}
|
|
194
|
+
</ScrollView>
|
|
195
|
+
|
|
196
|
+
{/* Annuler / Enregistrer, fixés en bas */}
|
|
197
|
+
{canEdit && (
|
|
198
|
+
<SelectionBoutons
|
|
199
|
+
boutons={[
|
|
200
|
+
<FilledTonalButton key="annuler" onPress={cancel}>
|
|
201
|
+
{traductions.btnTextCancel}
|
|
202
|
+
</FilledTonalButton>,
|
|
203
|
+
<ElevatedButton key="enregistrer" onPress={canSave ? () => saveAlias(command.value!) : undefined}>
|
|
204
|
+
{traductions.btnTextSave}
|
|
205
|
+
</ElevatedButton>,
|
|
206
|
+
]}
|
|
207
|
+
/>
|
|
208
|
+
)}
|
|
209
|
+
</>
|
|
210
|
+
}
|
|
211
|
+
/>
|
|
216
212
|
);
|
|
217
213
|
}
|
|
218
214
|
|
|
219
215
|
const styles = StyleSheet.create({
|
|
220
|
-
|
|
221
|
-
content: { paddingHorizontal: 20,
|
|
222
|
-
flex: { flex: 1 },
|
|
216
|
+
defile: { flexShrink: 1 },
|
|
217
|
+
content: { paddingHorizontal: 20, paddingTop: 4, paddingBottom: 20 },
|
|
223
218
|
flexShrink: { flexShrink: 1 },
|
|
224
219
|
row: { flexDirection: 'row', alignItems: 'center' },
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
gap16: { width: 16 },
|
|
220
|
+
avatar: { width: 52, height: 52, borderRadius: 26, alignItems: 'center', justifyContent: 'center' },
|
|
221
|
+
initiale: { fontWeight: '700' },
|
|
222
|
+
entete: { flex: 1, marginLeft: 14 },
|
|
223
|
+
copier: { padding: 4, marginLeft: 6 },
|
|
224
|
+
gap2: { height: 2 },
|
|
225
|
+
gap12: { height: 12 },
|
|
232
226
|
gap20: { height: 20 },
|
|
233
227
|
});
|
|
@@ -88,7 +88,6 @@ export function QrCodeAliasPage() {
|
|
|
88
88
|
style={styles.icon}
|
|
89
89
|
onPress={() =>
|
|
90
90
|
void showModalBottomSheet(router, {
|
|
91
|
-
themed: true,
|
|
92
91
|
builder: () => <QrcodeAliasPageShare username={user.nomComplet()} alias={aliasCle} shareQrcode={() => void shareQRCode()} />,
|
|
93
92
|
})
|
|
94
93
|
}
|