@pi-spi/app 2.0.0 → 2.2.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 +40 -8
- package/lib/module/l10n/app_localizations_en.js.map +1 -1
- package/lib/module/l10n/app_localizations_fr.js +49 -14
- package/lib/module/l10n/app_localizations_fr.js.map +1 -1
- package/lib/module/l10n/app_localizations_pt.js +41 -7
- package/lib/module/l10n/app_localizations_pt.js.map +1 -1
- package/lib/module/modules/alias/domain/models/alias_revendication.js +4 -2
- package/lib/module/modules/alias/domain/models/alias_revendication.js.map +1 -1
- package/lib/module/modules/alias/infra/alias_output_local.js +11 -0
- package/lib/module/modules/alias/infra/alias_output_local.js.map +1 -1
- package/lib/module/modules/alias/infra/alias_output_repository.js +9 -8
- package/lib/module/modules/alias/infra/alias_output_repository.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js +14 -18
- package/lib/module/modules/alias/presentation/pages/alias_delete_btn_widget.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_page_claim.js +113 -60
- package/lib/module/modules/alias/presentation/pages/alias_page_claim.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js +151 -76
- package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_form.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js +38 -24
- package/lib/module/modules/alias/presentation/pages/alias_page_create_mbno_timer.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js +28 -26
- package/lib/module/modules/alias/presentation/pages/alias_page_create_options.js.map +1 -1
- package/lib/module/modules/alias/presentation/pages/alias_page_otp.js +27 -110
- package/lib/module/modules/alias/presentation/pages/alias_page_otp.js.map +1 -1
- package/lib/module/modules/categorie/domain/services/categorie_service.js +2 -1
- package/lib/module/modules/categorie/domain/services/categorie_service.js.map +1 -1
- package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js +58 -72
- package/lib/module/modules/categorie/presentation/pages/categorie_edit_icon_btn.js.map +1 -1
- package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js +88 -80
- package/lib/module/modules/categorie/presentation/pages/categorie_form_pages.js.map +1 -1
- package/lib/module/modules/categorie/presentation/pages/categorie_icon.js +39 -0
- package/lib/module/modules/categorie/presentation/pages/categorie_icon.js.map +1 -1
- package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js +55 -27
- package/lib/module/modules/categorie/presentation/pages/categorie_liste_widget.js.map +1 -1
- package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js +21 -81
- package/lib/module/modules/categorie/presentation/pages/categorie_select_page.js.map +1 -1
- package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js +53 -16
- package/lib/module/modules/categorie/presentation/pages/categorie_select_widget.js.map +1 -1
- package/lib/module/modules/config/domain/models/config_keys.js +2 -0
- package/lib/module/modules/config/domain/models/config_keys.js.map +1 -1
- package/lib/module/modules/contacts/domain/contact_pi.js +3 -5
- package/lib/module/modules/contacts/domain/contact_pi.js.map +1 -1
- package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js +30 -14
- package/lib/module/modules/contacts/presentation/bloc/contact_bloc.js.map +1 -1
- package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js +106 -0
- package/lib/module/modules/contacts/presentation/pages/contact_actions_sheet.js.map +1 -0
- package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js +17 -7
- package/lib/module/modules/contacts/presentation/pages/contact_list_alias_widget.js.map +1 -1
- package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js +5 -4
- package/lib/module/modules/contacts/presentation/pages/contact_list_phone_widget.js.map +1 -1
- package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js +76 -67
- package/lib/module/modules/contacts/presentation/pages/contact_list_widget_item.js.map +1 -1
- package/lib/module/modules/contacts/presentation/pages/contact_section.js +14 -4
- package/lib/module/modules/contacts/presentation/pages/contact_section.js.map +1 -1
- package/lib/module/modules/contacts/presentation/pages/contact_select_page.js +131 -110
- package/lib/module/modules/contacts/presentation/pages/contact_select_page.js.map +1 -1
- package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js +118 -59
- package/lib/module/modules/contacts/presentation/pages/create/contact_create_page.js.map +1 -1
- package/lib/module/modules/home/presentation/pages/home_page.js +3 -13
- package/lib/module/modules/home/presentation/pages/home_page.js.map +1 -1
- package/lib/module/modules/introduction/presentation/pages/introduction.js +17 -4
- package/lib/module/modules/introduction/presentation/pages/introduction.js.map +1 -1
- package/lib/module/modules/introduction/presentation/pages/introduction_footer.js +15 -53
- package/lib/module/modules/introduction/presentation/pages/introduction_footer.js.map +1 -1
- package/lib/module/modules/introduction/presentation/pages/introduction_page.js +22 -4
- package/lib/module/modules/introduction/presentation/pages/introduction_page.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js +2 -2
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.js.map +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.js +1 -1
- package/lib/module/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.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 +14 -53
- 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 +131 -161
- 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/search/domain/models/fonctionnalite.js +51 -0
- package/lib/module/modules/search/domain/models/fonctionnalite.js.map +1 -1
- package/lib/module/modules/search/presentation/pages/search_btn_widget.js +136 -0
- package/lib/module/modules/search/presentation/pages/search_btn_widget.js.map +1 -0
- package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js +21 -1
- package/lib/module/modules/search/presentation/pages/search_fonctionnalites.js.map +1 -1
- package/lib/module/modules/search/presentation/pages/search_page.js +266 -97
- package/lib/module/modules/search/presentation/pages/search_page.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js +5 -3
- package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page.js.map +1 -1
- package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.js +5 -6
- package/lib/module/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.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/domain/models/transaction_send/transaction_send_command_othr.js +1 -2
- package/lib/module/modules/transactions/domain/models/transaction_send/transaction_send_command_othr.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/bloc/transaction_send/transaction_send_bloc.js +17 -0
- package/lib/module/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.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_date.js +30 -23
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.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.js +16 -4
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js +11 -9
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.js +17 -35
- 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_schedule.js +8 -10
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.js +127 -106
- 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.js +9 -15
- package/lib/module/modules/transactions/presentation/pages/transaction_search/transaction_search_page.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js +5 -11
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.js.map +1 -1
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js +9 -9
- package/lib/module/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.js.map +1 -1
- package/lib/module/shared/widgets/alias_widget.js +33 -12
- package/lib/module/shared/widgets/alias_widget.js.map +1 -1
- package/lib/module/shared/widgets/auth_code_field.js +89 -0
- package/lib/module/shared/widgets/auth_code_field.js.map +1 -0
- package/lib/module/shared/widgets/calendar_date_picker.js +21 -16
- package/lib/module/shared/widgets/calendar_date_picker.js.map +1 -1
- package/lib/module/shared/widgets/confirm_action_sheet_widget.js +53 -67
- package/lib/module/shared/widgets/confirm_action_sheet_widget.js.map +1 -1
- package/lib/module/shared/widgets/emoji_select_widget.js +34 -39
- package/lib/module/shared/widgets/emoji_select_widget.js.map +1 -1
- package/lib/module/shared/widgets/frequence_input_widget.js +18 -29
- package/lib/module/shared/widgets/frequence_input_widget.js.map +1 -1
- package/lib/module/shared/widgets/frequence_select_widget.js +233 -140
- package/lib/module/shared/widgets/frequence_select_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/input_text.js +1 -1
- package/lib/module/shared/widgets/input_text.js.map +1 -1
- package/lib/module/shared/widgets/notification_dialog.js +28 -37
- package/lib/module/shared/widgets/notification_dialog.js.map +1 -1
- package/lib/module/shared/widgets/pin_entete.js +114 -0
- package/lib/module/shared/widgets/pin_entete.js.map +1 -0
- package/lib/module/shared/widgets/select_date_widget.js +74 -59
- package/lib/module/shared/widgets/select_date_widget.js.map +1 -1
- package/lib/module/shared/widgets/selection.js +387 -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/l10n/app_localizations.d.ts +75 -11
- 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/alias/domain/models/alias_revendication.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts +5 -0
- package/lib/typescript/src/modules/alias/infra/alias_output_local.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/infra/alias_output_repository.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_delete_btn_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_claim.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_form.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts +4 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_create_options.d.ts.map +1 -1
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts +9 -5
- package/lib/typescript/src/modules/alias/presentation/pages/alias_page_otp.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/domain/services/categorie_service.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts +3 -0
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_form_pages.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts +9 -0
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_icon.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts +7 -2
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_liste_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.d.ts +10 -2
- package/lib/typescript/src/modules/categorie/presentation/pages/categorie_select_widget.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/contacts/domain/contact_pi.d.ts +0 -2
- package/lib/typescript/src/modules/contacts/domain/contact_pi.d.ts.map +1 -1
- package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts +7 -0
- package/lib/typescript/src/modules/contacts/presentation/bloc/contact_bloc.d.ts.map +1 -1
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts +14 -0
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_actions_sheet.d.ts.map +1 -0
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts +4 -2
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_alias_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_phone_widget.d.ts.map +1 -1
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts +6 -4
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_list_widget_item.d.ts.map +1 -1
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts +3 -1
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_section.d.ts.map +1 -1
- package/lib/typescript/src/modules/contacts/presentation/pages/contact_select_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/contacts/presentation/pages/create/contact_create_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/home/presentation/pages/home_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/introduction/presentation/pages/introduction.d.ts.map +1 -1
- package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts +5 -1
- package/lib/typescript/src/modules/introduction/presentation/pages/introduction_footer.d.ts.map +1 -1
- package/lib/typescript/src/modules/introduction/presentation/pages/introduction_page.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/search/domain/models/fonctionnalite.d.ts +20 -0
- package/lib/typescript/src/modules/search/domain/models/fonctionnalite.d.ts.map +1 -1
- package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts +11 -0
- package/lib/typescript/src/modules/search/presentation/pages/search_btn_widget.d.ts.map +1 -0
- package/lib/typescript/src/modules/search/presentation/pages/search_fonctionnalites.d.ts.map +1 -1
- package/lib/typescript/src/modules/search/presentation/pages/search_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.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/domain/models/transaction_send/transaction_send_command_othr.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/bloc/transaction_send/transaction_send_bloc.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_date.d.ts +4 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_input_date.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_alias.d.ts +4 -0
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.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_schedule.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/modules/transactions/presentation/pages/transaction_search/transaction_search_page.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.d.ts.map +1 -1
- package/lib/typescript/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/alias_widget.d.ts +2 -2
- package/lib/typescript/src/shared/widgets/alias_widget.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/auth_code_field.d.ts +17 -0
- package/lib/typescript/src/shared/widgets/auth_code_field.d.ts.map +1 -0
- package/lib/typescript/src/shared/widgets/calendar_date_picker.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts +16 -2
- package/lib/typescript/src/shared/widgets/confirm_action_sheet_widget.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/emoji_select_widget.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts +6 -3
- package/lib/typescript/src/shared/widgets/frequence_input_widget.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/frequence_select_widget.d.ts +23 -5
- package/lib/typescript/src/shared/widgets/frequence_select_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/input_text.d.ts +2 -0
- package/lib/typescript/src/shared/widgets/input_text.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/notification_dialog.d.ts +5 -3
- package/lib/typescript/src/shared/widgets/notification_dialog.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/pin_entete.d.ts +15 -0
- package/lib/typescript/src/shared/widgets/pin_entete.d.ts.map +1 -0
- package/lib/typescript/src/shared/widgets/select_date_widget.d.ts +4 -0
- package/lib/typescript/src/shared/widgets/select_date_widget.d.ts.map +1 -1
- package/lib/typescript/src/shared/widgets/selection.d.ts +74 -3
- 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 +75 -11
- package/src/l10n/app_localizations_en.ts +40 -8
- package/src/l10n/app_localizations_fr.ts +46 -14
- package/src/l10n/app_localizations_pt.ts +39 -7
- package/src/modules/alias/domain/models/alias_revendication.ts +4 -2
- package/src/modules/alias/infra/alias_output_local.ts +11 -0
- package/src/modules/alias/infra/alias_output_repository.ts +9 -8
- package/src/modules/alias/presentation/pages/alias_delete_btn_widget.tsx +17 -24
- package/src/modules/alias/presentation/pages/alias_page_claim.tsx +76 -48
- package/src/modules/alias/presentation/pages/alias_page_create_mbno_form.tsx +113 -65
- package/src/modules/alias/presentation/pages/alias_page_create_mbno_timer.tsx +34 -25
- package/src/modules/alias/presentation/pages/alias_page_create_options.tsx +29 -36
- package/src/modules/alias/presentation/pages/alias_page_otp.tsx +24 -88
- package/src/modules/categorie/domain/services/categorie_service.ts +2 -1
- package/src/modules/categorie/presentation/pages/categorie_edit_icon_btn.tsx +58 -50
- package/src/modules/categorie/presentation/pages/categorie_form_pages.tsx +71 -41
- package/src/modules/categorie/presentation/pages/categorie_icon.tsx +26 -0
- package/src/modules/categorie/presentation/pages/categorie_liste_widget.tsx +45 -24
- package/src/modules/categorie/presentation/pages/categorie_select_page.tsx +10 -46
- package/src/modules/categorie/presentation/pages/categorie_select_widget.tsx +54 -13
- package/src/modules/config/domain/models/config_keys.ts +3 -0
- package/src/modules/contacts/domain/contact_pi.ts +3 -6
- package/src/modules/contacts/presentation/bloc/contact_bloc.ts +37 -20
- package/src/modules/contacts/presentation/pages/contact_actions_sheet.tsx +69 -0
- package/src/modules/contacts/presentation/pages/contact_list_alias_widget.tsx +26 -4
- package/src/modules/contacts/presentation/pages/contact_list_phone_widget.tsx +3 -0
- package/src/modules/contacts/presentation/pages/contact_list_widget_item.tsx +54 -65
- package/src/modules/contacts/presentation/pages/contact_section.tsx +13 -3
- package/src/modules/contacts/presentation/pages/contact_select_page.tsx +106 -74
- package/src/modules/contacts/presentation/pages/create/contact_create_page.tsx +86 -47
- package/src/modules/home/presentation/pages/home_page.tsx +2 -9
- package/src/modules/introduction/presentation/pages/introduction.tsx +8 -0
- package/src/modules/introduction/presentation/pages/introduction_footer.tsx +16 -36
- package/src/modules/introduction/presentation/pages/introduction_page.tsx +17 -5
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications.tsx +2 -2
- package/src/modules/profile/presentation/pages/parametre/profile_parametre_page_notifications_son.tsx +1 -1
- package/src/modules/profile/presentation/pages/profile_page_avatar.tsx +6 -12
- package/src/modules/profile/presentation/pages/profile_page_contacts.tsx +12 -20
- package/src/modules/profile/presentation/pages/profile_page_contacts_actions.tsx +120 -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/search/domain/models/fonctionnalite.ts +56 -0
- package/src/modules/search/presentation/pages/search_btn_widget.tsx +91 -0
- package/src/modules/search/presentation/pages/search_fonctionnalites.ts +21 -1
- package/src/modules/search/presentation/pages/search_page.tsx +166 -57
- package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.tsx +4 -2
- package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page_list.tsx +5 -5
- 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/domain/models/transaction_send/transaction_send_command_othr.ts +1 -2
- package/src/modules/transactions/infra/transaction_output_remote.ts +6 -1
- package/src/modules/transactions/presentation/bloc/transaction_send/transaction_send_bloc.ts +17 -0
- 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_date.tsx +26 -17
- 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.tsx +20 -2
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_alias.tsx +6 -8
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_othr.tsx +9 -22
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_schedule.tsx +5 -7
- package/src/modules/transactions/presentation/pages/transaction_form/transaction_form_page_verification.tsx +112 -104
- 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.tsx +6 -10
- package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_repartition.tsx +3 -6
- package/src/modules/transactions/presentation/pages/transaction_split/transaction_split_page_tx.tsx +5 -5
- package/src/shared/widgets/alias_widget.tsx +45 -18
- package/src/shared/widgets/auth_code_field.tsx +89 -0
- package/src/shared/widgets/calendar_date_picker.tsx +12 -11
- package/src/shared/widgets/confirm_action_sheet_widget.tsx +49 -35
- package/src/shared/widgets/emoji_select_widget.tsx +31 -29
- package/src/shared/widgets/frequence_input_widget.tsx +18 -24
- package/src/shared/widgets/frequence_select_widget.tsx +237 -117
- package/src/shared/widgets/image_select_widget.tsx +46 -61
- package/src/shared/widgets/input_text.tsx +3 -0
- package/src/shared/widgets/notification_dialog.tsx +70 -71
- package/src/shared/widgets/pin_entete.tsx +74 -0
- package/src/shared/widgets/select_date_widget.tsx +66 -34
- package/src/shared/widgets/selection.tsx +304 -5
- 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
|
@@ -5,7 +5,7 @@ import { Di } from '../../../../core/di';
|
|
|
5
5
|
import { AppEnv } from '../../../../core/env';
|
|
6
6
|
import { AppRouter, type SdkRouter } from '../../../../core/router';
|
|
7
7
|
import type { AppLocalizations } from '../../../../l10n/app_localizations';
|
|
8
|
-
import { Fonctionnalite } from '../../domain/models/fonctionnalite';
|
|
8
|
+
import { Fonctionnalite, FonctionnaliteRubrique } from '../../domain/models/fonctionnalite';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Catalogue des fonctionnalités accessibles depuis la recherche.
|
|
@@ -34,6 +34,8 @@ export function fonctionnalitesRecherchables(
|
|
|
34
34
|
new Fonctionnalite({
|
|
35
35
|
icon: Images.arrowUp,
|
|
36
36
|
titre: traductions.homeActionSend,
|
|
37
|
+
rubrique: FonctionnaliteRubrique.paiements,
|
|
38
|
+
raccourci: true,
|
|
37
39
|
sousTitre: traductions.searchSendSubTitle,
|
|
38
40
|
motsCles: ['envoi', 'transfert', 'payer', 'virement', 'send', 'pay', 'transfer', 'enviar', 'pagar'],
|
|
39
41
|
ouvrir: () => aller(AppRouter.transactionSend),
|
|
@@ -41,6 +43,8 @@ export function fonctionnalitesRecherchables(
|
|
|
41
43
|
new Fonctionnalite({
|
|
42
44
|
icon: Images.arrowDown,
|
|
43
45
|
titre: traductions.homeActionRequest,
|
|
46
|
+
rubrique: FonctionnaliteRubrique.paiements,
|
|
47
|
+
raccourci: true,
|
|
44
48
|
sousTitre: traductions.searchReceiveSubTitle,
|
|
45
49
|
motsCles: ['demander', 'demande', 'rtp', 'request', 'receive', 'pedir', 'receber'],
|
|
46
50
|
ouvrir: () => aller(AppRouter.transactionReceive),
|
|
@@ -48,6 +52,7 @@ export function fonctionnalitesRecherchables(
|
|
|
48
52
|
new Fonctionnalite({
|
|
49
53
|
icon: Images.homeFooterQrcode,
|
|
50
54
|
titre: traductions.searchQrScanTitle,
|
|
55
|
+
rubrique: FonctionnaliteRubrique.paiements,
|
|
51
56
|
sousTitre: traductions.searchQrScanSubTitle,
|
|
52
57
|
motsCles: ['qr', 'qrcode', 'scanner', 'scan', 'camera'],
|
|
53
58
|
// Le QR scanné ouvre directement l'envoi, comme depuis l'accueil.
|
|
@@ -56,6 +61,8 @@ export function fonctionnalitesRecherchables(
|
|
|
56
61
|
new Fonctionnalite({
|
|
57
62
|
icon: Images.homeFooterQr,
|
|
58
63
|
titre: traductions.qrcodePagePartageQrCodeTitle,
|
|
64
|
+
rubrique: FonctionnaliteRubrique.paiements,
|
|
65
|
+
raccourci: true,
|
|
59
66
|
sousTitre: traductions.searchQrShowSubTitle,
|
|
60
67
|
motsCles: ['qr', 'qrcode', 'partager', 'share', 'partilhar'],
|
|
61
68
|
ouvrir: () => aller(AppRouter.qrcodeShow),
|
|
@@ -63,6 +70,7 @@ export function fonctionnalitesRecherchables(
|
|
|
63
70
|
new Fonctionnalite({
|
|
64
71
|
icon: Images.iconSend,
|
|
65
72
|
titre: traductions.transactionSearchTitle,
|
|
73
|
+
rubrique: FonctionnaliteRubrique.paiements,
|
|
66
74
|
sousTitre: traductions.searchTransactionsSubTitle,
|
|
67
75
|
motsCles: ['historique', 'paiement', 'operation', 'releve', 'history', 'payment', 'historico', 'pagamento'],
|
|
68
76
|
ouvrir: () => aller(AppRouter.transactionSearch),
|
|
@@ -70,6 +78,7 @@ export function fonctionnalitesRecherchables(
|
|
|
70
78
|
new Fonctionnalite({
|
|
71
79
|
icon: Images.iconsCloche,
|
|
72
80
|
titre: traductions.searchNotificationsTitle,
|
|
81
|
+
rubrique: FonctionnaliteRubrique.paiements,
|
|
73
82
|
sousTitre: traductions.searchNotificationsSubTitle,
|
|
74
83
|
motsCles: ['notification', 'alerte', 'message', 'nouveau', 'alert', 'news', 'notificacao', 'alerta'],
|
|
75
84
|
ouvrir: () => aller(AppRouter.notifications),
|
|
@@ -79,6 +88,8 @@ export function fonctionnalitesRecherchables(
|
|
|
79
88
|
new Fonctionnalite({
|
|
80
89
|
icon: Images.transactionPlanifier,
|
|
81
90
|
titre: traductions.homeActionMoreSheetProgrammerTitle,
|
|
91
|
+
rubrique: FonctionnaliteRubrique.abonnements,
|
|
92
|
+
raccourci: true,
|
|
82
93
|
sousTitre: traductions.homeActionMoreSheetProgrammerSubTitle,
|
|
83
94
|
motsCles: ['programmer', 'planifier', 'recurrent', 'schedule', 'agendar'],
|
|
84
95
|
ouvrir: () => aller(AppRouter.subscriptionSchedule),
|
|
@@ -86,6 +97,7 @@ export function fonctionnalitesRecherchables(
|
|
|
86
97
|
new Fonctionnalite({
|
|
87
98
|
icon: Images.homeMoreFindSubscription,
|
|
88
99
|
titre: traductions.homePageToolbarTabbarAbonnement,
|
|
100
|
+
rubrique: FonctionnaliteRubrique.abonnements,
|
|
89
101
|
sousTitre: traductions.searchAbonnementsSubTitle,
|
|
90
102
|
motsCles: ['abonnement', 'echeance', 'programme', 'subscription', 'assinatura'],
|
|
91
103
|
ouvrir: () => ouvrirOnglet(1),
|
|
@@ -93,6 +105,7 @@ export function fonctionnalitesRecherchables(
|
|
|
93
105
|
new Fonctionnalite({
|
|
94
106
|
icon: Images.homeMoreFindSubscription,
|
|
95
107
|
titre: traductions.homeActionMoreSheetAbonnementTitle,
|
|
108
|
+
rubrique: FonctionnaliteRubrique.abonnements,
|
|
96
109
|
sousTitre: traductions.homeActionMoreSheetAbonnementSubTitle,
|
|
97
110
|
motsCles: ['abonnement', 'subscription', 'assinatura'],
|
|
98
111
|
ouvrir: () => aller(AppRouter.subscriptionSubscribe),
|
|
@@ -100,6 +113,7 @@ export function fonctionnalitesRecherchables(
|
|
|
100
113
|
new Fonctionnalite({
|
|
101
114
|
icon: Images.homeMoreSplitPayments,
|
|
102
115
|
titre: traductions.homeActionMoreSheetPartagerTitle,
|
|
116
|
+
rubrique: FonctionnaliteRubrique.abonnements,
|
|
103
117
|
sousTitre: traductions.homeActionMoreSheetPartagerSubTitle,
|
|
104
118
|
motsCles: ['partager', 'repartir', 'diviser', 'amis', 'split', 'share', 'dividir'],
|
|
105
119
|
ouvrir: () => aller(AppRouter.transactionSplitPaymentTx),
|
|
@@ -109,6 +123,7 @@ export function fonctionnalitesRecherchables(
|
|
|
109
123
|
new Fonctionnalite({
|
|
110
124
|
icon: Images.iconsCircleUser,
|
|
111
125
|
titre: traductions.profilePageMenuCompteTitle,
|
|
126
|
+
rubrique: FonctionnaliteRubrique.profil,
|
|
112
127
|
sousTitre: traductions.searchCompteSubTitle,
|
|
113
128
|
motsCles: ['profil', 'compte', 'iban', 'rib', 'profile', 'account', 'perfil', 'conta'],
|
|
114
129
|
ouvrir: () => aller(AppRouter.profileCompte),
|
|
@@ -116,6 +131,7 @@ export function fonctionnalitesRecherchables(
|
|
|
116
131
|
new Fonctionnalite({
|
|
117
132
|
icon: Images.iconsSetting,
|
|
118
133
|
titre: traductions.profilePageMenuParametreTitle,
|
|
134
|
+
rubrique: FonctionnaliteRubrique.profil,
|
|
119
135
|
sousTitre: traductions.searchParametreSubTitle,
|
|
120
136
|
motsCles: ['parametre', 'reglage', 'theme', 'langue', 'notification', 'sombre', 'settings', 'language', 'dark', 'definicoes', 'idioma'],
|
|
121
137
|
ouvrir: () => aller(AppRouter.profileParametre),
|
|
@@ -126,6 +142,7 @@ export function fonctionnalitesRecherchables(
|
|
|
126
142
|
new Fonctionnalite({
|
|
127
143
|
icon: Images.iconsTheme,
|
|
128
144
|
titre: traductions.searchThemeTitle,
|
|
145
|
+
rubrique: FonctionnaliteRubrique.profil,
|
|
129
146
|
sousTitre: traductions.searchThemeSubTitle,
|
|
130
147
|
motsCles: ['theme', 'apparence', 'sombre', 'clair', 'couleur', 'mode', 'appearance', 'dark', 'light', 'color', 'tema', 'aparencia', 'escuro', 'claro', 'cor'],
|
|
131
148
|
ouvrir: () => aller(AppRouter.profileParametreTheme),
|
|
@@ -135,6 +152,7 @@ export function fonctionnalitesRecherchables(
|
|
|
135
152
|
new Fonctionnalite({
|
|
136
153
|
icon: Images.iconsCloche,
|
|
137
154
|
titre: traductions.searchNotificationsParametreTitle,
|
|
155
|
+
rubrique: FonctionnaliteRubrique.profil,
|
|
138
156
|
sousTitre: traductions.searchNotificationsParametreSubTitle,
|
|
139
157
|
motsCles: ['notification', 'son', 'vibration', 'sonnerie', 'style', 'sound', 'vibrate', 'som', 'vibracao', 'estilo'],
|
|
140
158
|
ouvrir: () => aller(AppRouter.profileParametreNotifications),
|
|
@@ -147,6 +165,7 @@ export function fonctionnalitesRecherchables(
|
|
|
147
165
|
new Fonctionnalite({
|
|
148
166
|
icon: Images.iconTransactionSendByAlias,
|
|
149
167
|
titre: traductions.profilePageMenuAliasContactTitle,
|
|
168
|
+
rubrique: FonctionnaliteRubrique.profil,
|
|
150
169
|
sousTitre: traductions.searchContactsSubTitle,
|
|
151
170
|
motsCles: ['contact', 'alias', 'repertoire', 'contacts', 'contactos'],
|
|
152
171
|
ouvrir: () => aller(AppRouter.profileContacts),
|
|
@@ -157,6 +176,7 @@ export function fonctionnalitesRecherchables(
|
|
|
157
176
|
new Fonctionnalite({
|
|
158
177
|
icon: Images.iconsHelp,
|
|
159
178
|
titre: traductions.profilePageMenuHelpTitle,
|
|
179
|
+
rubrique: FonctionnaliteRubrique.profil,
|
|
160
180
|
sousTitre: traductions.searchAideSubTitle,
|
|
161
181
|
motsCles: ['aide', 'faq', 'assistance', 'support', 'help', 'ajuda'],
|
|
162
182
|
ouvrir: () => aller(AppRouter.profileHelpCenter),
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
2
2
|
import { MaterialIcons } from '@expo/vector-icons';
|
|
3
|
+
import { Image } from 'expo-image';
|
|
3
4
|
import { createAudioPlayer, type AudioPlayer } from 'expo-audio';
|
|
4
5
|
import { ExpoSpeechRecognitionModule, useSpeechRecognitionEvent } from 'expo-speech-recognition';
|
|
5
|
-
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
6
|
+
import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react';
|
|
6
7
|
import { Keyboard, Platform, Pressable, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native';
|
|
7
8
|
|
|
8
9
|
import { AppRouter, useAppRouter } from '../../../../core/router';
|
|
@@ -12,9 +13,8 @@ import { useAppLocalizations } from '../../../../l10n/localizations';
|
|
|
12
13
|
import { Card } from '../../../../shared/material/card';
|
|
13
14
|
import { AppBar, Scaffold } from '../../../../shared/material/scaffold';
|
|
14
15
|
import { CustomSnackBar } from '../../../../shared/widgets/custom_snack_bar';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { Fonctionnalite } from '../../domain/models/fonctionnalite';
|
|
16
|
+
import { withAlpha } from '../../../../shared/utils/color';
|
|
17
|
+
import { Fonctionnalite, FonctionnaliteRubrique } from '../../domain/models/fonctionnalite';
|
|
18
18
|
import { SearchPageVoiceButton } from './search_page_voice_button';
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -214,55 +214,151 @@ export function SearchPage({
|
|
|
214
214
|
const resultats = Fonctionnalite.rechercher(fonctionnalites, recherche);
|
|
215
215
|
const voixActive = ecoute || annonce;
|
|
216
216
|
|
|
217
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
217
|
+
const primaire = theme.colorScheme.primary;
|
|
218
|
+
const saisie = recherche.trim().length > 0;
|
|
219
|
+
const [focus, setFocus] = useState(false);
|
|
220
|
+
const actif = focus || voixActive;
|
|
221
|
+
const fermer = (item: Fonctionnalite) => AppRouter.pop(router, { value: item });
|
|
222
|
+
|
|
223
|
+
/** [texte] avec les parties qui correspondent à la saisie en gras, de la couleur principale. */
|
|
224
|
+
const surligner = (texte: string) => {
|
|
225
|
+
const parties = Fonctionnalite.correspondances(texte, recherche);
|
|
226
|
+
if (parties.length === 0) return texte;
|
|
227
|
+
const morceaux: ReactNode[] = [];
|
|
228
|
+
let position = 0;
|
|
229
|
+
parties.forEach(([debut, fin], i) => {
|
|
230
|
+
if (debut > position) morceaux.push(texte.substring(position, debut));
|
|
231
|
+
morceaux.push(
|
|
232
|
+
<Text key={i} style={[styles.gras, { color: primaire }]}>
|
|
233
|
+
{texte.substring(debut, fin)}
|
|
234
|
+
</Text>,
|
|
235
|
+
);
|
|
236
|
+
position = fin;
|
|
228
237
|
});
|
|
238
|
+
if (position < texte.length) morceaux.push(texte.substring(position));
|
|
239
|
+
return morceaux;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/** Ligne de fonctionnalité : pastille, titre (partie trouvée en gras), sous-titre ; ferme la recherche en renvoyant [item]. */
|
|
243
|
+
const ligne = (item: Fonctionnalite) => (
|
|
244
|
+
<Pressable
|
|
245
|
+
key={item.titre}
|
|
246
|
+
accessibilityRole="button"
|
|
247
|
+
onPress={() => fermer(item)}
|
|
248
|
+
style={({ pressed }) => [styles.ligne, pressed ? { backgroundColor: theme.colorScheme.secondary } : null]}
|
|
249
|
+
>
|
|
250
|
+
<View style={[styles.pastille, { backgroundColor: withAlpha(primaire, 0.1) }]}>
|
|
251
|
+
<Image source={item.icon} style={styles.pastilleIcone} tintColor={primaire} contentFit="contain" />
|
|
252
|
+
</View>
|
|
253
|
+
<View style={styles.textes}>
|
|
254
|
+
<Text numberOfLines={2} style={[theme.textTheme.displayLarge, styles.titreLigne]}>
|
|
255
|
+
{surligner(item.titre)}
|
|
256
|
+
</Text>
|
|
257
|
+
{item.sousTitre != null && item.sousTitre.length > 0 && (
|
|
258
|
+
<Text numberOfLines={2} style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>
|
|
259
|
+
{item.sousTitre}
|
|
260
|
+
</Text>
|
|
261
|
+
)}
|
|
262
|
+
</View>
|
|
263
|
+
<MaterialIcons name={Platform.OS === 'ios' ? 'arrow-forward-ios' : 'arrow-forward'} size={16} color={Themer.neural03Color} />
|
|
264
|
+
</Pressable>
|
|
265
|
+
);
|
|
266
|
+
|
|
267
|
+
/** Liste de fonctionnalités dans une carte */
|
|
268
|
+
const liste = (items: Fonctionnalite[]) => (
|
|
269
|
+
<Card style={styles.carte}>
|
|
270
|
+
<View style={styles.carteContenu}>{items.map(ligne)}</View>
|
|
271
|
+
</Card>
|
|
272
|
+
);
|
|
273
|
+
|
|
274
|
+
/** Titre de rubrique */
|
|
275
|
+
const titre = (texte: string) => (
|
|
276
|
+
<Text style={[theme.textTheme.displayMedium, styles.titreRubrique, { color: Themer.neural03Color }]}>{texte}</Text>
|
|
277
|
+
);
|
|
278
|
+
|
|
279
|
+
/** Avant toute saisie : raccourcis en pastilles, puis toutes les fonctionnalités groupées par rubrique. */
|
|
280
|
+
const accueil = () => {
|
|
281
|
+
const raccourcis = fonctionnalites.filter((item) => item.raccourci);
|
|
282
|
+
const libelles: Record<FonctionnaliteRubrique, string> = {
|
|
283
|
+
[FonctionnaliteRubrique.paiements]: traductions.searchRubriquePaiements,
|
|
284
|
+
[FonctionnaliteRubrique.abonnements]: traductions.searchRubriqueAbonnements,
|
|
285
|
+
[FonctionnaliteRubrique.servicesBancaires]: traductions.searchRubriqueServicesBancaires,
|
|
286
|
+
[FonctionnaliteRubrique.profil]: traductions.searchRubriqueProfil,
|
|
287
|
+
};
|
|
288
|
+
return (
|
|
289
|
+
<>
|
|
290
|
+
{raccourcis.length > 0 && (
|
|
291
|
+
<>
|
|
292
|
+
{titre(traductions.searchShortcutsTitle)}
|
|
293
|
+
<View style={styles.raccourcis}>
|
|
294
|
+
{raccourcis.map((item) => (
|
|
295
|
+
<Pressable
|
|
296
|
+
key={item.titre}
|
|
297
|
+
accessibilityRole="button"
|
|
298
|
+
onPress={() => fermer(item)}
|
|
299
|
+
style={({ pressed }) => [
|
|
300
|
+
styles.raccourci,
|
|
301
|
+
{ backgroundColor: withAlpha(primaire, pressed ? 0.16 : 0.08), borderColor: withAlpha(primaire, 0.15) },
|
|
302
|
+
]}
|
|
303
|
+
>
|
|
304
|
+
<Image source={item.icon} style={styles.raccourciIcone} tintColor={primaire} contentFit="contain" />
|
|
305
|
+
<Text style={[theme.textTheme.displayMedium, styles.raccourciTexte]}>{item.titre}</Text>
|
|
306
|
+
</Pressable>
|
|
307
|
+
))}
|
|
308
|
+
</View>
|
|
309
|
+
<View style={styles.gap24} />
|
|
310
|
+
</>
|
|
311
|
+
)}
|
|
312
|
+
{Object.values(FonctionnaliteRubrique).map((rubrique) => {
|
|
313
|
+
const items = fonctionnalites.filter((item) => item.rubrique === rubrique);
|
|
314
|
+
if (items.length === 0) return null;
|
|
315
|
+
return (
|
|
316
|
+
<View key={rubrique}>
|
|
317
|
+
{titre(libelles[rubrique])}
|
|
318
|
+
{liste(items)}
|
|
319
|
+
<View style={styles.gap24} />
|
|
320
|
+
</View>
|
|
321
|
+
);
|
|
322
|
+
})}
|
|
323
|
+
</>
|
|
324
|
+
);
|
|
325
|
+
};
|
|
229
326
|
|
|
230
327
|
return (
|
|
231
328
|
<Scaffold
|
|
232
329
|
appBar={
|
|
233
330
|
<AppBar
|
|
234
|
-
title={<Text style={theme.textTheme.headlineMedium}>{traductions.searchTitle}</Text>}
|
|
235
331
|
onBack={() => AppRouter.pop(router)}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
332
|
+
centerTitle={false}
|
|
333
|
+
title={
|
|
334
|
+
// Champ de recherche à la place du titre : loupe à gauche ; à droite, la croix pour effacer (hors voix) et le bouton micro
|
|
335
|
+
<View
|
|
336
|
+
style={[
|
|
337
|
+
styles.champ,
|
|
338
|
+
{
|
|
339
|
+
backgroundColor: theme.cardColor,
|
|
340
|
+
borderColor: actif ? primaire : withAlpha(Themer.neural03Color, 0.2),
|
|
341
|
+
borderWidth: actif ? 1.5 : 1,
|
|
342
|
+
},
|
|
343
|
+
]}
|
|
344
|
+
>
|
|
345
|
+
<MaterialIcons name="search" size={20} color={actif ? primaire : Themer.neural03Color} />
|
|
246
346
|
<TextInput
|
|
247
347
|
value={recherche}
|
|
248
348
|
onChangeText={setRecherche}
|
|
249
349
|
autoFocus
|
|
350
|
+
onFocus={() => setFocus(true)}
|
|
351
|
+
onBlur={() => setFocus(false)}
|
|
250
352
|
style={[theme.textTheme.displayLarge, styles.input]}
|
|
251
353
|
// Le texte d'aide suit l'état de la voix.
|
|
252
354
|
placeholder={
|
|
253
|
-
annonce
|
|
254
|
-
? traductions.searchVoicePrompt
|
|
255
|
-
: ecoute
|
|
256
|
-
? traductions.searchVoiceListening
|
|
257
|
-
: traductions.searchHint
|
|
355
|
+
annonce ? traductions.searchVoicePrompt : ecoute ? traductions.searchVoiceListening : traductions.searchTitle
|
|
258
356
|
}
|
|
259
357
|
placeholderTextColor={Themer.neural03Color}
|
|
260
358
|
returnKeyType="search"
|
|
261
359
|
// « Entrée » ouvre le résultat le plus pertinent.
|
|
262
360
|
onSubmitEditing={() => {
|
|
263
|
-
if (
|
|
264
|
-
AppRouter.pop(router, { value: resultats[0] });
|
|
265
|
-
}
|
|
361
|
+
if (saisie && resultats.length > 0) fermer(resultats[0]);
|
|
266
362
|
}}
|
|
267
363
|
/>
|
|
268
364
|
{recherche.length > 0 && !voixActive && (
|
|
@@ -277,38 +373,51 @@ export function SearchPage({
|
|
|
277
373
|
onPress={() => void basculerEcoute()}
|
|
278
374
|
/>
|
|
279
375
|
</View>
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
<ScrollView keyboardShouldPersistTaps="handled" contentContainerStyle={styles.liste}>
|
|
293
|
-
<MenuActionsWidget items={resultats.map(ligne)} />
|
|
294
|
-
</ScrollView>
|
|
295
|
-
)}
|
|
376
|
+
}
|
|
377
|
+
/>
|
|
378
|
+
}
|
|
379
|
+
>
|
|
380
|
+
<Pressable accessible={false} style={styles.flex} onPress={Keyboard.dismiss}>
|
|
381
|
+
{saisie && resultats.length === 0 ? (
|
|
382
|
+
<View style={styles.vide}>
|
|
383
|
+
<MaterialIcons name="search-off" size={40} color={Themer.neural03Color} />
|
|
384
|
+
<View style={styles.gap12} />
|
|
385
|
+
<Text style={[theme.textTheme.displayMedium, styles.centre, { color: Themer.neural04Color }]}>
|
|
386
|
+
{traductions.searchEmpty(recherche.trim())}
|
|
387
|
+
</Text>
|
|
296
388
|
</View>
|
|
297
|
-
|
|
298
|
-
|
|
389
|
+
) : (
|
|
390
|
+
<ScrollView keyboardShouldPersistTaps="handled" contentContainerStyle={styles.liste}>
|
|
391
|
+
{/* Avant toute saisie : raccourcis puis rubriques */}
|
|
392
|
+
{saisie ? liste(resultats) : accueil()}
|
|
393
|
+
</ScrollView>
|
|
394
|
+
)}
|
|
395
|
+
</Pressable>
|
|
299
396
|
</Scaffold>
|
|
300
397
|
);
|
|
301
398
|
}
|
|
302
399
|
|
|
303
400
|
const styles = StyleSheet.create({
|
|
304
401
|
flex: { flex: 1 },
|
|
305
|
-
gap10: { height: 10 },
|
|
306
402
|
gap12: { height: 12 },
|
|
307
|
-
|
|
308
|
-
champ: { height:
|
|
403
|
+
gap24: { height: 24 },
|
|
404
|
+
champ: { alignSelf: 'stretch', height: 48, borderRadius: 14, flexDirection: 'row', alignItems: 'center', paddingLeft: 12, paddingRight: 4 },
|
|
309
405
|
input: { flex: 1, marginLeft: 8, paddingVertical: 0 },
|
|
310
406
|
effacer: { paddingHorizontal: 6 },
|
|
311
|
-
vide: { paddingTop: 32, alignItems: 'center' },
|
|
407
|
+
vide: { paddingTop: 32, paddingHorizontal: 20, alignItems: 'center' },
|
|
312
408
|
centre: { textAlign: 'center' },
|
|
313
|
-
liste: { paddingBottom: 20 },
|
|
409
|
+
liste: { paddingHorizontal: 20, paddingTop: 12, paddingBottom: 20 },
|
|
410
|
+
titreRubrique: { fontWeight: '700', paddingHorizontal: 4, paddingBottom: 10 },
|
|
411
|
+
raccourcis: { flexDirection: 'row', flexWrap: 'wrap', gap: 8 },
|
|
412
|
+
raccourci: { flexDirection: 'row', alignItems: 'center', paddingLeft: 12, paddingRight: 14, paddingVertical: 9, borderRadius: 999, borderWidth: 1 },
|
|
413
|
+
raccourciIcone: { width: 18, height: 18 },
|
|
414
|
+
raccourciTexte: { marginLeft: 8, fontWeight: '600' },
|
|
415
|
+
carte: { margin: 0 },
|
|
416
|
+
carteContenu: { padding: 6 },
|
|
417
|
+
ligne: { flexDirection: 'row', alignItems: 'center', paddingHorizontal: 8, paddingVertical: 10, borderRadius: 14 },
|
|
418
|
+
pastille: { width: 40, height: 40, borderRadius: 12, alignItems: 'center', justifyContent: 'center' },
|
|
419
|
+
pastilleIcone: { width: 20, height: 20 },
|
|
420
|
+
textes: { flex: 1, marginHorizontal: 14 },
|
|
421
|
+
titreLigne: { fontWeight: '500' },
|
|
422
|
+
gras: { fontWeight: '800' },
|
|
314
423
|
});
|
package/src/modules/subscription/presentation/pages/subscription_create/subscription_create_page.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import { useBloc, useBlocListener } from '../../../../../core/bloc_react';
|
|
|
5
5
|
import { Di } from '../../../../../core/di';
|
|
6
6
|
import { AppRouter, useAppRouter } from '../../../../../core/router';
|
|
7
7
|
import { showModalBottomSheet } from '../../../../../shared/material/overlays';
|
|
8
|
-
import {
|
|
8
|
+
import { Scaffold } from '../../../../../shared/material/scaffold';
|
|
9
9
|
import { Frequence, FrequenceCommand } from '../../../../../shared/models/frequence_command';
|
|
10
10
|
import { CustomLoadingDialog } from '../../../../../shared/widgets/loading_page';
|
|
11
11
|
import { MyPageContainer } from '../../../../../shared/widgets/my_page_container';
|
|
@@ -25,6 +25,8 @@ import { TransactionSendPageError } from '../../../../transactions/presentation/
|
|
|
25
25
|
import { TransactionSendPageSuccess } from '../../../../transactions/presentation/pages/transaction_send/transaction_send_page_succes';
|
|
26
26
|
import { Subscription } from '../../../domain/models/subscription';
|
|
27
27
|
import { SubscriptionCreatePageList } from './subscription_create_page_list';
|
|
28
|
+
import { useAppLocalizations } from '../../../../../l10n/localizations';
|
|
29
|
+
import { ProfileAppBar } from '../../../../profile/presentation/pages/profile_app_bar';
|
|
28
30
|
|
|
29
31
|
/** Souscrire à un abonnement à partir d'un paiement passé (route `subscriptionSubscribe`) */
|
|
30
32
|
export function SubscriptionCreatePage() {
|
|
@@ -92,7 +94,7 @@ export function SubscriptionCreatePage() {
|
|
|
92
94
|
};
|
|
93
95
|
|
|
94
96
|
return (
|
|
95
|
-
<Scaffold appBar={<
|
|
97
|
+
<Scaffold appBar={<ProfileAppBar titre={useAppLocalizations().subscriptionMenuSubscribeTitle} />}>
|
|
96
98
|
<MyPageContainer>
|
|
97
99
|
<View style={styles.flex}>
|
|
98
100
|
<SubscriptionCreatePageList selectTransaction={selectTransaction} />
|
|
@@ -3,7 +3,7 @@ import { StyleSheet, Text, View } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
import { BlocProvider, useCreateBloc } from '../../../../../core/bloc_react';
|
|
5
5
|
import { Di } from '../../../../../core/di';
|
|
6
|
-
import { useTheme } from '../../../../../core/theme';
|
|
6
|
+
import { Themer, useTheme } from '../../../../../core/theme';
|
|
7
7
|
import { useAppLocalizations } from '../../../../../l10n/localizations';
|
|
8
8
|
import { TransactionSens, type Transaction } from '../../../../transactions/domain/models/transaction';
|
|
9
9
|
import { TransactionSearchCommand } from '../../../../transactions/domain/models/transaction_search/transaction_search_command';
|
|
@@ -33,11 +33,11 @@ export function SubscriptionCreatePageList({ selectTransaction }: { selectTransa
|
|
|
33
33
|
return (
|
|
34
34
|
<BlocProvider blocs={[searchBloc]}>
|
|
35
35
|
<View style={styles.flex}>
|
|
36
|
-
{/*
|
|
37
|
-
<Text style={theme.textTheme.titleSmall}>{traductions.subscriptionMenuSubscribeTitle}</Text>
|
|
36
|
+
{/* Sous-titre (titre dans la barre du haut) */}
|
|
38
37
|
<View style={styles.gap8} />
|
|
39
|
-
{
|
|
40
|
-
|
|
38
|
+
<Text style={[theme.textTheme.displaySmall, { color: Themer.neural03Color }]}>
|
|
39
|
+
{traductions.subscriptionMenuSubscribeSubtitle2}
|
|
40
|
+
</Text>
|
|
41
41
|
<View style={styles.gap16} />
|
|
42
42
|
{/* Liste des transactions */}
|
|
43
43
|
<TransactionSearchPageListe
|
|
@@ -116,7 +116,6 @@ export function SubscriptionDetailsPage({
|
|
|
116
116
|
|
|
117
117
|
const editNote = async () => {
|
|
118
118
|
const value = await showModalBottomSheet<string>(router, {
|
|
119
|
-
themed: true,
|
|
120
119
|
builder: () => <SubscriptionDetailsPageNoteSheet note={subscription.motif} />,
|
|
121
120
|
});
|
|
122
121
|
if (value != null && value !== subscription.motif) bloc.add(new SubscriptionDetailsNoteUpdateEvent(value));
|
|
@@ -25,7 +25,6 @@ import { SubscriptionAction, SubscriptionDetailsPageActionsConfirm } from './sub
|
|
|
25
25
|
|
|
26
26
|
function confirm(router: SdkRouter, action: SubscriptionAction, subscription: Subscription): Promise<boolean | undefined> {
|
|
27
27
|
return showModalBottomSheet<boolean>(router, {
|
|
28
|
-
themed: true,
|
|
29
28
|
builder: () => <SubscriptionDetailsPageActionsConfirm action={action} isSubcription={subscription.frequence != null} />,
|
|
30
29
|
});
|
|
31
30
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { Keyboard, ScrollView, StyleSheet, View } from 'react-native';
|
|
4
3
|
|
|
5
4
|
import { AppRouter, useAppRouter } from '../../../../../core/router';
|
|
6
|
-
import { useTheme } from '../../../../../core/theme';
|
|
7
5
|
import { useAppLocalizations } from '../../../../../l10n/localizations';
|
|
8
6
|
import { ElevatedButton } from '../../../../../shared/material/buttons';
|
|
9
7
|
import { CustomTextMultipleInput } from '../../../../../shared/widgets/input_text_multiple';
|
|
10
|
-
import {
|
|
8
|
+
import { SelectionSheet } from '../../../../../shared/widgets/selection';
|
|
11
9
|
import {
|
|
12
10
|
TransactionSendCommandMotif,
|
|
13
11
|
TransactionSendCommandMotifError,
|
|
@@ -15,35 +13,15 @@ import {
|
|
|
15
13
|
|
|
16
14
|
/**
|
|
17
15
|
* Modifier la note de l'abonnement (feuille du bas, se ferme avec la
|
|
18
|
-
* nouvelle note).
|
|
19
|
-
*
|
|
16
|
+
* nouvelle note). La note défile, Enregistrer reste visible au-dessus du
|
|
17
|
+
* clavier.
|
|
20
18
|
*/
|
|
21
19
|
export function SubscriptionDetailsPageNoteSheet({ note }: { note?: string | null }) {
|
|
22
20
|
const traductions = useAppLocalizations();
|
|
23
|
-
const theme = useTheme();
|
|
24
21
|
const router = useAppRouter();
|
|
25
|
-
const insets = useSafeAreaInsets();
|
|
26
|
-
const { height: screenHeight } = useWindowDimensions();
|
|
27
|
-
const maxHeight = screenHeight * 0.7;
|
|
28
22
|
|
|
29
23
|
const [command] = useState(() => new TransactionSendCommandMotif({ value: note ?? undefined }));
|
|
30
24
|
const [, setVersion] = useState(0);
|
|
31
|
-
const [focused, setFocused] = useState(false);
|
|
32
|
-
const [contentHeight, setContentHeight] = useState<number | null>(null);
|
|
33
|
-
const height = useRef(new Animated.Value(0)).current;
|
|
34
|
-
const measured = useRef(false);
|
|
35
|
-
|
|
36
|
-
const naturalHeight = contentHeight == null ? 0 : Math.min(contentHeight, maxHeight);
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
if (contentHeight == null) return;
|
|
39
|
-
const target = focused ? maxHeight : naturalHeight;
|
|
40
|
-
if (!measured.current) {
|
|
41
|
-
measured.current = true;
|
|
42
|
-
height.setValue(target);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
Animated.timing(height, { toValue: target, duration: 300, easing: Easing.inOut(Easing.ease), useNativeDriver: false }).start();
|
|
46
|
-
}, [focused, contentHeight, naturalHeight, maxHeight, height]);
|
|
47
25
|
|
|
48
26
|
const canSave = command.value != null && command.value.length > 0 && command.isValid() && command.value !== note;
|
|
49
27
|
|
|
@@ -53,52 +31,35 @@ export function SubscriptionDetailsPageNoteSheet({ note }: { note?: string | nul
|
|
|
53
31
|
};
|
|
54
32
|
|
|
55
33
|
return (
|
|
56
|
-
<
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
]}
|
|
62
|
-
>
|
|
63
|
-
{/* Avant la mesure du contenu, la feuille prend sa hauteur naturelle (pas de flex) */}
|
|
64
|
-
<Pressable style={contentHeight != null ? styles.flex : null} onPress={Keyboard.dismiss} accessible={false}>
|
|
65
|
-
<MyPageContainer style={contentHeight != null ? null : styles.noFlex}>
|
|
66
|
-
<ScrollView
|
|
67
|
-
keyboardShouldPersistTaps="handled"
|
|
68
|
-
onContentSizeChange={(_w, h) => setContentHeight(h)}
|
|
69
|
-
contentContainerStyle={[styles.content, { paddingBottom: 20 + insets.bottom }]}
|
|
70
|
-
>
|
|
71
|
-
{/* Titre */}
|
|
72
|
-
<Text style={theme.textTheme.headlineLarge}>{traductions.transactionFormMotifLabel}</Text>
|
|
73
|
-
<View style={styles.gap15} />
|
|
34
|
+
<SelectionSheet
|
|
35
|
+
titre={traductions.transactionFormMotifLabel}
|
|
36
|
+
contenu={
|
|
37
|
+
<>
|
|
38
|
+
<ScrollView keyboardShouldPersistTaps="handled" style={styles.defile} contentContainerStyle={styles.content}>
|
|
74
39
|
<CustomTextMultipleInput
|
|
75
40
|
defaultValue={note ?? undefined}
|
|
76
41
|
labelText={traductions.transactionFormMotifHint}
|
|
77
42
|
// Message d'erreur à afficher
|
|
78
43
|
messageError={command.error === TransactionSendCommandMotifError.invalid ? traductions.transactionFormMotifInvalid : null}
|
|
79
|
-
onFocusChange={setFocused}
|
|
80
44
|
onChange={(value) => {
|
|
81
45
|
command.value = value;
|
|
82
46
|
command.isValid();
|
|
83
47
|
setVersion((v) => v + 1);
|
|
84
48
|
}}
|
|
85
49
|
/>
|
|
86
|
-
{/* Bouton */}
|
|
87
|
-
<View style={styles.btn}>
|
|
88
|
-
<ElevatedButton onPress={canSave ? () => saveNote(command.value!) : undefined}>{traductions.btnTextSave}</ElevatedButton>
|
|
89
|
-
</View>
|
|
90
50
|
</ScrollView>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
51
|
+
{/* Enregistrer, toujours visible au-dessus du clavier */}
|
|
52
|
+
<View style={styles.btn}>
|
|
53
|
+
<ElevatedButton onPress={canSave ? () => saveNote(command.value!) : undefined}>{traductions.btnTextSave}</ElevatedButton>
|
|
54
|
+
</View>
|
|
55
|
+
</>
|
|
56
|
+
}
|
|
57
|
+
/>
|
|
94
58
|
);
|
|
95
59
|
}
|
|
96
60
|
|
|
97
61
|
const styles = StyleSheet.create({
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
content: { paddingTop: 20 },
|
|
102
|
-
gap15: { height: 15 },
|
|
103
|
-
btn: { paddingVertical: 16 },
|
|
62
|
+
defile: { flexShrink: 1 },
|
|
63
|
+
content: { paddingHorizontal: 20, paddingTop: 8, paddingBottom: 16 },
|
|
64
|
+
btn: { paddingHorizontal: 20, paddingBottom: 12 },
|
|
104
65
|
});
|
|
@@ -29,7 +29,7 @@ export function SubscriptionListEmptyWidget() {
|
|
|
29
29
|
<Text style={[theme.textTheme.displaySmall, styles.flex]}>{traductions.subscriptionEmptySubTitle}</Text>
|
|
30
30
|
<ElevatedButton
|
|
31
31
|
style={styles.btn}
|
|
32
|
-
onPress={() => void showModalBottomSheet(router, {
|
|
32
|
+
onPress={() => void showModalBottomSheet(router, { builder: () => <SubscriptionMenuWidget /> })}
|
|
33
33
|
>
|
|
34
34
|
{traductions.subscriptionEmptyBtnCreate}
|
|
35
35
|
</ElevatedButton>
|
package/src/modules/subscription/presentation/pages/subscription_list/subscription_list_widget.tsx
CHANGED
|
@@ -36,7 +36,7 @@ export function SubscriptionListWidget() {
|
|
|
36
36
|
if (state instanceof SubscriptionListLoadingState) return <SubscriptionListLoadingWidget />;
|
|
37
37
|
|
|
38
38
|
const { subscriptions, paiementProgramme } = state;
|
|
39
|
-
const openMenu = () => void showModalBottomSheet(router, {
|
|
39
|
+
const openMenu = () => void showModalBottomSheet(router, { builder: () => <SubscriptionMenuWidget /> });
|
|
40
40
|
|
|
41
41
|
const section = (title: string, liste: Subscription[], createFn: () => void) => (
|
|
42
42
|
<View>
|