@pi-spi/app 1.6.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/README.md +64 -30
- package/example/App.tsx +27 -24
- package/lib/module/core/api.js +14 -5
- package/lib/module/core/api.js.map +1 -1
- package/lib/module/core/assets.js +0 -7
- package/lib/module/core/assets.js.map +1 -1
- package/lib/module/core/di.js +17 -8
- package/lib/module/core/di.js.map +1 -1
- package/lib/module/core/pi_spi_custom_theme.js +22 -10
- package/lib/module/core/pi_spi_custom_theme.js.map +1 -1
- package/lib/module/core/pi_spi_sdk_config.js +22 -8
- package/lib/module/core/pi_spi_sdk_config.js.map +1 -1
- package/lib/module/core/theme.js +345 -225
- package/lib/module/core/theme.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/l10n/app_localizations.js.map +1 -1
- package/lib/module/l10n/app_localizations_en.js +22 -0
- package/lib/module/l10n/app_localizations_en.js.map +1 -1
- package/lib/module/l10n/app_localizations_fr.js +22 -0
- package/lib/module/l10n/app_localizations_fr.js.map +1 -1
- package/lib/module/l10n/app_localizations_pt.js +22 -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/config/domain/models/config_keys.js +3 -1
- package/lib/module/modules/config/domain/models/config_keys.js.map +1 -1
- package/lib/module/modules/config/domain/services/config_service.js +31 -2
- package/lib/module/modules/config/domain/services/config_service.js.map +1 -1
- package/lib/module/modules/home/presentation/pages/home_tab_compte.js +0 -1
- package/lib/module/modules/home/presentation/pages/home_tab_compte.js.map +1 -1
- package/lib/module/modules/home/presentation/pages/home_tab_compte_more_menu.js +38 -37
- package/lib/module/modules/home/presentation/pages/home_tab_compte_more_menu.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page.js +2 -2
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.js +2 -2
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.js +135 -199
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/profile_menu.js +4 -3
- package/lib/module/modules/profile/presentation/pages/profile_menu.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_recu.js +3 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_details/transaction_details_page_recu.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/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.js +5 -4
- package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js +2 -2
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js.map +1 -1
- package/lib/module/pi_spi_sdk_entry.js +7 -2
- package/lib/module/pi_spi_sdk_entry.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/custom_progressbar.js +3 -2
- package/lib/module/shared/widgets/custom_progressbar.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 +382 -6
- 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/core/assets.d.ts +0 -7
- package/lib/typescript/src/core/assets.d.ts.map +1 -1
- package/lib/typescript/src/core/di.d.ts.map +1 -1
- package/lib/typescript/src/core/pi_spi_custom_theme.d.ts +17 -8
- package/lib/typescript/src/core/pi_spi_custom_theme.d.ts.map +1 -1
- package/lib/typescript/src/core/pi_spi_sdk_config.d.ts +22 -8
- package/lib/typescript/src/core/pi_spi_sdk_config.d.ts.map +1 -1
- package/lib/typescript/src/core/theme.d.ts +123 -53
- package/lib/typescript/src/core/theme.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/l10n/app_localizations.d.ts +44 -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/config/domain/models/config_keys.d.ts +3 -1
- package/lib/typescript/src/modules/config/domain/models/config_keys.d.ts.map +1 -1
- package/lib/typescript/src/modules/config/domain/services/config_service.d.ts +7 -0
- package/lib/typescript/src/modules/config/domain/services/config_service.d.ts.map +1 -1
- package/lib/typescript/src/modules/home/presentation/pages/home_tab_compte_more_menu.d.ts +2 -0
- package/lib/typescript/src/modules/home/presentation/pages/home_tab_compte_more_menu.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.d.ts +1 -1
- package/lib/typescript/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.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/custom_progressbar.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/core/assets.ts +0 -7
- package/src/core/di.ts +13 -8
- package/src/core/pi_spi_custom_theme.ts +22 -15
- package/src/core/pi_spi_sdk_config.ts +27 -9
- package/src/core/theme.ts +381 -269
- package/src/index.ts +1 -1
- package/src/l10n/app_localizations.ts +44 -0
- package/src/l10n/app_localizations_en.ts +22 -0
- package/src/l10n/app_localizations_fr.ts +22 -0
- package/src/l10n/app_localizations_pt.ts +22 -0
- package/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.tsx +25 -27
- package/src/modules/config/domain/models/config_keys.ts +3 -1
- package/src/modules/config/domain/services/config_service.ts +31 -2
- package/src/modules/home/presentation/pages/home_tab_compte.tsx +1 -1
- package/src/modules/home/presentation/pages/home_tab_compte_more_menu.tsx +34 -42
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page.tsx +2 -5
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_qrcode.tsx +2 -2
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_theme.tsx +105 -148
- package/src/modules/profile/presentation/pages/profile_menu.tsx +2 -2
- 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_recu.tsx +3 -1
- 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/modules/transactions/presentation/pages/transaction_search/transaction_search_page_filters.tsx +4 -4
- package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.tsx +2 -2
- package/src/pi_spi_sdk_entry.tsx +9 -2
- package/src/shared/widgets/confirm_action_sheet_widget.tsx +30 -34
- package/src/shared/widgets/custom_progressbar.tsx +3 -2
- 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 +293 -5
- package/assets/images/theme_light_blue.jpeg +0 -0
- package/assets/images/theme_light_green.jpeg +0 -0
- package/assets/images/theme_light_orange.jpeg +0 -0
- package/assets/images/theme_light_pink.jpeg +0 -0
- package/assets/images/theme_light_purple.jpeg +0 -0
- package/assets/images/theme_light_red.jpeg +0 -0
- package/assets/images/theme_light_yellow.jpeg +0 -0
- 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
package/src/index.ts
CHANGED
|
@@ -22,7 +22,7 @@ export {
|
|
|
22
22
|
type PiSpiLogLevel,
|
|
23
23
|
} from './core/pi_spi_sdk_config';
|
|
24
24
|
export { PiSpiCustomTheme } from './core/pi_spi_custom_theme';
|
|
25
|
-
export { Themes, type ThemeData } from './core/theme';
|
|
25
|
+
export { Accents, Themes, type ThemeData } from './core/theme';
|
|
26
26
|
export {
|
|
27
27
|
type AppLocalizations,
|
|
28
28
|
type SupportedLocaleCode,
|
|
@@ -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 */
|
|
@@ -915,6 +929,8 @@ export interface AppLocalizations {
|
|
|
915
929
|
readonly transactionDetailsCancelRejectMessage: string;
|
|
916
930
|
/** Send receipt */
|
|
917
931
|
readonly transactionDetailsRecuTitle: string;
|
|
932
|
+
/** Issued on: */
|
|
933
|
+
readonly transactionDetailsRecuPdfEditeLe: string;
|
|
918
934
|
/** You can download or share the PDF file */
|
|
919
935
|
readonly transactionDetailsRecuSubTitle: string;
|
|
920
936
|
/** Identifier */
|
|
@@ -1049,6 +1065,8 @@ export interface AppLocalizations {
|
|
|
1049
1065
|
readonly qrcodePagePartageAliasTitle: string;
|
|
1050
1066
|
/** Alias sharing */
|
|
1051
1067
|
readonly qrcodePagePartageAliasSubTitle: string;
|
|
1068
|
+
/** Add my number */
|
|
1069
|
+
readonly qrcodePagePartageContactAjouterHint: string;
|
|
1052
1070
|
/** Your contact */
|
|
1053
1071
|
readonly qrcodePagePartageContactTitle: string;
|
|
1054
1072
|
/** Share your alias contact */
|
|
@@ -1215,6 +1233,32 @@ export interface AppLocalizations {
|
|
|
1215
1233
|
readonly appSettingPageMenuThemeDefault: string;
|
|
1216
1234
|
/** Apparence */
|
|
1217
1235
|
readonly appSettingPageMenuThemePageTitle: string;
|
|
1236
|
+
/** Theme */
|
|
1237
|
+
readonly appSettingPageThemeSection: string;
|
|
1238
|
+
/** Accent colour */
|
|
1239
|
+
readonly appSettingPageAccentSection: string;
|
|
1240
|
+
/** Default */
|
|
1241
|
+
readonly appSettingPageAccentDefaut: string;
|
|
1242
|
+
/** Green */
|
|
1243
|
+
readonly appSettingPageAccentVert: string;
|
|
1244
|
+
/** Blue */
|
|
1245
|
+
readonly appSettingPageAccentBleu: string;
|
|
1246
|
+
/** Red */
|
|
1247
|
+
readonly appSettingPageAccentRouge: string;
|
|
1248
|
+
/** Orange */
|
|
1249
|
+
readonly appSettingPageAccentOrange: string;
|
|
1250
|
+
/** Purple */
|
|
1251
|
+
readonly appSettingPageAccentViolet: string;
|
|
1252
|
+
/** Pink */
|
|
1253
|
+
readonly appSettingPageAccentRose: string;
|
|
1254
|
+
/** Turquoise */
|
|
1255
|
+
readonly appSettingPageAccentTurquoise: string;
|
|
1256
|
+
/** Terracotta */
|
|
1257
|
+
readonly appSettingPageAccentTerracotta: string;
|
|
1258
|
+
/** Burgundy */
|
|
1259
|
+
readonly appSettingPageAccentBordeaux: string;
|
|
1260
|
+
/** Slate */
|
|
1261
|
+
readonly appSettingPageAccentArdoise: string;
|
|
1218
1262
|
/** My QR code by default */
|
|
1219
1263
|
readonly appSettingPageMenuQrCodeTitle: string;
|
|
1220
1264
|
/** Enable to display your QR Code by default */
|
|
@@ -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`,
|
|
@@ -464,6 +471,7 @@ If this request comes from someone you trust, simply add their alias to your con
|
|
|
464
471
|
transactionDetailsCancelReasonLabel: `Reason`,
|
|
465
472
|
transactionDetailsCancelRejectMessage: `The cancellation request has been successfully rejected`,
|
|
466
473
|
transactionDetailsRecuTitle: `Send receipt`,
|
|
474
|
+
transactionDetailsRecuPdfEditeLe: `Issued on:`,
|
|
467
475
|
transactionDetailsRecuSubTitle: `You can download or share the PDF file`,
|
|
468
476
|
transactionDetailsRecuInfoIdentifiant: `Identifier`,
|
|
469
477
|
transactionDetailsRecuInfoReference: `Reference`,
|
|
@@ -535,6 +543,7 @@ Please try again later.`,
|
|
|
535
543
|
qrcodePagePartageQrCodeSubTitle: `Share as picture`,
|
|
536
544
|
qrcodePagePartageAliasTitle: `Share the alias`,
|
|
537
545
|
qrcodePagePartageAliasSubTitle: `Alias sharing`,
|
|
546
|
+
qrcodePagePartageContactAjouterHint: `Add my number`,
|
|
538
547
|
qrcodePagePartageContactTitle: `Your contact`,
|
|
539
548
|
qrcodePagePartageContactSubTitle: `Share your alias contact`,
|
|
540
549
|
qrcodePagePartageAliasMessage: (name: string) => `PI Alias of ${name}`,
|
|
@@ -619,6 +628,19 @@ Scanning will be automatic`,
|
|
|
619
628
|
appSettingPageMenuThemeCustom: `App theme`,
|
|
620
629
|
appSettingPageMenuThemeDefault: `System`,
|
|
621
630
|
appSettingPageMenuThemePageTitle: `Apparence`,
|
|
631
|
+
appSettingPageThemeSection: `Theme`,
|
|
632
|
+
appSettingPageAccentSection: `Accent colour`,
|
|
633
|
+
appSettingPageAccentDefaut: `Default`,
|
|
634
|
+
appSettingPageAccentVert: `Green`,
|
|
635
|
+
appSettingPageAccentBleu: `Blue`,
|
|
636
|
+
appSettingPageAccentRouge: `Red`,
|
|
637
|
+
appSettingPageAccentOrange: `Orange`,
|
|
638
|
+
appSettingPageAccentViolet: `Purple`,
|
|
639
|
+
appSettingPageAccentRose: `Pink`,
|
|
640
|
+
appSettingPageAccentTurquoise: `Turquoise`,
|
|
641
|
+
appSettingPageAccentTerracotta: `Terracotta`,
|
|
642
|
+
appSettingPageAccentBordeaux: `Burgundy`,
|
|
643
|
+
appSettingPageAccentArdoise: `Slate`,
|
|
622
644
|
appSettingPageMenuQrCodeTitle: `My QR code by default`,
|
|
623
645
|
appSettingPageMenuQrCodeSelectTitle: `Enable to display your QR Code by default`,
|
|
624
646
|
appSettingPageMenuQrCodeDeselectTitle: `Disable to display the camera by default`,
|
|
@@ -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`,
|
|
@@ -464,6 +471,7 @@ Si cette demande provient d'une personne de confiance, il vous suffit d'ajouter
|
|
|
464
471
|
transactionDetailsCancelReasonLabel: `Raison`,
|
|
465
472
|
transactionDetailsCancelRejectMessage: `La demande d’annulation est rejetée avec succès`,
|
|
466
473
|
transactionDetailsRecuTitle: `Reçu de l'envoi`,
|
|
474
|
+
transactionDetailsRecuPdfEditeLe: `Edité le :`,
|
|
467
475
|
transactionDetailsRecuSubTitle: `Vous pouvez partager ou télécharger le PDF`,
|
|
468
476
|
transactionDetailsRecuInfoIdentifiant: `Identifiant`,
|
|
469
477
|
transactionDetailsRecuInfoReference: `Référence`,
|
|
@@ -534,6 +542,7 @@ Merci de votre compréhension.`,
|
|
|
534
542
|
qrcodePagePartageQrCodeSubTitle: `Partage de l’image`,
|
|
535
543
|
qrcodePagePartageAliasTitle: `Votre alias`,
|
|
536
544
|
qrcodePagePartageAliasSubTitle: `Partage de l’alias`,
|
|
545
|
+
qrcodePagePartageContactAjouterHint: `Ajouter mon numéro`,
|
|
537
546
|
qrcodePagePartageContactTitle: `Votre contact`,
|
|
538
547
|
qrcodePagePartageContactSubTitle: `Partager le contact de votre alias`,
|
|
539
548
|
qrcodePagePartageAliasMessage: (name: string) => `Alias PI de ${name}`,
|
|
@@ -618,6 +627,19 @@ Le scan se fait automatiquement`,
|
|
|
618
627
|
appSettingPageMenuThemeCustom: `Thème de l'application`,
|
|
619
628
|
appSettingPageMenuThemeDefault: `Système`,
|
|
620
629
|
appSettingPageMenuThemePageTitle: `Apparence`,
|
|
630
|
+
appSettingPageThemeSection: `Thème`,
|
|
631
|
+
appSettingPageAccentSection: `Couleur d'accentuation`,
|
|
632
|
+
appSettingPageAccentDefaut: `Défaut`,
|
|
633
|
+
appSettingPageAccentVert: `Vert`,
|
|
634
|
+
appSettingPageAccentBleu: `Bleu`,
|
|
635
|
+
appSettingPageAccentRouge: `Rouge`,
|
|
636
|
+
appSettingPageAccentOrange: `Orange`,
|
|
637
|
+
appSettingPageAccentViolet: `Violet`,
|
|
638
|
+
appSettingPageAccentRose: `Rose`,
|
|
639
|
+
appSettingPageAccentTurquoise: `Turquoise`,
|
|
640
|
+
appSettingPageAccentTerracotta: `Terracotta`,
|
|
641
|
+
appSettingPageAccentBordeaux: `Bordeaux`,
|
|
642
|
+
appSettingPageAccentArdoise: `Ardoise`,
|
|
621
643
|
appSettingPageMenuQrCodeTitle: `Mon QR code par défaut`,
|
|
622
644
|
appSettingPageMenuQrCodeSelectTitle: `Activer pour afficher votre QR Code par défaut`,
|
|
623
645
|
appSettingPageMenuQrCodeDeselectTitle: `Désactiver pour afficher la caméra par défaut`,
|
|
@@ -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`,
|
|
@@ -464,6 +471,7 @@ Se este pedido for de uma pessoa de confiança, basta adicionar o alias aos seus
|
|
|
464
471
|
transactionDetailsCancelReasonLabel: `Razão`,
|
|
465
472
|
transactionDetailsCancelRejectMessage: `A demanda de cancelamento foi rejeitada com sucesso`,
|
|
466
473
|
transactionDetailsRecuTitle: `Recebido de envio`,
|
|
474
|
+
transactionDetailsRecuPdfEditeLe: `Emitido em:`,
|
|
467
475
|
transactionDetailsRecuSubTitle: `Você pode compartilhar ou baixar o PDF`,
|
|
468
476
|
transactionDetailsRecuInfoIdentifiant: `Identificador`,
|
|
469
477
|
transactionDetailsRecuInfoReference: `Referência`,
|
|
@@ -535,6 +543,7 @@ Por favor, tente novamente mais tarde`,
|
|
|
535
543
|
qrcodePagePartageQrCodeSubTitle: `Compartilhar a imagem`,
|
|
536
544
|
qrcodePagePartageAliasTitle: `Seu alias`,
|
|
537
545
|
qrcodePagePartageAliasSubTitle: `Compartilhamento de alias`,
|
|
546
|
+
qrcodePagePartageContactAjouterHint: `Adicionar o meu número`,
|
|
538
547
|
qrcodePagePartageContactTitle: `Seu contato`,
|
|
539
548
|
qrcodePagePartageContactSubTitle: `Compartilhar o contato do seu alias`,
|
|
540
549
|
qrcodePagePartageAliasMessage: (name: string) => `Alias PI de ${name}`,
|
|
@@ -619,6 +628,19 @@ O scan é feito automaticamente`,
|
|
|
619
628
|
appSettingPageMenuThemeCustom: `Tema da aplicação`,
|
|
620
629
|
appSettingPageMenuThemeDefault: `Sistema`,
|
|
621
630
|
appSettingPageMenuThemePageTitle: `Aparência`,
|
|
631
|
+
appSettingPageThemeSection: `Tema`,
|
|
632
|
+
appSettingPageAccentSection: `Cor de destaque`,
|
|
633
|
+
appSettingPageAccentDefaut: `Padrão`,
|
|
634
|
+
appSettingPageAccentVert: `Verde`,
|
|
635
|
+
appSettingPageAccentBleu: `Azul`,
|
|
636
|
+
appSettingPageAccentRouge: `Vermelho`,
|
|
637
|
+
appSettingPageAccentOrange: `Laranja`,
|
|
638
|
+
appSettingPageAccentViolet: `Roxo`,
|
|
639
|
+
appSettingPageAccentRose: `Rosa`,
|
|
640
|
+
appSettingPageAccentTurquoise: `Turquesa`,
|
|
641
|
+
appSettingPageAccentTerracotta: `Terracota`,
|
|
642
|
+
appSettingPageAccentBordeaux: `Bordô`,
|
|
643
|
+
appSettingPageAccentArdoise: `Ardósia`,
|
|
622
644
|
appSettingPageMenuQrCodeTitle: `Meu QR Code por defeito`,
|
|
623
645
|
appSettingPageMenuQrCodeSelectTitle: `Ativar para exibir o meu QR Code por defeito`,
|
|
624
646
|
appSettingPageMenuQrCodeDeselectTitle: `Desativar para exibir a câmera por defeito`,
|
|
@@ -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
|
});
|
|
@@ -6,8 +6,10 @@ export enum ConfigKey {
|
|
|
6
6
|
/** l'utilisateur a passé l'introduction */
|
|
7
7
|
introductionPassed = 'INTRODUCTION_PASSED',
|
|
8
8
|
|
|
9
|
-
/** theme de l'utilisateur */
|
|
9
|
+
/** theme de l'utilisateur : système, clair ou sombre */
|
|
10
10
|
preferedTheme = 'PREFERED_THEME',
|
|
11
|
+
/** Couleur d'accentuation (PI-SPI par défaut) */
|
|
12
|
+
preferedAccent = 'PREFERED_ACCENT',
|
|
11
13
|
|
|
12
14
|
/** Permission notification */
|
|
13
15
|
permissionNotification = 'PERMISSION_NOTIFICATION',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ConfigInputPort } from '../../ports/input/config_input_port';
|
|
2
2
|
import type { ConfigOutputPort } from '../../ports/output/config_output_port';
|
|
3
|
-
import { configKeyValues } from '../models/config_keys';
|
|
3
|
+
import { ConfigKey, configKeyValues } from '../models/config_keys';
|
|
4
4
|
import type { ConfigParams } from '../models/config_params';
|
|
5
5
|
|
|
6
6
|
/** Service contenant la logique de gestion des configurations */
|
|
@@ -11,9 +11,38 @@ export class ConfigService implements ConfigInputPort {
|
|
|
11
11
|
*/
|
|
12
12
|
constructor(readonly configOutputPort: ConfigOutputPort) {}
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Anciens thèmes de couleur, remplacés par le thème clair et une couleur
|
|
16
|
+
* d'accentuation (le jaune, trop proche de l'ambre, devient PI-SPI)
|
|
17
|
+
*/
|
|
18
|
+
static readonly anciensThemes: Readonly<Record<string, string>> = {
|
|
19
|
+
yellowTheme: 'pispi',
|
|
20
|
+
greenTheme: 'vert',
|
|
21
|
+
blueTheme: 'bleu',
|
|
22
|
+
redTheme: 'rouge',
|
|
23
|
+
orangeTheme: 'orange',
|
|
24
|
+
purpleTheme: 'violet',
|
|
25
|
+
pinkTheme: 'rose',
|
|
26
|
+
// Thème personnalisé de l'hôte : sa couleur devient l'accent
|
|
27
|
+
customTheme: 'application',
|
|
28
|
+
};
|
|
29
|
+
|
|
14
30
|
recuperer(): ConfigParams {
|
|
15
31
|
// Récuperer toute la config et Appeler le systeme de stockage
|
|
16
|
-
|
|
32
|
+
const config = this.configOutputPort.recuperer([...configKeyValues]);
|
|
33
|
+
this.migrerTheme(config);
|
|
34
|
+
return config;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Convertit une seule fois un ancien thème de couleur en thème clair et couleur d'accentuation, et l'enregistre */
|
|
38
|
+
private migrerTheme(config: ConfigParams): void {
|
|
39
|
+
const ancien = config.params[ConfigKey.preferedTheme];
|
|
40
|
+
const accent = ancien != null ? ConfigService.anciensThemes[ancien] : undefined;
|
|
41
|
+
if (accent == null) return;
|
|
42
|
+
config.params[ConfigKey.preferedTheme] = 'lightTheme';
|
|
43
|
+
config.params[ConfigKey.preferedAccent] = accent;
|
|
44
|
+
void this.configOutputPort.modifier(ConfigKey.preferedTheme, 'lightTheme');
|
|
45
|
+
void this.configOutputPort.modifier(ConfigKey.preferedAccent, accent);
|
|
17
46
|
}
|
|
18
47
|
|
|
19
48
|
async modifier(key: string, value: string): Promise<void> {
|
|
@@ -75,7 +75,7 @@ export function HomeTabCompte() {
|
|
|
75
75
|
<CtaWidget
|
|
76
76
|
icon={(color) => <MaterialIcons name="more-horiz" size={30} color={color} />}
|
|
77
77
|
label={traductions.homeActionMore}
|
|
78
|
-
action={hasAlias ? () => void showModalBottomSheet(router, {
|
|
78
|
+
action={hasAlias ? () => void showModalBottomSheet(router, { builder: () => <HomeTabCompteMoreMenu /> }) : null}
|
|
79
79
|
/>
|
|
80
80
|
</View>
|
|
81
81
|
<View style={styles.gap14} />
|
|
@@ -1,71 +1,63 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
1
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
2
|
|
|
4
3
|
import { Images } from '../../../../core/assets';
|
|
5
4
|
import { AppRouter, useAppRouter } from '../../../../core/router';
|
|
6
|
-
import { useTheme } from '../../../../core/theme';
|
|
7
5
|
import { useAppLocalizations } from '../../../../l10n/localizations';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { SelectionSheet } from '../../../../shared/widgets/selection';
|
|
7
|
+
import { ProfileMenuTile, ProfilePageMenu } from '../../../profile/presentation/pages/profile_menu';
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
10
|
* Menu « Plus » de l'accueil. Le participant peut personnaliser ce menu
|
|
13
11
|
* pour y ajouter des fonctionnalités propres à son système.
|
|
12
|
+
* Même feuille que celles du profil : à ouvrir avec showModalBottomSheet
|
|
13
|
+
* sans `themed`, la feuille dessine elle-même son fond.
|
|
14
14
|
*/
|
|
15
15
|
export function HomeTabCompteMoreMenu() {
|
|
16
16
|
const traductions = useAppLocalizations();
|
|
17
|
-
const theme = useTheme();
|
|
18
17
|
const router = useAppRouter();
|
|
19
|
-
const { height } = useWindowDimensions();
|
|
20
|
-
const insets = useSafeAreaInsets();
|
|
21
18
|
// Fermer le menu avant d'ouvrir la page : sinon il reste affiché par-dessus
|
|
22
19
|
const open = (location: string) => {
|
|
23
20
|
AppRouter.pop(router);
|
|
24
21
|
void AppRouter.push(router, location);
|
|
25
22
|
};
|
|
26
23
|
return (
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
styles.
|
|
30
|
-
|
|
31
|
-
]}
|
|
32
|
-
>
|
|
33
|
-
<Card>
|
|
34
|
-
<ScrollView>
|
|
35
|
-
<MenuActionsWidget
|
|
24
|
+
<SelectionSheet
|
|
25
|
+
contenu={
|
|
26
|
+
<View style={styles.contenu}>
|
|
27
|
+
<ProfilePageMenu
|
|
36
28
|
items={[
|
|
37
29
|
// Programmer un paiement
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
traductions.
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
|
|
30
|
+
<ProfileMenuTile
|
|
31
|
+
key="programmer"
|
|
32
|
+
image={Images.homeFooterTransfer}
|
|
33
|
+
titre={traductions.homeActionMoreSheetProgrammerTitle}
|
|
34
|
+
sousTitre={traductions.homeActionMoreSheetProgrammerSubTitle}
|
|
35
|
+
onPress={() => open(AppRouter.subscriptionSchedule)}
|
|
36
|
+
/>,
|
|
45
37
|
// Trouver un abonnement
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
traductions.
|
|
50
|
-
|
|
51
|
-
{
|
|
52
|
-
|
|
38
|
+
<ProfileMenuTile
|
|
39
|
+
key="abonnement"
|
|
40
|
+
image={Images.homeMoreFindSubscription}
|
|
41
|
+
titre={traductions.homeActionMoreSheetAbonnementTitle}
|
|
42
|
+
sousTitre={traductions.homeActionMoreSheetAbonnementSubTitle}
|
|
43
|
+
onPress={() => open(AppRouter.subscriptionSubscribe)}
|
|
44
|
+
/>,
|
|
53
45
|
// Partager dépenses
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
traductions.
|
|
58
|
-
|
|
59
|
-
{
|
|
60
|
-
|
|
46
|
+
<ProfileMenuTile
|
|
47
|
+
key="partager"
|
|
48
|
+
image={Images.homeMoreSplitPayments}
|
|
49
|
+
titre={traductions.homeActionMoreSheetPartagerTitle}
|
|
50
|
+
sousTitre={traductions.homeActionMoreSheetPartagerSubTitle}
|
|
51
|
+
onPress={() => open(AppRouter.transactionSplitPaymentTx)}
|
|
52
|
+
/>,
|
|
61
53
|
]}
|
|
62
54
|
/>
|
|
63
|
-
</
|
|
64
|
-
|
|
65
|
-
|
|
55
|
+
</View>
|
|
56
|
+
}
|
|
57
|
+
/>
|
|
66
58
|
);
|
|
67
59
|
}
|
|
68
60
|
|
|
69
61
|
const styles = StyleSheet.create({
|
|
70
|
-
|
|
62
|
+
contenu: { paddingHorizontal: 16, paddingTop: 8, paddingBottom: 20 },
|
|
71
63
|
});
|
|
@@ -46,10 +46,7 @@ function menuItems(traductions: AppLocalizations, configParams: ConfigParams): P
|
|
|
46
46
|
if (Di.config.appConfig.canChangeTheme) {
|
|
47
47
|
items.push(
|
|
48
48
|
new ProfileItem(Images.iconsTheme, traductions.appSettingPageMenuThemeTitle, AppRouter.profileParametreTheme, {
|
|
49
|
-
subtitle:
|
|
50
|
-
params[ConfigKey.preferedTheme] === Themer.customThemeCode
|
|
51
|
-
? traductions.appSettingPageMenuThemeCustom
|
|
52
|
-
: Themes.label(theme, traductions),
|
|
49
|
+
subtitle: `${Themes.label(theme, traductions)} · ${Themer.accentLabel(traductions, params[ConfigKey.preferedAccent])}`,
|
|
53
50
|
}),
|
|
54
51
|
);
|
|
55
52
|
}
|
|
@@ -76,7 +73,7 @@ export function ProfileParametrePage() {
|
|
|
76
73
|
(_p, current) =>
|
|
77
74
|
current instanceof ConfigLoadedState &&
|
|
78
75
|
current.updatedKey != null &&
|
|
79
|
-
[ConfigKey.showQRcode, ConfigKey.preferedTheme, ConfigKey.notificationStatus, ConfigKey.notificationAlertSound].includes(
|
|
76
|
+
[ConfigKey.showQRcode, ConfigKey.preferedTheme, ConfigKey.preferedAccent, ConfigKey.notificationStatus, ConfigKey.notificationAlertSound].includes(
|
|
80
77
|
current.updatedKey,
|
|
81
78
|
),
|
|
82
79
|
);
|
|
@@ -4,7 +4,7 @@ import { Images } from '../../../../../core/assets';
|
|
|
4
4
|
import { useBloc, useBlocBuilder } from '../../../../../core/bloc_react';
|
|
5
5
|
import { Themer, useTheme } from '../../../../../core/theme';
|
|
6
6
|
import { useAppLocalizations } from '../../../../../l10n/localizations';
|
|
7
|
-
import {
|
|
7
|
+
import { SelectionSheet } from '../../../../../shared/widgets/selection';
|
|
8
8
|
import { ConfigBloc } from '../../../../config/adapters/ui/bloc/config_bloc';
|
|
9
9
|
import { ConfigChangeEvent } from '../../../../config/adapters/ui/bloc/config_event';
|
|
10
10
|
import { ConfigLoadedState } from '../../../../config/adapters/ui/bloc/config_state';
|
|
@@ -25,7 +25,7 @@ export function ProfileParametrePageQRcode() {
|
|
|
25
25
|
const basculer = () => configBloc.add(new ConfigChangeEvent(ConfigKey.showQRcode, showQRcode ? '0' : '1'));
|
|
26
26
|
|
|
27
27
|
return (
|
|
28
|
-
<
|
|
28
|
+
<SelectionSheet
|
|
29
29
|
titre={traductions.appSettingPageMenuQrCodeTitle}
|
|
30
30
|
entete={
|
|
31
31
|
<Text style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>
|