padding and text them

This commit is contained in:
mohammad
2024-08-21 16:58:28 +03:00
parent 4b7567a6fe
commit e4f8924e93
11 changed files with 93 additions and 119 deletions

View File

@ -0,0 +1,4 @@
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.00005 0C2.24302 0 0 2.24297 0 4.99995C0 7.75712 2.24302 10.0002 5.00005 10.0002C7.75703 10.0002 10 7.75708 10 4.99995C10 2.24297 7.75703 0 5.00005 0ZM5.00005 9.28343C2.63824 9.28343 0.716757 7.36186 0.716757 4.99995C0.716757 2.63819 2.63824 0.716757 5.00005 0.716757C7.36181 0.716757 9.28324 2.63819 9.28324 4.99995C9.28324 7.36186 7.36181 9.28343 5.00005 9.28343Z" fill="#999999"/>
<path d="M7.57087 4.91629H5.22115V2.34782C5.22115 2.1499 5.06074 1.98944 4.86277 1.98944C4.66485 1.98944 4.50439 2.1499 4.50439 2.34782V5.27467C4.50439 5.47259 4.66485 5.63305 4.86277 5.63305H7.57087C7.76884 5.63305 7.92925 5.47259 7.92925 5.27467C7.92925 5.07675 7.76879 4.91629 7.57087 4.91629Z" fill="#999999"/>
</svg>

After

Width:  |  Height:  |  Size: 813 B

View File

@ -59,7 +59,6 @@ class MyApp extends StatelessWidget {
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), // Set up color scheme colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), // Set up color scheme
useMaterial3: true, // Enable Material 3 useMaterial3: true, // Enable Material 3
), ),
// home: VisitorPasswordDialog()
home:isLoggedIn == 'Success' ? const HomePage() : const LoginPage(), home:isLoggedIn == 'Success' ? const HomePage() : const LoginPage(),
)); ));
} }

View File

@ -125,6 +125,7 @@ class AccessManagementPage extends StatelessWidget {
width: 15, width: 15,
), ),
DateTimeWebWidget( DateTimeWebWidget(
isTime: false,
isRequired: false, isRequired: false,
title: 'Access Time', title: 'Access Time',
size: size, size: size,

View File

@ -143,7 +143,7 @@ class _DynamicTableState extends State<DynamicTable> {
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Text(title, style: const TextStyle(fontWeight: FontWeight.bold)), child: Text(title, style: const TextStyle(fontWeight: FontWeight.w400,fontSize: 13,color: Color(0xFF999999))),
), ),
), ),
); );

View File

@ -37,8 +37,7 @@ class CustomWebTextField extends StatelessWidget {
.bodyMedium! .bodyMedium!
.copyWith(color: Colors.red), .copyWith(color: Colors.red),
), ),
Text(textFieldName, Text(textFieldName, style: Theme.of(context).textTheme.bodySmall!.copyWith(
style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: Colors.black,fontSize: 13),), color: Colors.black,fontSize: 13),),
], ],
), ),

View File

@ -12,6 +12,7 @@ class DateTimeWebWidget extends StatelessWidget {
required this.title, required this.title,
required this.startTime, required this.startTime,
required this.endTime, required this.endTime,
required this.isTime,
required this.firstString, required this.firstString,
required this.secondString, required this.secondString,
}); });
@ -19,6 +20,7 @@ class DateTimeWebWidget extends StatelessWidget {
final Size size; final Size size;
final String title; final String title;
final bool isRequired; final bool isRequired;
final bool isTime;
final String firstString; final String firstString;
final String secondString; final String secondString;
final Function()? startTime; final Function()? startTime;
@ -66,6 +68,8 @@ class DateTimeWebWidget extends StatelessWidget {
child: Text(secondString, style: Theme.of(context).textTheme.bodySmall!.copyWith( child: Text(secondString, style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: ColorsManager.grayColor,fontSize: 12,fontWeight: FontWeight.w400),)), color: ColorsManager.grayColor,fontSize: 12,fontWeight: FontWeight.w400),)),
SvgPicture.asset( SvgPicture.asset(
isTime?
Assets.timeIcon:
Assets.calendarIcon, Assets.calendarIcon,
), ),
], ],

View File

@ -262,12 +262,10 @@ class VisitorPasswordBloc
Emitter<VisitorPasswordState> emit) async { Emitter<VisitorPasswordState> emit) async {
try { try {
generate7DigitNumber(); generate7DigitNumber();
// emit(DeviceLoaded());
await AccessMangApi().postOffLineOneTime( await AccessMangApi().postOffLineOneTime(
email: event.email, email: event.email,
devicesUuid: selectedDevices, devicesUuid: selectedDevices,
passwordName: event.passwordName); passwordName: event.passwordName);
// emit(TableLoaded(data));
} catch (e) { } catch (e) {
emit(FailedState(e.toString())); emit(FailedState(e.toString()));
} }
@ -278,14 +276,14 @@ class VisitorPasswordBloc
Emitter<VisitorPasswordState> emit) async { Emitter<VisitorPasswordState> emit) async {
try { try {
generate7DigitNumber(); generate7DigitNumber();
// emit(DeviceLoaded());
await AccessMangApi().postOffLineMultipleTime( await AccessMangApi().postOffLineMultipleTime(
email: event.email, email: event.email,
devicesUuid: selectedDevices, devicesUuid: selectedDevices,
passwordName: event.passwordName, passwordName: event.passwordName,
invalidTime: event.invalidTime, invalidTime: expirationTimeTimeStamp.toString(),
effectiveTime: event.effectiveTime); effectiveTime: effectiveTimeTimeStamp.toString(),
// emit(TableLoaded(data));
);
} catch (e) { } catch (e) {
emit(FailedState(e.toString())); emit(FailedState(e.toString()));
} }
@ -335,8 +333,6 @@ class VisitorPasswordBloc
return matchesDeviceName && matchesDeviceId; return matchesDeviceName && matchesDeviceId;
}).toList(); }).toList();
// emit(TableLoaded(filteredData));
add(UpdateFilteredDevicesEvent(filteredData)); add(UpdateFilteredDevicesEvent(filteredData));
} }
@ -414,11 +410,6 @@ class VisitorPasswordBloc
expirationTimeTimeStamp = selectedTimestamp; expirationTimeTimeStamp = selectedTimestamp;
} }
} }
print('effectiveTime=$effectiveTime');
print('expirationTime=$expirationTime');
print('expirationTimeTimeStamp=$expirationTimeTimeStamp');
print('effectiveTimeTimeStamp=$effectiveTimeTimeStamp');
emit(TimeSelectedState()); emit(TimeSelectedState());
} }
} }

View File

@ -55,7 +55,11 @@ class AddDeviceDialog extends StatelessWidget {
), ),
), ),
SizedBox(width: 10,), SizedBox(width: 10,),
Text('Only online accessible devices can be added'), Text('Only online accessible devices can be added',
style: Theme.of(context).textTheme.bodySmall!.copyWith(
fontWeight: FontWeight.w400,
fontSize: 12,
color: ColorsManager.grayColor),),
], ],
) )
), ),

View File

@ -14,28 +14,29 @@ class RepeatWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size; Size size = MediaQuery.of(context).size;
return BlocBuilder<VisitorPasswordBloc, VisitorPasswordState>( return BlocBuilder<VisitorPasswordBloc, VisitorPasswordState>(
builder: (context, state) { builder: (context, state) {
final visitorBloc = BlocProvider.of<VisitorPasswordBloc>(context); final visitorBloc = BlocProvider.of<VisitorPasswordBloc>(context);
return Column( return Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Container( Container(
width: size.width * 0.8, height: size.height * 0.05, // Adjust height as needed
height: size.height * 0.06, // Adjust height as needed child: Wrap(
child: ListView(
scrollDirection: Axis.horizontal,
children: visitorBloc.days.map((day) { children: visitorBloc.days.map((day) {
return Container( return Container(
width: size.width* 0.09, width: size.width * 0.05,
child: CheckboxListTile( child: CheckboxListTile(
contentPadding: EdgeInsets.zero,
title: Text( title: Text(
day['day']!, day['day']!,
style: TextStyle( style: TextStyle(
fontSize: 18, fontSize: 12,
color: visitorBloc.selectedDays.contains(day['key']) color: visitorBloc.selectedDays.contains(day['key'])
? Colors.black ? Colors.black
: ColorsManager.grayColor, : ColorsManager.blackColor,
), ),
), ),
value: visitorBloc.selectedDays.contains(day['key']), value: visitorBloc.selectedDays.contains(day['key']),
@ -52,27 +53,23 @@ class RepeatWidget extends StatelessWidget {
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: DateTimeWebWidget( child: DateTimeWebWidget(
isTime: true,
isRequired: false, isRequired: false,
title: '', title: '',
size: size, size: size,
endTime: () { endTime: () {
print('sadasd'); visitorBloc.add(SelectTimeEvent(
visitorBloc.add(SelectTimeEvent( context: context,
context: context, isEffective: false));
isEffective: false)); Future.delayed(const Duration(milliseconds: 500), () {
new Future.delayed(const Duration(milliseconds: 500), () {
visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true)); visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true));
}); });
}, },
startTime: () { startTime: () {
new Future.delayed(const Duration(milliseconds: 500), () { Future.delayed(const Duration(milliseconds: 500), () {
visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true)); visitorBloc.add(ChangeTimeEvent(val: visitorBloc.endTime, isStartEndTime: true));
}); });
visitorBloc.add(SelectTimeEvent(context: context, isEffective: true)); visitorBloc.add(SelectTimeEvent(context: context, isEffective: true));
}, },
firstString:visitorBloc.effectiveTime , firstString:visitorBloc.effectiveTime ,
secondString: visitorBloc.expirationTime , secondString: visitorBloc.expirationTime ,

View File

@ -245,10 +245,10 @@ class VisitorPasswordDialog extends StatelessWidget {
height: 20, height: 20,
), ),
if ((visitorBloc.usageFrequencySelected != 'One-Time' || if ((visitorBloc.usageFrequencySelected != 'One-Time' ||
visitorBloc.accessTypeSelected != visitorBloc.accessTypeSelected != 'Offline Password') &&
'Offline Password') && (visitorBloc.usageFrequencySelected != ''))
(visitorBloc.usageFrequencySelected != ''))
DateTimeWebWidget( DateTimeWebWidget(
isTime: false,
isRequired: true, isRequired: true,
title: 'Access Period', title: 'Access Period',
size: size, size: size,
@ -282,42 +282,44 @@ class VisitorPasswordDialog extends StatelessWidget {
.bodyMedium! .bodyMedium!
.copyWith(color: Colors.red), .copyWith(color: Colors.red),
), ),
Text('Access Devices', style: Theme.of(context).textTheme.bodySmall!.copyWith( Text('Access Devices',
style: Theme.of(context).textTheme.bodySmall!.copyWith(
color: Colors.black,fontSize: 13),), color: Colors.black,fontSize: 13),),
], ],
), ),
Text( Text(
'Within the validity period, each device can be unlocked only once.',style: Theme.of(context).textTheme.bodySmall!.copyWith( 'Within the validity period, each device can be unlocked only once.',
style: Theme.of(context).textTheme.bodySmall!.copyWith(
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: ColorsManager.grayColor,fontSize: 9),), color: ColorsManager.grayColor,fontSize: 9),),
const SizedBox( const SizedBox(
height: 20, height: 20,
), ),
if (visitorBloc.usageFrequencySelected == if (visitorBloc.usageFrequencySelected == 'Periodic' &&
'Periodic' && visitorBloc.accessTypeSelected == 'Online Password')
visitorBloc.accessTypeSelected ==
'Online Password')
SizedBox( SizedBox(
width: 100, width: 100,
child: ListTile( child: Column(
contentPadding: EdgeInsets.zero, children: [
leading: const Text('Repeat'), Text('Repeat',
trailing: Transform.scale( style: Theme.of(context).textTheme.bodySmall!.copyWith(
scale: .8, color: Colors.black,fontSize: 13),),
child: CupertinoSwitch( Transform.scale(
value: visitorBloc.repeat, scale: .8,
onChanged: (value) { child: CupertinoSwitch(
visitorBloc.add(ToggleRepeatEvent()); value: visitorBloc.repeat,
}, onChanged: (value) {
applyTheme: true, visitorBloc.add(ToggleRepeatEvent());
), },
), applyTheme: true,
),
),
],
), ),
), ),
if (visitorBloc.usageFrequencySelected == if (visitorBloc.usageFrequencySelected == 'Periodic' &&
'Periodic' && visitorBloc.accessTypeSelected == 'Online Password')
visitorBloc.accessTypeSelected ==
'Online Password')
isRepeat ? const RepeatWidget() : const SizedBox(), isRepeat ? const RepeatWidget() : const SizedBox(),
Container( Container(
decoration: containerDecoration, decoration: containerDecoration,
@ -406,70 +408,40 @@ class VisitorPasswordDialog extends StatelessWidget {
child: DefaultButton( child: DefaultButton(
borderRadius: 8, borderRadius: 8,
onPressed: () { onPressed: () {
if (visitorBloc.usageFrequencySelected == if (visitorBloc.usageFrequencySelected == 'One-Time' &&
'One-Time' && visitorBloc.accessTypeSelected == 'Online Password') {
visitorBloc.accessTypeSelected ==
'Online Password') {
visitorBloc.add( visitorBloc.add(
OnlineOneTimePasswordEvent( OnlineOneTimePasswordEvent(
context: context, context: context,
passwordName: visitorBloc passwordName: visitorBloc.userNameController.text,
.userNameController.text, email: visitorBloc.emailController.text));
email: visitorBloc } else if (visitorBloc.usageFrequencySelected == 'Periodic' &&
.emailController.text)); visitorBloc.accessTypeSelected == 'Online Password') {
} else if (visitorBloc visitorBloc.add(OnlineMultipleTimePasswordEvent(
.usageFrequencySelected == passwordName: visitorBloc.userNameController.text,
'Periodic' && email: visitorBloc.emailController.text,
visitorBloc.accessTypeSelected == effectiveTime: visitorBloc.effectiveTimeTimeStamp.toString(),
'Online Password') { invalidTime: visitorBloc.expirationTimeTimeStamp.toString()));
visitorBloc.add( } else if (visitorBloc.usageFrequencySelected == 'One-Time' &&
OnlineMultipleTimePasswordEvent( visitorBloc.accessTypeSelected == 'Offline Password') {
passwordName: visitorBloc.add(OfflineOneTimePasswordEvent(
visitorBloc passwordName: visitorBloc.userNameController.text,
.userNameController email: visitorBloc.emailController.text,
.text,
email:
visitorBloc
.emailController.text,
effectiveTime: visitorBloc
.effectiveTimeTimeStamp
.toString(),
invalidTime: visitorBloc
.expirationTimeTimeStamp
.toString()));
} else if (visitorBloc
.usageFrequencySelected ==
'One-Time' &&
visitorBloc.accessTypeSelected ==
'Offline Password') {
visitorBloc
.add(OfflineOneTimePasswordEvent(
passwordName: visitorBloc
.userNameController.text,
email:
visitorBloc.emailController.text,
)); ));
} else if (visitorBloc } else if (visitorBloc.usageFrequencySelected == 'Periodic' &&
.usageFrequencySelected == visitorBloc.accessTypeSelected == 'Offline Password') {
'Periodic' &&
visitorBloc.accessTypeSelected ==
'Offline Password') {
visitorBloc.add( visitorBloc.add(
OfflineMultipleTimePasswordEvent( OfflineMultipleTimePasswordEvent(
passwordName: visitorBloc passwordName: visitorBloc.userNameController.text,
.userNameController.text, email: visitorBloc.emailController.text,
email: visitorBloc effectiveTime: visitorBloc.effectiveTimeTimeStamp.toString(),
.emailController.text, invalidTime: visitorBloc.expirationTimeTimeStamp.toString()));
effectiveTime: visitorBloc
.effectiveTimeTimeStamp
.toString(),
invalidTime: visitorBloc
.expirationTimeTimeStamp
.toString()));
} }
}, },
child: const Text( child: Text('Ok',
'Ok', style: Theme.of(context).textTheme.bodySmall!.copyWith(
fontWeight: FontWeight.w400,
color: ColorsManager.whiteColors,fontSize: 16),
), ),
), ),
), ),
@ -531,7 +503,9 @@ class VisitorPasswordDialog extends StatelessWidget {
} }
}, },
borderRadius: 8, borderRadius: 8,
child: Text('Ok'), child: Text('Ok', style: Theme.of(context).textTheme.bodySmall!.copyWith(
fontWeight: FontWeight.w400,
color: ColorsManager.whiteColors,fontSize: 16),),
), ),
), ),
], ],

View File

@ -25,4 +25,5 @@ class Assets {
static const String assetIcon = "assets/images/asset_icon.svg"; static const String assetIcon = "assets/images/asset_icon.svg";
static const String calendarIcon = "assets/images/calendar_icon.svg"; static const String calendarIcon = "assets/images/calendar_icon.svg";
static const String deviceNoteIcon = "assets/images/device_note.svg"; static const String deviceNoteIcon = "assets/images/device_note.svg";
static const String timeIcon = "assets/images/time_icon.svg";
} }