mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 07:07:19 +00:00
remove warnings
This commit is contained in:
@ -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];
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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 => [];
|
||||
}
|
||||
|
||||
|
||||
|
@ -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 => [];
|
||||
}
|
||||
|
@ -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?)
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
|
@ -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(
|
||||
|
@ -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(
|
||||
|
@ -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()));
|
||||
// }
|
||||
// }
|
@ -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];
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user