feat: Implement privacy and security feature in staff profile, including navigation and module setup
This commit is contained in:
@@ -192,6 +192,20 @@ class StaffProfilePage extends StatelessWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: UiConstants.space6),
|
const SizedBox(height: UiConstants.space6),
|
||||||
|
SectionTitle(
|
||||||
|
i18n.header.title.contains("Perfil") ? "Soporte" : "Support",
|
||||||
|
),
|
||||||
|
ProfileMenuGrid(
|
||||||
|
crossAxisCount: 3,
|
||||||
|
children: [
|
||||||
|
ProfileMenuItem(
|
||||||
|
icon: UiIcons.shield,
|
||||||
|
label: i18n.header.title.contains("Perfil") ? "Privacidad" : "Privacy & Security",
|
||||||
|
onTap: () => Modular.to.toPrivacySecurity(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(height: UiConstants.space6),
|
||||||
SectionTitle(
|
SectionTitle(
|
||||||
i18n.header.title.contains("Perfil") ? "Ajustes" : "Settings",
|
i18n.header.title.contains("Perfil") ? "Ajustes" : "Settings",
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
import 'package:flutter_modular/flutter_modular.dart';
|
|
||||||
|
|
||||||
/// Extension on IModularNavigator for privacy security navigation
|
|
||||||
extension PrivacySecurityNavigator on IModularNavigator {
|
|
||||||
/// Navigate to privacy security page
|
|
||||||
Future<dynamic> toPrivacySecurityPage() {
|
|
||||||
return pushNamed('/privacy-security');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
/// Navigation route paths for privacy security feature
|
|
||||||
class PrivacySecurityPaths {
|
|
||||||
/// Route to privacy security main page
|
|
||||||
static const String privacySecurity = '/privacy-security';
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,16 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_modular/flutter_modular.dart';
|
import 'package:flutter_modular/flutter_modular.dart';
|
||||||
|
import 'package:krow_core/core.dart';
|
||||||
import 'package:krow_data_connect/krow_data_connect.dart';
|
import 'package:krow_data_connect/krow_data_connect.dart';
|
||||||
|
|
||||||
import 'src/data/repositories_impl/privacy_settings_repository_impl.dart';
|
import 'data/repositories_impl/privacy_settings_repository_impl.dart';
|
||||||
import 'src/domain/repositories/privacy_settings_repository_interface.dart';
|
import 'domain/repositories/privacy_settings_repository_interface.dart';
|
||||||
import 'src/domain/usecases/get_privacy_policy_usecase.dart';
|
import 'domain/usecases/get_privacy_policy_usecase.dart';
|
||||||
import 'src/domain/usecases/get_privacy_settings_usecase.dart';
|
import 'domain/usecases/get_privacy_settings_usecase.dart';
|
||||||
import 'src/domain/usecases/get_terms_usecase.dart';
|
import 'domain/usecases/get_terms_usecase.dart';
|
||||||
import 'src/domain/usecases/update_location_sharing_usecase.dart';
|
import 'domain/usecases/update_location_sharing_usecase.dart';
|
||||||
import 'src/presentation/blocs/privacy_security_bloc.dart';
|
import 'presentation/blocs/privacy_security_bloc.dart';
|
||||||
import 'src/presentation/pages/privacy_security_page.dart';
|
import 'presentation/pages/privacy_security_page.dart';
|
||||||
|
|
||||||
/// Module for privacy security feature
|
/// Module for privacy security feature
|
||||||
///
|
///
|
||||||
@@ -17,7 +19,7 @@ import 'src/presentation/pages/privacy_security_page.dart';
|
|||||||
/// - Route definitions delegated to core routing
|
/// - Route definitions delegated to core routing
|
||||||
class PrivacySecurityModule extends Module {
|
class PrivacySecurityModule extends Module {
|
||||||
@override
|
@override
|
||||||
void binds(i) {
|
void binds(Injector i) {
|
||||||
// Repository
|
// Repository
|
||||||
i.addSingleton<PrivacySettingsRepositoryInterface>(
|
i.addSingleton<PrivacySettingsRepositoryInterface>(
|
||||||
() => PrivacySettingsRepositoryImpl(
|
() => PrivacySettingsRepositoryImpl(
|
||||||
@@ -59,12 +61,14 @@ class PrivacySecurityModule extends Module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@override
|
void routes(RouteManager r) {
|
||||||
void routes(r) {
|
|
||||||
// Route is handled by core routing (StaffPaths.privacySecurity)
|
// Route is handled by core routing (StaffPaths.privacySecurity)
|
||||||
r.child(
|
r.child(
|
||||||
'/',
|
StaffPaths.childRoute(
|
||||||
child: (context) => const PrivacySecurityPage(),
|
StaffPaths.privacySecurity,
|
||||||
|
StaffPaths.privacySecurity,
|
||||||
|
),
|
||||||
|
child: (BuildContext context) => const PrivacySecurityPage(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,4 +11,4 @@ export 'src/presentation/widgets/settings_switch_tile_widget.dart';
|
|||||||
export 'src/presentation/widgets/settings_action_tile_widget.dart';
|
export 'src/presentation/widgets/settings_action_tile_widget.dart';
|
||||||
export 'src/presentation/widgets/settings_section_header_widget.dart';
|
export 'src/presentation/widgets/settings_section_header_widget.dart';
|
||||||
export 'src/presentation/widgets/settings_divider_widget.dart';
|
export 'src/presentation/widgets/settings_divider_widget.dart';
|
||||||
export 'staff_privacy_security_module.dart';
|
export 'src/staff_privacy_security_module.dart';
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import 'package:staff_home/staff_home.dart';
|
|||||||
import 'package:staff_main/src/presentation/blocs/staff_main_cubit.dart';
|
import 'package:staff_main/src/presentation/blocs/staff_main_cubit.dart';
|
||||||
import 'package:staff_main/src/presentation/pages/staff_main_page.dart';
|
import 'package:staff_main/src/presentation/pages/staff_main_page.dart';
|
||||||
import 'package:staff_payments/staff_payements.dart';
|
import 'package:staff_payments/staff_payements.dart';
|
||||||
|
import 'package:staff_privacy_security/staff_privacy_security.dart';
|
||||||
import 'package:staff_profile/staff_profile.dart';
|
import 'package:staff_profile/staff_profile.dart';
|
||||||
import 'package:staff_profile_experience/staff_profile_experience.dart';
|
import 'package:staff_profile_experience/staff_profile_experience.dart';
|
||||||
import 'package:staff_profile_info/staff_profile_info.dart';
|
import 'package:staff_profile_info/staff_profile_info.dart';
|
||||||
@@ -93,6 +94,10 @@ class StaffMainModule extends Module {
|
|||||||
StaffPaths.childRoute(StaffPaths.main, StaffPaths.availability),
|
StaffPaths.childRoute(StaffPaths.main, StaffPaths.availability),
|
||||||
module: StaffAvailabilityModule(),
|
module: StaffAvailabilityModule(),
|
||||||
);
|
);
|
||||||
|
r.module(
|
||||||
|
StaffPaths.childRoute(StaffPaths.main, StaffPaths.privacySecurity),
|
||||||
|
module: PrivacySecurityModule(),
|
||||||
|
);
|
||||||
r.module(
|
r.module(
|
||||||
StaffPaths.childRoute(StaffPaths.main, StaffPaths.shiftDetailsRoute),
|
StaffPaths.childRoute(StaffPaths.main, StaffPaths.shiftDetailsRoute),
|
||||||
module: ShiftDetailsModule(),
|
module: ShiftDetailsModule(),
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ dependencies:
|
|||||||
path: ../../../design_system
|
path: ../../../design_system
|
||||||
core_localization:
|
core_localization:
|
||||||
path: ../../../core_localization
|
path: ../../../core_localization
|
||||||
|
krow_core:
|
||||||
|
path: ../../../krow_core
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
staff_home:
|
staff_home:
|
||||||
@@ -52,6 +54,8 @@ dependencies:
|
|||||||
path: ../availability
|
path: ../availability
|
||||||
staff_clock_in:
|
staff_clock_in:
|
||||||
path: ../clock_in
|
path: ../clock_in
|
||||||
|
staff_privacy_security:
|
||||||
|
path: ../profile_sections/settings/privacy_security
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
@@ -1290,6 +1290,13 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.12.1"
|
version: "1.12.1"
|
||||||
|
staff_privacy_security:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
path: "packages/features/staff/profile_sections/settings/privacy_security"
|
||||||
|
relative: true
|
||||||
|
source: path
|
||||||
|
version: "0.0.1"
|
||||||
stream_channel:
|
stream_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
Reference in New Issue
Block a user