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),
|
||||
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(
|
||||
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:krow_core/core.dart';
|
||||
import 'package:krow_data_connect/krow_data_connect.dart';
|
||||
|
||||
import 'src/data/repositories_impl/privacy_settings_repository_impl.dart';
|
||||
import 'src/domain/repositories/privacy_settings_repository_interface.dart';
|
||||
import 'src/domain/usecases/get_privacy_policy_usecase.dart';
|
||||
import 'src/domain/usecases/get_privacy_settings_usecase.dart';
|
||||
import 'src/domain/usecases/get_terms_usecase.dart';
|
||||
import 'src/domain/usecases/update_location_sharing_usecase.dart';
|
||||
import 'src/presentation/blocs/privacy_security_bloc.dart';
|
||||
import 'src/presentation/pages/privacy_security_page.dart';
|
||||
import 'data/repositories_impl/privacy_settings_repository_impl.dart';
|
||||
import 'domain/repositories/privacy_settings_repository_interface.dart';
|
||||
import 'domain/usecases/get_privacy_policy_usecase.dart';
|
||||
import 'domain/usecases/get_privacy_settings_usecase.dart';
|
||||
import 'domain/usecases/get_terms_usecase.dart';
|
||||
import 'domain/usecases/update_location_sharing_usecase.dart';
|
||||
import 'presentation/blocs/privacy_security_bloc.dart';
|
||||
import 'presentation/pages/privacy_security_page.dart';
|
||||
|
||||
/// Module for privacy security feature
|
||||
///
|
||||
@@ -17,7 +19,7 @@ import 'src/presentation/pages/privacy_security_page.dart';
|
||||
/// - Route definitions delegated to core routing
|
||||
class PrivacySecurityModule extends Module {
|
||||
@override
|
||||
void binds(i) {
|
||||
void binds(Injector i) {
|
||||
// Repository
|
||||
i.addSingleton<PrivacySettingsRepositoryInterface>(
|
||||
() => PrivacySettingsRepositoryImpl(
|
||||
@@ -59,12 +61,14 @@ class PrivacySecurityModule extends Module {
|
||||
}
|
||||
|
||||
@override
|
||||
@override
|
||||
void routes(r) {
|
||||
void routes(RouteManager r) {
|
||||
// Route is handled by core routing (StaffPaths.privacySecurity)
|
||||
r.child(
|
||||
'/',
|
||||
child: (context) => const PrivacySecurityPage(),
|
||||
StaffPaths.childRoute(
|
||||
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_section_header_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/pages/staff_main_page.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_experience/staff_profile_experience.dart';
|
||||
import 'package:staff_profile_info/staff_profile_info.dart';
|
||||
@@ -93,6 +94,10 @@ class StaffMainModule extends Module {
|
||||
StaffPaths.childRoute(StaffPaths.main, StaffPaths.availability),
|
||||
module: StaffAvailabilityModule(),
|
||||
);
|
||||
r.module(
|
||||
StaffPaths.childRoute(StaffPaths.main, StaffPaths.privacySecurity),
|
||||
module: PrivacySecurityModule(),
|
||||
);
|
||||
r.module(
|
||||
StaffPaths.childRoute(StaffPaths.main, StaffPaths.shiftDetailsRoute),
|
||||
module: ShiftDetailsModule(),
|
||||
|
||||
@@ -20,6 +20,8 @@ dependencies:
|
||||
path: ../../../design_system
|
||||
core_localization:
|
||||
path: ../../../core_localization
|
||||
krow_core:
|
||||
path: ../../../krow_core
|
||||
|
||||
# Features
|
||||
staff_home:
|
||||
@@ -52,6 +54,8 @@ dependencies:
|
||||
path: ../availability
|
||||
staff_clock_in:
|
||||
path: ../clock_in
|
||||
staff_privacy_security:
|
||||
path: ../profile_sections/settings/privacy_security
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
@@ -1290,6 +1290,13 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
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:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
Reference in New Issue
Block a user