Untitled
unknown
dart
a year ago
28 kB
12
Indexable
Widget buildNotesUI() {
final String _name = customerController.selectedCustomer?.personalInfo!.firstName != null && (customerController.selectedCustomer?.personalInfo?.firstName!.isNotEmpty ?? false) ? "${customerController.selectedCustomer?.personalInfo?.firstName} ${customerController.selectedCustomer?.personalInfo!.lastName}" : tr(Keys.unNamedClient);
return
customerController.selectedCustomerNotes!.isEmpty
?
Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset(AppImages.searchlgIcon),
Padding(
padding: const EdgeInsets.only(top: 18),
child: Text(
tr(Keys.nothingyet),
style: NewAppTheme.textTheme.bodySmall?.copyWith(
fontSize: SizeConstants.fontExtraSmall,
fontWeight: FontWeight.w400,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor2,
),
),
)
],
)
: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(top: AppConstant.padding_24),
child: SizedBox(
width: 380,
child: CustomSlidingSegmentedControl<NotesSegmentType>(
initialValue: NotesSegmentType.all,
isStretch: true,
children: {
NotesSegmentType.all: Text(
tr(Keys.all).capitalizeFirst(),
textAlign: TextAlign.center,
style: NewAppTheme.textTheme.bodyMedium?.copyWith(
fontSize: SizeConstants.fontExtraSmall,
fontWeight: FontWeight.w400,
color: NewAppTheme.xF4000000,
),
),
NotesSegmentType.fromsalon: Text(
tr(Keys.fromsalon).capitalizeFirst(),
textAlign: TextAlign.center,
style: NewAppTheme.textTheme.bodyMedium?.copyWith(
fontSize: SizeConstants.fontExtraSmall,
fontWeight: FontWeight.w400,
color: NewAppTheme.xF4000000,
),
),
NotesSegmentType.fromclients: Text(
tr(Keys.fromclient).capitalizeFirst(),
textAlign: TextAlign.center,
style: NewAppTheme.textTheme.bodyMedium?.copyWith(
fontSize: SizeConstants.fontExtraSmall,
fontWeight: FontWeight.w400,
color: NewAppTheme.xF4000000,
),
),
},
innerPadding: const EdgeInsets.all(4),
decoration: BoxDecoration(
color: NewAppTheme.white5,
border: Border.all(color: NewAppTheme.xFFEAECF0),
borderRadius: BorderRadius.circular(AppConstant.borderRadius_8),
),
thumbDecoration: BoxDecoration(
color: NewAppTheme.xFFFFFFFF,
borderRadius: BorderRadius.circular(06),
),
onValueChanged: (v) {
// if (v == NotesSegmentType.all) {
// customerController.setCustomerNotes(val: '-1');
// } else if (v == NotesSegmentType.fromsalon) {
// customerController.setCustomerNotes(val: '1');
// } else if (v == NotesSegmentType.fromclients) {
// customerController.setCustomerNotes(val: '2');
// }
},
),
),
),
Padding(
padding: const EdgeInsets.only(top: AppConstant.padding_24),
child: LayoutBuilder(builder: (context, constraints) {
double widgetWidth = constraints.maxWidth;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Text(
'${customerController.selectedCustomerNotes!.length} ${tr(Keys.notes).capitalizeFirst()}',
style: NewAppTheme.textTheme.labelSmall?.copyWith(
fontSize: SizeConstants.fontSmall,
fontWeight: FontWeight.w600,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor,
),
),
SizedBox(
width: 243,
),
GestureDetector(
onTap: () {
showCupertinoModalPopup(
context: context,
builder: (context) => AddPopAlertWidget(
onDeleted: () {},
controller: customerController.noteController,
isUploadImage: false,
buttonName1: '${tr(Keys.capcancel)}',
buttonName2: '${tr(Keys.save)}'.capitalizeFirst(),
button1onTap: () {
Navigator.pop(context);
},
button2onTap: customerController.noteController.text.isNotEmpty && customerController.selectedCustomer != null
? () async {
await customerController.saveNote(customerController.selectedCustomer!);
setState(() {});
}
: null,
));
},
child: Container(
height: AppConstant.height_40,
width: 90,
alignment: Alignment.center,
decoration: BoxDecoration(
color: NewAppTheme.xFFF5F5F5,
borderRadius: BorderRadius.circular(AppConstant.borderRadius_8),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Icon(
Icons.add,
color: NewAppTheme.x921E2527,
),
Padding(
padding: const EdgeInsets.only(left: 8),
child: Text(
tr(Keys.add.capitalizeFirst()),
style: NewAppTheme.textTheme.labelSmall?.copyWith(
fontSize: SizeConstants.fontSmall,
fontWeight: FontWeight.w600,
color: NewAppTheme.xF4000000,
),
),
),
],
),
),
),
],
),
SizedBox(
height: 24.h,
),
ListView.builder(
itemCount: customerController.selectedCustomerNotes?.length,
shrinkWrap: true,
physics: const ScrollPhysics(),
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.only(bottom: 32),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: 380,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(AppConstant.borderRadius_8),
color:
// customerController.selectedCustomerNotes?[index]. ??
NewAppTheme.xFFF8F8F8,
),
child: Padding(
padding: const EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
SvgPicture.asset(
AppImages.fileicon,
colorFilter: ColorFilter.mode(
// notesModl[index].imageColor ??
Color(0x661E2527),
BlendMode.srcIn),
),
Padding(
padding: const EdgeInsets.only(left: AppConstant.padding_12),
child: Text(
"by " + "${customerController.isNoteCreatedBySalon(customerController.selectedCustomerNotes![index]) ? "Salon" : _name}",
style: NewAppTheme.textTheme.labelSmall?.copyWith(
fontSize: SizeConstants.fontSmall4,
fontWeight: FontWeight.w600,
color: NewAppTheme.xF4000000,
),
),
),
const Spacer(),
PopupMenuButton<int>(
icon: SvgPicture.asset(AppImages.moreIcon),
itemBuilder: (context) => [
PopupMenuItem(
onTap: () {
// setState(() {
// editMode[index] != null ?
// : editMode[index] = true ;
// });
},
value: 1,
child: GestureDetector(
onTap: () {
// setState(() {
// editMode[index] = false;
// });
},
child: Row(
children: [
Icon(
Icons.edit,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor,
),
const SizedBox(
width: AppConstant.width_10,
),
Text(
tr(Keys.edit.capitalizeFirst()),
style: NewAppTheme.textTheme.titleMedium?.copyWith(
fontSize: SizeConstants.fontSmall2,
fontWeight: FontWeight.w400,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor,
),
),
],
),
),
),
PopupMenuItem(
onTap: () {
showCupertinoModalPopup(
context: context,
builder: (context) => PopAlertWidget(
title: '${tr(Keys.deleteNoteTitle)}?',
subTitle: '${tr(Keys.deleteNoteHint)}',
buttonName1: '${tr(Keys.capcancel)}',
buttonName2: '${tr(Keys.capDelete)}',
button1onTap: () {
Navigator.pop(context);
},
),
);
},
value: 2,
child: Row(
children: [
SvgPicture.asset(
height: 20,
width: 20,
AppImages.deleteicon,
colorFilter: ColorFilter.mode(Theme.of(context).extension<CustomColors>()!.defultTextColor, BlendMode.srcIn),
),
const SizedBox(
width: AppConstant.width_10,
),
Text(
tr(Keys.delete.capitalizeFirst()),
style: NewAppTheme.textTheme.titleMedium?.copyWith(
fontSize: SizeConstants.fontSmall2,
fontWeight: FontWeight.w400,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor,
),
)
],
),
),
],
offset: const Offset(0, 40),
color: Theme.of(context).colorScheme.onSecondary,
elevation: 0,
),
],
),
buildTextFieldRow(
380 - 25,
'',
TextEditingController(text: 'I’m planning on changing color dramatically. Added my current hair and what I want'),
index,
notesModel[index].isEditMode,
),
(notesModel[index].hairImage ?? '').isEmpty
? Container()
: Wrap(
// runSpacing: 8,
// spacing: 8,
children: notesModel
.map((item) => Chip(
side: BorderSide(
color: NewAppTheme.xFFF8F8F8,
),
elevation: 0,
padding: EdgeInsets.all(8),
backgroundColor: NewAppTheme.xFFF8F8F8,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(0),
),
deleteIcon: notesModel[index].isEditMode == true
? Container()
: Icon(
Icons.close,
color: NewAppTheme.x661E2527,
),
onDeleted: () {},
deleteIconColor: NewAppTheme.x661E2527,
label: Text(
notesModel[index].imageName ?? '',
style: NewAppTheme.textTheme.bodySmall?.copyWith(
fontSize: SizeConstants.fontSmall2,
fontWeight: FontWeight.w400,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor2,
),
),
avatar: CachedNetworkImage(
height: 18.h,
width: 18.h,
imageUrl: notesModel[index].hairImage ?? '',
placeholder: (context, url) => CircularProgressIndicator(),
errorWidget: (context, url, error) => Icon(Icons.error),
),
))
.toList(),
),
notesModel[index].isEditMode == true
? Container()
: Row(
children: [
const Spacer(),
GestureDetector(
onTap: () {
setState(() {
notesModel[index].isEditMode = true;
});
},
child: Container(
height: 32,
width: 86,
alignment: Alignment.center,
decoration: BoxDecoration(
color: NewAppTheme.xFFFFFFFF,
border: Border.all(color: NewAppTheme.xFFD0D5DD),
borderRadius: BorderRadius.circular(6),
),
child: Text(
tr(Keys.cancel.capitalizeFirst()),
style: NewAppTheme.textTheme.labelSmall?.copyWith(
fontSize: SizeConstants.fontSmall,
fontWeight: FontWeight.w600,
color: NewAppTheme.xF4000000,
),
),
),
),
const SizedBox(
width: AppConstant.width_16,
),
Container(
height: 32,
width: 65,
alignment: Alignment.center,
decoration: BoxDecoration(
color: NewAppTheme.xFFFF6400,
borderRadius: BorderRadius.circular(6),
),
child: Text(
Keys.save,
style: NewAppTheme.textTheme.labelSmall?.copyWith(
fontSize: SizeConstants.fontSmall2,
fontWeight: FontWeight.w600,
color: NewAppTheme.xFFFFFFFF,
),
),
),
],
),
],
),
),
),
Padding(
padding: const EdgeInsets.only(top: 6),
child: Row(
children: [
Container(
height: 40,
width: 3.w,
decoration: BoxDecoration(color: notesModel[index].lineColor, borderRadius: const BorderRadius.only(topLeft: Radius.circular(4), bottomLeft: Radius.circular(4))),
),
Container(
width: 377,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(bottomRight: Radius.circular(4), topRight: Radius.circular(4)),
color: notesModel[index].bg2Color,
),
child: Padding(
padding: const EdgeInsets.all(12),
child: Column(
children: [
Row(
children: [
Text(
notesModel[index].name ?? '',
style: NewAppTheme.textTheme.bodySmall?.copyWith(
fontSize: SizeConstants.fontSmall2,
fontWeight: FontWeight.w400,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor2,
),
),
const Spacer(),
Text(
notesModel[index].dateTime ?? '',
style: NewAppTheme.textTheme.bodySmall?.copyWith(
fontSize: SizeConstants.fontSmall2,
fontWeight: FontWeight.w400,
color: Theme.of(context).extension<CustomColors>()!.defultTextColor2,
),
)
],
)
],
),
),
),
],
),
),
],
),
);
},
),
],
);
}),
),
],
),
);
}Editor is loading...
Leave a Comment