remove warnings

This commit is contained in:
mohammad
2025-01-06 15:15:01 +03:00
parent d721f6f774
commit 8fd1259f9c
14 changed files with 67 additions and 84 deletions

View File

@ -13,6 +13,7 @@ final class RolesLoadingState extends RolesPermissionState {
@override
List<Object> get props => [];
}
final class UsersLoadingState extends RolesPermissionState {
@override
List<Object> get props => [];
@ -22,6 +23,7 @@ final class RolesLoadedState extends RolesPermissionState {
@override
List<Object> get props => [];
}
final class UsersLoadedState extends RolesPermissionState {
@override
List<Object> get props => [];
@ -68,9 +70,9 @@ final class SosAutomationReportErrorState extends RolesPermissionState {
}
final class ChangeTapStatus extends RolesPermissionState {
bool select = true;
final bool select;
ChangeTapStatus({required this.select});
const ChangeTapStatus({required this.select});
@override
List<Object> get props => [select];

View File

@ -149,8 +149,8 @@ class EditUserModel {
final String createdTime; // e.g. "8:41:43 AM"
final String status; // e.g. "invited"
final String invitedBy; // e.g. "SUPER_ADMIN"
final String phoneNumber; // can be empty
final String jobTitle; // can be empty
final String? phoneNumber; // can be empty
final String? jobTitle; // can be empty
final String roleType; // e.g. "ADMIN"
final List<UserSpaceModel> spaces;

View File

@ -29,7 +29,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
on<GetUserByIdEvent>(getUserById);
on<ToggleNodeExpansion>(_onToggleNodeExpansion);
on<ToggleNodeCheck>(_onToggleNodeCheck);
on<EditInviteUsers>(_editInvitUser);
on<EditInviteUsers>(_editInviteUser);
}
void _validateBasicsStep(ValidateBasicsStep event, Emitter<UsersState> emit) {
@ -88,7 +88,6 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
await CommunitySpaceManagementApi().fetchCommunities();
updatedCommunities = await Future.wait(
communities.map((community) async {
print(community.uuid);
List<SpaceModel> spaces =
await _fetchSpacesForCommunity(community.uuid);
spacesNodes = _buildTreeNodes(spaces);
@ -102,7 +101,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
);
}).toList(),
);
emit(SpacesLoadedState());
emit(const SpacesLoadedState());
return updatedCommunities;
} catch (e) {
emit(ErrorState('Error loading communities and spaces: $e'));
@ -112,7 +111,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
List<TreeNode> _buildTreeNodes(List<SpaceModel> spaces) {
return spaces.map((space) {
List<TreeNode> childNodes =
space.children != null ? _buildTreeNodes(space.children) : [];
space.children.isNotEmpty ? _buildTreeNodes(space.children) : [];
return TreeNode(
uuid: space.uuid!,
title: space.name,
@ -212,7 +211,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
_sendInvitUser(SendInviteUsers event, Emitter<UsersState> emit) async {
try {
emit(UsersLoadingState());
List<String> selectedIds = getSelectedIds(updatedCommunities) ?? [];
List<String> selectedIds = getSelectedIds(updatedCommunities);
bool res = await UserPermissionApi().sendInviteUser(
email: emailController.text,
firstName: firstNameController.text,
@ -249,10 +248,10 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
}
}
_editInvitUser(EditInviteUsers event, Emitter<UsersState> emit) async {
_editInviteUser(EditInviteUsers event, Emitter<UsersState> emit) async {
try {
emit(UsersLoadingState());
List<String> selectedIds = getSelectedIds(updatedCommunities) ?? [];
List<String> selectedIds = getSelectedIds(updatedCommunities);
bool res = await UserPermissionApi().editInviteUser(
userId: event.userId,
firstName: firstNameController.text,
@ -383,8 +382,6 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
// Print all IDs and mark nodes in updatedCommunities
debugPrint('Printing and marking nodes in updatedCommunities:');
_printAndMarkNodes(updatedCommunities, uuidsToMark);
} else {
print('updatedCommunities is empty!');
}
final roleId = roles
.firstWhere((element) =>
@ -397,9 +394,7 @@ class UsersBloc extends Bloc<UsersEvent, UsersState> {
emit(ChangeStatusSteps());
} else {}
} else {}
} catch (e) {
print("Failed to fetch user data: $e");
}
} catch (_) {}
}
void _printAndMarkNodes(List<TreeNode> nodes, List<String> uuidsToMark,

View File

@ -63,31 +63,31 @@ class GetBatchStatus extends UsersEvent {
//isEditUser:widget.userId!=''? false:true
class CheckStepStatus extends UsersEvent {
final int? steps;
bool? isEditUser = false;
CheckStepStatus({this.steps, required this.isEditUser});
final bool? isEditUser;
const CheckStepStatus({this.steps, required this.isEditUser});
@override
List<Object?> get props => [steps];
}
class SearchAnode extends UsersEvent {
List<TreeNode>? nodes;
String? searchTerm;
SearchAnode({this.nodes, this.searchTerm});
final List<TreeNode>? nodes;
final String? searchTerm;
const SearchAnode({this.nodes, this.searchTerm});
@override
List<Object?> get props => [nodes, searchTerm];
}
class SearchPermission extends UsersEvent {
List<PermissionOption>? nodes;
String? searchTerm;
SearchPermission({this.nodes, this.searchTerm});
final List<PermissionOption>? nodes;
final String? searchTerm;
const SearchPermission({this.nodes, this.searchTerm});
@override
List<Object?> get props => [nodes, searchTerm];
}
class SelecteId extends UsersEvent {
List<TreeNode>? nodes;
SelecteId({
class SelectedId extends UsersEvent {
final List<TreeNode>? nodes;
const SelectedId({
this.nodes,
});
@override
@ -95,7 +95,7 @@ class SelecteId extends UsersEvent {
}
class ValidateBasicsStep extends UsersEvent {
ValidateBasicsStep();
const ValidateBasicsStep();
@override
List<Object?> get props => [];
}
@ -116,7 +116,7 @@ class GetUserByIdEvent extends UsersEvent {
class ToggleNodeExpansion extends UsersEvent {
final TreeNode node;
ToggleNodeExpansion({required this.node});
const ToggleNodeExpansion({required this.node});
@override
List<Object?> get props => [node];
@ -125,14 +125,15 @@ class ToggleNodeExpansion extends UsersEvent {
class UpdateNodeCheckStatus extends UsersEvent {
final TreeNode node;
UpdateNodeCheckStatus({required this.node});
const UpdateNodeCheckStatus({required this.node});
@override
List<Object?> get props => [node];
}
class ToggleNodeHighlightEvent extends UsersEvent {
final TreeNode node;
ToggleNodeHighlightEvent(this.node);
const ToggleNodeHighlightEvent(this.node);
@override
List<Object?> get props => [node];
}
@ -155,14 +156,15 @@ class ClearSelectionsEvent extends UsersEvent {
class ToggleNodeCheckEvent extends UsersEvent {
final TreeNode node;
ToggleNodeCheckEvent(this.node);
const ToggleNodeCheckEvent(this.node);
@override
List<Object?> get props => [];
}
class ToggleNodeCheck extends UsersEvent {
final TreeNode node;
ToggleNodeCheck(this.node);
const ToggleNodeCheck(this.node);
@override
List<Object?> get props => [];
}
@ -172,5 +174,3 @@ class EditUserEvent extends UsersEvent {
@override
List<Object?> get props => [];
}

View File

@ -1,5 +1,4 @@
import 'package:equatable/equatable.dart';
import 'package:syncrow_web/pages/roles_and_permission/model/roles_user_model.dart';
import 'package:syncrow_web/pages/roles_and_permission/users_page/add_user_dialog/model/tree_node_model.dart';
sealed class UsersState extends Equatable {
@ -32,7 +31,7 @@ final class SaveState extends UsersState {
}
final class SpacesLoadedState extends UsersState {
SpacesLoadedState();
const SpacesLoadedState();
@override
List<Object> get props => [];
}
@ -58,9 +57,9 @@ final class RolesErrorState extends UsersState {
/// automation reports
final class ChangeTapStatus extends UsersState {
bool select = true;
final bool select;
ChangeTapStatus({required this.select});
const ChangeTapStatus({required this.select});
@override
List<Object> get props => [select];
@ -77,14 +76,16 @@ class BasicsStepInvalidState extends UsersState {
@override
List<Object> get props => [];
}
final class ValidateBasics extends UsersState {
@override
List<Object> get props => [];
}
class UsersLoadedState extends UsersState {
final List<TreeNode> updatedCommunities;
UsersLoadedState({required this.updatedCommunities});
@override
const UsersLoadedState({required this.updatedCommunities});
@override
List<Object> get props => [];
}

View File

@ -16,7 +16,9 @@ class PermissionOption {
factory PermissionOption.fromJson(Map<String, dynamic> json) {
return PermissionOption(
id: json['id'] ?? '',
title: json['title'].toString().toLowerCase().replaceAll("_", " ") ?? '',
title: json['title'] != null
? json['title'].toString().toLowerCase().replaceAll("_", " ")
: '',
isChecked: json['isChecked'] ?? false,
isHighlighted: json['isHighlighted'] ?? false,
subOptions: (json['subOptions'] as List?)

View File

@ -11,8 +11,8 @@ import 'package:syncrow_web/utils/extension/build_context_x.dart';
import 'package:syncrow_web/utils/style.dart';
class BasicsView extends StatelessWidget {
String? userId = '';
BasicsView({super.key, this.userId});
final String? userId;
const BasicsView({super.key, this.userId = ''});
@override
Widget build(BuildContext context) {
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
@ -185,11 +185,12 @@ class BasicsView extends StatelessWidget {
Padding(
padding: const EdgeInsets.all(8.0),
child: TextFormField(
enabled: userId!=''? false:true,
enabled: userId != '' ? false : true,
onChanged: (value) {
Future.delayed(const Duration(milliseconds: 200), () {
_blocRole.add(CheckStepStatus(isEditUser:userId!=''? false:true));
_blocRole.add( ValidateBasicsStep());
_blocRole.add(CheckStepStatus(
isEditUser: userId != '' ? false : true));
_blocRole.add(ValidateBasicsStep());
});
},
controller: _blocRole.emailController,

View File

@ -1,8 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:syncrow_web/utils/color_manager.dart';
import 'package:syncrow_web/utils/constants/assets.dart';
import 'package:syncrow_web/utils/extension/build_context_x.dart';
import 'package:syncrow_web/utils/style.dart';
Future<void> showPopUpFilterMenu({
@ -12,7 +10,6 @@ Future<void> showPopUpFilterMenu({
Function()? cancelButton,
required Map<String, bool> checkboxStates,
required RelativeRect position,
// Function(String)? onTextFieldChanged,
Function()? onOkPressed,
List<String>? list,
}) async {

View File

@ -15,8 +15,6 @@ class RolesAndPermission extends StatelessWidget {
const RolesAndPermission({super.key});
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
final _blocRole = BlocProvider.of<UsersBloc>(context);
return Container(

View File

@ -11,12 +11,10 @@ import 'package:syncrow_web/utils/extension/build_context_x.dart';
import 'package:syncrow_web/utils/style.dart';
class SpacesAccessView extends StatelessWidget {
String? userId = '';
SpacesAccessView({super.key, this.userId});
final String? userId;
const SpacesAccessView({super.key, this.userId = ''});
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return BlocBuilder<UsersBloc, UsersState>(builder: (context, state) {
final _blocRole = BlocProvider.of<UsersBloc>(context);
return Container(

View File

@ -210,7 +210,7 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
final query = event.query.toLowerCase();
final filteredUsers = initialUsers.where((user) {
final fullName = "${user.firstName} ${user.lastName}".toLowerCase();
final email = user.email?.toLowerCase() ?? "";
final email = user.email.toLowerCase() ;
return fullName.contains(query) || email.contains(query);
}).toList();
emit(UsersLoadedState(users: filteredUsers));
@ -224,7 +224,7 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
final startIndex = (pageNumber - 1) * itemsPerPage;
final endIndex = startIndex + itemsPerPage;
if (startIndex >= users.length) {
emit(UsersLoadedState(users: const []));
emit(const UsersLoadedState(users: []));
return;
}
final paginatedUsers = users.sublist(
@ -235,11 +235,11 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
}
void _handlePageChange(ChangePage event, Emitter<UserTableState> emit) {
final itemsPerPage = 10;
const itemsPerPage = 10;
final startIndex = (event.pageNumber - 1) * itemsPerPage;
final endIndex = startIndex + itemsPerPage;
if (startIndex >= users.length) {
emit(UsersLoadedState(users: []));
emit(const UsersLoadedState(users: []));
return;
}
final paginatedUsers = users.sublist(
@ -318,14 +318,3 @@ class UserTableBloc extends Bloc<UserTableEvent, UserTableState> {
emit(UsersLoadedState(users: initialUsers));
}
}
// void _filterOptions(FilterOptionsEvent event, Emitter<UserTableState> emit) {
// try {
// final query = event.query.toLowerCase();
// final filteredOptions = event.fullOptions
// .where((option) => option.toLowerCase().contains(query))
// .toList();
// emit(FilterOptionsState(filteredOptions));
// } catch (e) {
// emit(ErrorState(e.toString()));
// }
// }

View File

@ -26,8 +26,8 @@ final class RolesLoadedState extends UserTableState {
}
final class UsersLoadedState extends UserTableState {
List<RolesUserModel> users = [];
UsersLoadedState({required this.users});
final List<RolesUserModel> users;
const UsersLoadedState({required this.users});
@override
List<Object> get props => [users];
}
@ -73,9 +73,9 @@ final class SosAutomationReportErrorState extends UserTableState {
}
final class ChangeTapStatus extends UserTableState {
bool select = true;
final bool select;
ChangeTapStatus({required this.select});
const ChangeTapStatus({required this.select});
@override
List<Object> get props => [select];
@ -84,7 +84,7 @@ final class ChangeTapStatus extends UserTableState {
class FilterOptionsState extends UserTableState {
final List<String> filteredOptions;
FilterOptionsState(this.filteredOptions);
const FilterOptionsState(this.filteredOptions);
@override
List<Object> get props => [filteredOptions];

View File

@ -412,7 +412,7 @@ class UsersPage extends StatelessWidget {
rows: state.users.map((user) {
return [
Text('${user.firstName} ${user.lastName}'),
Text(user.email ?? ''),
Text(user.email ),
Text(user.jobTitle ?? ''),
Text(user.roleType ?? ''),
Text(user.createdDate ?? ''),
@ -430,11 +430,11 @@ class UsersPage extends StatelessWidget {
userId: user.uuid,
onTap: user.status != "invited"
? () {
final newStatus = user.status == 'active'
? 'disabled'
: user.status == 'disabled'
? 'invited'
: 'active';
// final newStatus = user.status == 'active'
// ? 'disabled'
// : user.status == 'disabled'
// ? 'invited'
// : 'active';
context.read<UserTableBloc>().add(
ChangeUserStatus(
userId: user.uuid,
@ -501,7 +501,7 @@ class UsersPage extends StatelessWidget {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
SizedBox(
width: 500,
child: NumberPagination(
buttonRadius: 10,

View File

@ -131,7 +131,7 @@ class UserPermissionApi {
}
}
Future<EditUserModel> fetchUserById(userUuid) async {
Future<EditUserModel?> fetchUserById(userUuid) async {
final response = await _httpService.get(
path: ApiEndpoints.getUserById.replaceAll("{userUuid}", userUuid),
showServerMessage: true,