mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2025-07-16 10:06:16 +00:00
fix bugs on create password
This commit is contained in:
@ -147,6 +147,7 @@ class SmartDoorBloc extends Bloc<SmartDoorEvent, SmartDoorState> {
|
|||||||
final TimeOfDay? timePicked = await showTimePicker(
|
final TimeOfDay? timePicked = await showTimePicker(
|
||||||
context: event.context,
|
context: event.context,
|
||||||
initialTime: TimeOfDay.now(),
|
initialTime: TimeOfDay.now(),
|
||||||
|
|
||||||
);
|
);
|
||||||
if (timePicked != null) {
|
if (timePicked != null) {
|
||||||
final selectedDateTime = DateTime(
|
final selectedDateTime = DateTime(
|
||||||
@ -156,23 +157,28 @@ class SmartDoorBloc extends Bloc<SmartDoorEvent, SmartDoorState> {
|
|||||||
timePicked.hour,
|
timePicked.hour,
|
||||||
timePicked.minute,
|
timePicked.minute,
|
||||||
);
|
);
|
||||||
|
// Convert selectedDateTime to a timestamp without seconds and milliseconds
|
||||||
|
final selectedTimestamp = DateTime(
|
||||||
|
selectedDateTime.year,
|
||||||
|
selectedDateTime.month,
|
||||||
|
selectedDateTime.day,
|
||||||
|
selectedDateTime.hour,
|
||||||
|
selectedDateTime.minute,
|
||||||
|
).millisecondsSinceEpoch ~/ 1000; // Divide by 1000 to remove milliseconds
|
||||||
if (event.isEffective) {
|
if (event.isEffective) {
|
||||||
if (expirationTimeTimeStamp != null &&
|
if (expirationTimeTimeStamp != null &&
|
||||||
selectedDateTime.millisecondsSinceEpoch >
|
selectedTimestamp > expirationTimeTimeStamp!) {
|
||||||
expirationTimeTimeStamp!) {
|
|
||||||
CustomSnackBar.displaySnackBar('Effective Time cannot be later than Expiration Time.');
|
CustomSnackBar.displaySnackBar('Effective Time cannot be later than Expiration Time.');
|
||||||
} else {
|
} else {
|
||||||
effectiveTime = selectedDateTime.toString();
|
effectiveTime = selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds
|
||||||
effectiveTimeTimeStamp = selectedDateTime.millisecondsSinceEpoch;
|
effectiveTimeTimeStamp = selectedTimestamp;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (effectiveTimeTimeStamp != null &&
|
if (effectiveTimeTimeStamp != null && selectedTimestamp < effectiveTimeTimeStamp!) {
|
||||||
selectedDateTime.millisecondsSinceEpoch <
|
|
||||||
effectiveTimeTimeStamp!) {
|
|
||||||
CustomSnackBar.displaySnackBar('Expiration Time cannot be earlier than Effective Time.');
|
CustomSnackBar.displaySnackBar('Expiration Time cannot be earlier than Effective Time.');
|
||||||
} else {
|
} else {
|
||||||
expirationTime = selectedDateTime.toString();
|
expirationTime = selectedDateTime.toString().split('.').first; // Remove seconds and milliseconds
|
||||||
expirationTimeTimeStamp = selectedDateTime.millisecondsSinceEpoch;
|
expirationTimeTimeStamp = selectedTimestamp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
emit(TimeSelectedState());
|
emit(TimeSelectedState());
|
||||||
|
@ -146,11 +146,10 @@ class CreateTemporaryPassword extends StatelessWidget {
|
|||||||
child: TextFormField(
|
child: TextFormField(
|
||||||
controller:
|
controller:
|
||||||
BlocProvider.of<SmartDoorBloc>(context).passwordNameController,
|
BlocProvider.of<SmartDoorBloc>(context).passwordNameController,
|
||||||
decoration: const InputDecoration(
|
decoration: const InputDecoration(hintText: 'Enter The Name'),
|
||||||
labelText: 'Enter The Name'),
|
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
const Divider(color:Color(0xffEBEBEB),),
|
const Divider(color:ColorsManager.graysColor,),
|
||||||
ListTile(
|
ListTile(
|
||||||
contentPadding: EdgeInsets.zero,
|
contentPadding: EdgeInsets.zero,
|
||||||
leading: const BodyMedium(
|
leading: const BodyMedium(
|
||||||
@ -169,7 +168,7 @@ class CreateTemporaryPassword extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
const Divider(color:Color(0xffEBEBEB),),
|
const Divider(color:ColorsManager.graysColor,),
|
||||||
ListTile(
|
ListTile(
|
||||||
contentPadding: EdgeInsets.zero,
|
contentPadding: EdgeInsets.zero,
|
||||||
leading: const BodyMedium(
|
leading: const BodyMedium(
|
||||||
@ -183,9 +182,6 @@ class CreateTemporaryPassword extends StatelessWidget {
|
|||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
BlocProvider.of<SmartDoorBloc>(context)..add(SelectTimeEvent(context: context, isEffective: false));
|
BlocProvider.of<SmartDoorBloc>(context)..add(SelectTimeEvent(context: context, isEffective: false));
|
||||||
// BlocProvider.of<SmartDoorBloc>(context)
|
|
||||||
// .selectTime(context,
|
|
||||||
// isEffective: false);
|
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
BlocProvider.of<SmartDoorBloc>(context)
|
BlocProvider.of<SmartDoorBloc>(context)
|
||||||
@ -239,60 +235,56 @@ class CreateTemporaryPassword extends StatelessWidget {
|
|||||||
onTap: () {
|
onTap: () {
|
||||||
BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: true));
|
BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: true));
|
||||||
},
|
},
|
||||||
child: BodyMedium(text: 'Start',fontColor:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime==false? Colors.black:Colors.blue,fontSize: 18,),
|
child: BodyMedium(text: 'Start',
|
||||||
|
fontColor: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime==false?
|
||||||
|
Colors.black:Colors.blue,fontSize: 18,),
|
||||||
),
|
),
|
||||||
|
|
||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: false));
|
BlocProvider.of<SmartDoorBloc>(context).add(const SetStartEndTimeEvent(val: false));
|
||||||
|
},
|
||||||
},
|
child:BodyMedium(text: 'End',
|
||||||
child: BodyMedium(text: 'End',fontColor:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime? Colors.black:Colors.blue,fontSize: 18,),
|
fontColor:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime?
|
||||||
|
Colors.black:Colors.blue,fontSize: 18,),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const Divider(color:Color(0xffEBEBEB),),
|
const Divider(color:ColorsManager.graysColor,),
|
||||||
Container(
|
Container(
|
||||||
height: 80,
|
height: 110,
|
||||||
child:
|
child:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime?
|
||||||
Container(
|
TimePickerSpinner(
|
||||||
height: 90,
|
time: BlocProvider.of<SmartDoorBloc>(context).startTime,
|
||||||
child:BlocProvider.of<SmartDoorBloc>(context).isStartEndTime? TimePickerSpinner(
|
is24HourMode: false,
|
||||||
time:
|
itemHeight: 40,
|
||||||
BlocProvider.of<SmartDoorBloc>(context).startTime,
|
normalTextStyle: const TextStyle(
|
||||||
|
color: Colors.grey,
|
||||||
|
fontSize: 24,
|
||||||
|
),
|
||||||
|
highlightedTextStyle: const TextStyle(
|
||||||
|
fontSize: 30, color: Colors.blue),
|
||||||
|
onTimeChange: (time) {
|
||||||
|
BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime));
|
||||||
|
},
|
||||||
|
): Container(
|
||||||
|
child: TimePickerSpinner(
|
||||||
|
time: BlocProvider.of<SmartDoorBloc>(context).endTime,
|
||||||
is24HourMode: false,
|
is24HourMode: false,
|
||||||
itemHeight: 40,
|
itemHeight: 40,
|
||||||
normalTextStyle: const TextStyle(
|
normalTextStyle: const TextStyle(
|
||||||
|
color: Colors.grey,
|
||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
),
|
),
|
||||||
highlightedTextStyle: const TextStyle(
|
highlightedTextStyle: const TextStyle(
|
||||||
fontSize: 30, color: Colors.blue),
|
fontSize: 30, color: Colors.blue),
|
||||||
onTimeChange: (time) {
|
onTimeChange: (time) {
|
||||||
|
|
||||||
// BlocProvider.of<SmartDoorBloc>(context).changeTime(time, BlocProvider.of<SmartDoorBloc>(context).isStartEndTime);
|
|
||||||
BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime));
|
BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime));
|
||||||
},
|
},
|
||||||
): Container(
|
|
||||||
child: TimePickerSpinner(
|
|
||||||
time: BlocProvider.of<SmartDoorBloc>(context).endTime,
|
|
||||||
is24HourMode: false,
|
|
||||||
itemHeight: 40,
|
|
||||||
normalTextStyle: const TextStyle(
|
|
||||||
fontSize: 24,
|
|
||||||
),
|
|
||||||
highlightedTextStyle: const TextStyle(
|
|
||||||
fontSize: 30, color: Colors.blue),
|
|
||||||
onTimeChange: (time) {
|
|
||||||
BlocProvider.of<SmartDoorBloc>(context).add(ChangeTimeEvent(val: time, isStartEndTime: BlocProvider.of<SmartDoorBloc>(context).isStartEndTime));
|
|
||||||
|
|
||||||
// BlocProvider.of<SmartDoorBloc>(context).changeTime(time, BlocProvider.of<SmartDoorBloc>(context).isStartEndTime);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
),
|
),
|
||||||
const Divider(color:Color(0xffEBEBEB),),
|
const Divider(color:ColorsManager.graysColor,),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
SelectWeekDays(
|
SelectWeekDays(
|
||||||
width: MediaQuery.of(context).size.width / 1,
|
width: MediaQuery.of(context).size.width / 1,
|
||||||
|
@ -96,7 +96,7 @@ class TemporaryPasswordPage extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
const Divider( ),
|
const Divider(color:ColorsManager.graysColor,),
|
||||||
ListTile(
|
ListTile(
|
||||||
contentPadding: EdgeInsets.zero,
|
contentPadding: EdgeInsets.zero,
|
||||||
leading: SvgPicture.asset(
|
leading: SvgPicture.asset(
|
||||||
|
@ -22,4 +22,5 @@ abstract class ColorsManager {
|
|||||||
static const Color blackColor = Color(0xFF000000);
|
static const Color blackColor = Color(0xFF000000);
|
||||||
static const Color lightGreen = Color(0xFF00FF0A);
|
static const Color lightGreen = Color(0xFF00FF0A);
|
||||||
static const Color grayColor = Color(0xFF999999);
|
static const Color grayColor = Color(0xFF999999);
|
||||||
|
static const Color graysColor = Color(0xffEBEBEB);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user