uff
This commit is contained in:
42
lib/features/settings/blocs/settings_cubit.dart
Normal file
42
lib/features/settings/blocs/settings_cubit.dart
Normal file
@@ -0,0 +1,42 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flux/core/blocs/session/session_cubit.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class SettingsState extends Equatable {
|
||||
final bool isSingleUserMode;
|
||||
|
||||
const SettingsState({this.isSingleUserMode = false});
|
||||
|
||||
SettingsState copyWith({bool? isSingleUserMode}) {
|
||||
return SettingsState(
|
||||
isSingleUserMode: isSingleUserMode ?? this.isSingleUserMode,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props => [isSingleUserMode];
|
||||
}
|
||||
|
||||
class SettingsCubit extends Cubit<SettingsState> {
|
||||
final SharedPreferences _prefs = GetIt.I.get<SharedPreferences>();
|
||||
|
||||
SettingsCubit() : super(const SettingsState()) {
|
||||
final bool isSingleUserMode = _prefs.getBool('isSingleUserMode') ?? false;
|
||||
final sessionCubit = GetIt.I.get<SessionCubit>();
|
||||
sessionCubit.setIsSingleUserMode(isSingleUserMode);
|
||||
emit(state.copyWith(isSingleUserMode: isSingleUserMode));
|
||||
}
|
||||
|
||||
void toggleSingleUserMode() {
|
||||
final bool isSingleUserMode = !state.isSingleUserMode;
|
||||
GetIt.I.get<SharedPreferences>().setBool(
|
||||
'isSingleUserMode',
|
||||
isSingleUserMode,
|
||||
);
|
||||
final sessionCubit = GetIt.I.get<SessionCubit>();
|
||||
sessionCubit.setIsSingleUserMode(isSingleUserMode);
|
||||
emit(state.copyWith(isSingleUserMode: !state.isSingleUserMode));
|
||||
}
|
||||
}
|
||||
@@ -4,10 +4,11 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flux/core/blocs/session/session_cubit.dart';
|
||||
import 'package:flux/core/routes/routes.dart';
|
||||
import 'package:flux/core/theme/theme.dart';
|
||||
import 'package:flux/features/settings/blocs/settings_cubit.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
class SettingsView extends StatelessWidget {
|
||||
const SettingsView({super.key});
|
||||
class SettingsScreen extends StatelessWidget {
|
||||
const SettingsScreen({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -24,6 +25,14 @@ class SettingsView extends StatelessWidget {
|
||||
context: context,
|
||||
onTap: () {},
|
||||
),
|
||||
BlocBuilder<SettingsCubit, SettingsState>(
|
||||
builder: (context, state) => CheckboxListTile(
|
||||
value: state.isSingleUserMode,
|
||||
title: const Text('Singolo Utente'),
|
||||
onChanged: (_) =>
|
||||
context.read<SettingsCubit>().toggleSingleUserMode(),
|
||||
),
|
||||
),
|
||||
_settingsTile(
|
||||
title: 'Impostazioni Azienda',
|
||||
icon: Icons.business,
|
||||
Reference in New Issue
Block a user