@ -1,5 +1,4 @@
import ' dart:collection ' ;
import ' dart:convert ' ;
import ' package:easy_localization/easy_localization.dart ' ;
import ' package:flutter/cupertino.dart ' ;
@ -33,16 +32,8 @@ class DelegateSheet extends StatefulWidget {
VoidCallback callBackFunc ;
List < NotificationGetRespondAttributesList > getNotificationRespondAttributes ;
DelegateSheet ( {
super . key ,
required this . title ,
required this . apiMode ,
this . notificationID ,
this . actionHistoryList ,
this . wFHistory ,
required this . callBackFunc ,
this . getNotificationRespondAttributes = const < NotificationGetRespondAttributesList > [ ] ,
} ) ;
DelegateSheet (
{ required this . title , required this . apiMode , this . notificationID , this . actionHistoryList , this . wFHistory , required this . callBackFunc , this . getNotificationRespondAttributes = const [ ] } ) ;
@ override
State < DelegateSheet > createState ( ) = > _DelegateSheetState ( ) ;
@ -55,8 +46,8 @@ class _DelegateSheetState extends State<DelegateSheet> {
String ? selectedFavLetter ;
String selectedType = " Workflow " ;
String inputRes = " " ;
List < String > ? favLetters ;
List < GetFavoriteReplacements > ? favUsersList ;
List < GetFavoriteReplacements > ? filteredFavUsersList = < GetFavoriteReplacements > [ ] ;
List < ReplacementList > ? replacementList ;
bool isImageLoaded = false ;
@ -66,14 +57,14 @@ class _DelegateSheetState extends State<DelegateSheet> {
super . initState ( ) ;
if ( widget . wFHistory ! = null ) {
widget . wFHistory = widget . wFHistory ! . reversed . toList ( ) ;
Set < String ? > ids = widget . wFHistory ! . map ( ( WFHistory e ) = > e . employeeID ) . toSet ( ) ;
widget . wFHistory ! . retainWhere ( ( WFHistory x) = > ids . remove ( x . employeeID ) ) ;
var ids = widget . wFHistory ! . map ( ( e ) = > e . employeeID ) . toSet ( ) ;
widget . wFHistory ! . retainWhere ( ( x) = > ids . remove ( x . employeeID ) ) ;
}
if ( widget . actionHistoryList ! = null ) {
widget . actionHistoryList = widget . actionHistoryList ! . reversed . toList ( ) ;
Set < String ? > ids = widget . actionHistoryList ! . map ( ( GetActionHistoryList e ) = > e . uSERNAME ) . toSet ( ) ;
widget . actionHistoryList ! . retainWhere ( ( GetActionHistoryList x) = > ids . remove ( x . uSERNAME ) ) ;
var ids = widget . actionHistoryList ! . map ( ( e ) = > e . uSERNAME ) . toSet ( ) ;
widget . actionHistoryList ! . retainWhere ( ( x) = > ids . remove ( x . uSERNAME ) ) ;
}
}
@ -82,96 +73,36 @@ class _DelegateSheetState extends State<DelegateSheet> {
super . dispose ( ) ;
}
Future < void > fetchFavUsers ( { bool isNeedLoading = true } ) async {
favUsersList = < GetFavoriteReplacements > [ ] ;
filteredFavUsersList = < GetFavoriteReplacements > [ ] ;
Future fetchFavLetters ( { bool isNeedLoading = true } ) async {
favLetters = [ ] ;
if ( isNeedLoading ) Utils . showLoading ( context ) ;
try {
List < GetFavoriteReplacements > ? favList = await WorkListApiClient ( ) . getFavoriteReplacementWithoutImage ( ) ;
favUsersList = favList ;
if ( favUsersList ! = null & & favUsersList ! . isNotEmpty ) {
favUsersList ! . sort ( ( GetFavoriteReplacements a , GetFavoriteReplacements b ) = > ( a . employeeDisplayName ? ? ' ' ) . toLowerCase ( ) . compareTo ( ( b . employeeDisplayName ? ? ' ' ) . toLowerCase ( ) ) ) ;
filteredFavUsersList = favUsersList ;
if ( isNeedLoading ) Utils . hideLoading ( context ) ;
setState ( ( ) { } ) ;
_fetchAndAttachUserImages ( ) ;
} else {
if ( isNeedLoading ) Utils . hideLoading ( context ) ;
setState ( ( ) { } ) ;
}
} catch ( e ) {
List < String > result = [ ] ;
favList ! . forEach ( ( element ) {
result . add ( element . employeeDisplayName ! [ 0 ] ) ;
} ) ;
favLetters = LinkedHashSet < String > . from ( result ) . toList ( ) ;
if ( isNeedLoading ) Utils . hideLoading ( context ) ;
setState ( ( ) { } ) ;
}
setState ( ( ) {
favLetters ! . sort ( ( a , b ) {
return a . toLowerCase ( ) . compareTo ( b . toLowerCase ( ) ) ;
} ) ;
} ) ;
return null ;
}
Future < void > _fetchAndAttachUserImages ( ) async {
try {
List < GetFavoriteReplacements > ? tempList = await WorkListApiClient ( ) . getFavoriteReplacementWithImageNew ( " " ) ;
if ( tempList ! = null & & tempList . isNotEmpty & & favUsersList ! = null ) {
for ( GetFavoriteReplacements element in favUsersList ! ) {
for ( GetFavoriteReplacements element2 in tempList ) {
if ( element . userName = = element2 . userName & & element2 . employeeImage ! = null & & element2 . employeeImage ! . isNotEmpty ) {
element . employeeImage = element2 . employeeImage ;
}
}
}
filteredFavUsersList = favUsersList ;
Future fetchFavUsersList ( { bool isNeedLoading = true } ) async {
if ( isNeedLoading ) Utils . showLoading ( context ) ;
favUsersList = await WorkListApiClient ( ) . getFavoriteReplacementWithImage ( selectedFavLetter ? ? " " ) ;
if ( isNeedLoading ) Utils . hideLoading ( context ) ;
setState ( ( ) { } ) ;
fetchFavUsersListNew ( isNeedLoading: false ) ;
return null ;
}
} catch ( e ) { }
}
/ / Future < void > fetchFavUsers ( { bool isNeedLoading = true } ) async {
/ / favUsersList = < GetFavoriteReplacements > [ ] ;
/ / if ( isNeedLoading ) Utils . showLoading ( context ) ;
/ /
/ / try {
/ / List < GetFavoriteReplacements > ? favList = await WorkListApiClient ( ) . getFavoriteReplacementWithoutImage ( ) ;
/ / favUsersList = favList ;
/ /
/ / if ( favUsersList ! = null & & favUsersList ! . isNotEmpty ) {
/ / setState ( ( ) {
/ / favUsersList ! . sort ( ( GetFavoriteReplacements a , GetFavoriteReplacements b ) = > ( a . employeeDisplayName ? ? ' ' ) . toLowerCase ( ) . compareTo ( ( b . employeeDisplayName ? ? ' ' ) . toLowerCase ( ) ) ) ;
/ / } ) ;
/ / if ( isNeedLoading ) Utils . hideLoading ( context ) ;
/ /
/ / List < GetFavoriteReplacements > ? tempList = await WorkListApiClient ( ) . getFavoriteReplacementWithImageNew ( " " ) ;
/ / if ( tempList ! = null & & tempList . isNotEmpty ) {
/ / for ( GetFavoriteReplacements element in favUsersList ! ) {
/ / for ( GetFavoriteReplacements element2 in tempList ) {
/ / if ( element . userName = = element2 . userName ) {
/ / if ( element2 . employeeImage ! = null & & element2 . employeeImage ! . isNotEmpty ) {
/ / element . employeeImage = element2 . employeeImage ;
/ / }
/ / }
/ / }
/ / }
/ / setState ( ( ) { } ) ;
/ / }
/ / }
/ / } catch ( e ) {
/ / / / if ( isNeedLoading ) Utils . hideLoading ( context ) ;
/ / }
/ / }
/ / Future fetchFavUsersList ( { bool isNeedLoading = true } ) async {
/ / if ( isNeedLoading ) Utils . showLoading ( context ) ;
/ / favUsersList = await WorkListApiClient ( ) . getFavoriteReplacementWithImage ( selectedFavLetter ? ? " " ) ;
/ / if ( isNeedLoading ) Utils . hideLoading ( context ) ;
/ / setState ( ( ) { } ) ;
/ / fetchFavUsersListNew ( isNeedLoading: false ) ;
/ / return null ;
/ / }
Future fetchFavUsersListNew ( { bool isNeedLoading = true } ) async {
if ( isNeedLoading ) Utils . showLoading ( context ) ;
f ilteredF avUsersList = await WorkListApiClient ( ) . getFavoriteReplacementWithImageNew ( selectedFavLetter ? ? " " ) ;
favUsersList = await WorkListApiClient ( ) . getFavoriteReplacementWithImageNew ( selectedFavLetter ? ? " " ) ;
if ( isNeedLoading ) Utils . hideLoading ( context ) ;
setState ( ( ) {
isImageLoaded = true ;
@ -181,10 +112,18 @@ class _DelegateSheetState extends State<DelegateSheet> {
void fetchChangeFav ( { required String email , required String employeName , required String image , required String userName , bool isFav = false , bool isNeedToRefresh = false } ) async {
Utils . showLoading ( context ) ;
GenericResponseModel model = await WorkListApiClient ( ) . changeFavoriteReplacements ( email: email , employeName: employeName , image: image , userName: userName , isFav: isFav ) ;
favLetters = null ;
selectedFavLetter = null ;
GenericResponseModel model = await WorkListApiClient ( ) . changeFavoriteReplacements (
email: email ,
employeName: employeName ,
image: image ,
userName: userName ,
isFav: isFav ,
) ;
if ( isNeedToRefresh ) {
await fetchFavUsers ( isNeedLoading: false ) ;
/ / if ( favUsersList ! = null ) await fetchFavUsersList ( isNeedLoading: false ) ;
await fetchFav Lett ers( isNeedLoading: false ) ;
if ( favLetters ! = null ) await fetchFavUsersList ( isNeedLoading: false ) ;
}
Utils . hideLoading ( context ) ;
@ -198,58 +137,44 @@ class _DelegateSheetState extends State<DelegateSheet> {
userName: selectedType = = " Employee Name " ? inputRes : " " ,
email: selectedType = = " Employee Email " ? inputRes : " " ,
) ;
if ( isNeedLoading ) Utils . hideLoading ( context ) ;
setState ( ( ) { } ) ;
return null ;
}
Future < void > searchFavUser ( ) async {
if ( favUsersList ! = null & & favUsersList ! . isNotEmpty ) {
/ / if ( inputRes . length > 0 ) {
filteredFavUsersList =
favUsersList ! . where ( ( GetFavoriteReplacements element ) {
String query = inputRes . toLowerCase ( ) ;
return ( element . employeeDisplayName ! = null & & element . employeeDisplayName ! . toLowerCase ( ) . startsWith ( query ) ) | |
( element . userName ! = null & & element . userName ! . toLowerCase ( ) . contains ( query ) ) | |
( element . emailAddress ! = null & & element . emailAddress ! . toLowerCase ( ) . contains ( query ) ) ;
} ) . toList ( ) ;
/ / } else {
/ / filteredFavUsersList = favUsersList ;
/ / }
} else {
filteredFavUsersList = < GetFavoriteReplacements > [ ] ;
}
setState ( ( ) { } ) ;
}
@ override
Widget build ( BuildContext context ) {
return SizedBox (
return Container (
width: double . infinity ,
height: MediaQuery . of ( context ) . size . height - 80 ,
child: Column (
children: < Widget > [
children: [
Expanded (
child: SingleChildScrollView (
child: Padding (
padding: const EdgeInsets . all ( 21 ) ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: < Widget > [
children: [
widget . title . toText24 ( isBold: true ) ,
21. height ,
LocaleKeys . search . tr ( ) . toText16 ( ) ,
11. height ,
Column (
crossAxisAlignment: CrossAxisAlignment . end ,
children: < Widget > [
children: [
Container (
padding: const EdgeInsets . only ( left: 8 , right: 4 , top: 6 , bottom: 6 ) ,
decoration: BoxDecoration ( borderRadius: BorderRadius . circular ( 15 ) , color: Colors . transparent , border: Border . all ( color: const Color ( 0xffefefef ) , width: 1 ) ) ,
padding: EdgeInsets . only ( left: 8 , right: 4 , top: 6 , bottom: 6 ) ,
decoration: BoxDecoration (
borderRadius: BorderRadius . circular ( 15 ) ,
color: Colors . transparent ,
border: Border . all (
color: Color ( 0xffefefef ) ,
width: 1 ,
) ,
) ,
child: Row (
children: < Widget > [
children: [
Expanded (
child: InputWidget (
" Search By " + selectedType ,
@ -260,18 +185,29 @@ class _DelegateSheetState extends State<DelegateSheet> {
verticalPadding: 3 ,
isInputTypeNum: selectedType = = " Employee ID " ? true : false ,
isEnable: isNeedEnableTextField ,
onChange: ( String v ) {
onChange: ( v ) {
inputRes = v ;
if ( selectedType = = " Favorites " ) {
searchFavUser ( ) ;
}
} ,
) ,
) ,
Container ( height: 36 , width: 1 , color: const Color ( 0xffE5E5E5 ) ) ,
Container (
padding: const EdgeInsets . all ( 8 ) ,
child: Row ( children: < Widget > [ selectedType . toText12 ( ) , 4. width , const Icon ( Icons . keyboard_arrow_down , color: Colors . black , size: 16 ) ] ) ,
height: 36 ,
width: 1 ,
color: Color ( 0xffE5E5E5 ) ,
) ,
Container (
padding: EdgeInsets . all ( 8 ) ,
child: Row (
children: [
selectedType . toText12 ( ) ,
4. width ,
const Icon (
Icons . keyboard_arrow_down ,
color: Colors . black ,
size: 16 ,
) ,
] ,
) ,
) . onPress ( ( ) {
showMyBottomSheet (
context ,
@ -283,17 +219,19 @@ class _DelegateSheetState extends State<DelegateSheet> {
if ( value = = " Workflow " ) {
setState ( ( ) {
isNeedEnableTextField = false ;
/ / selectedFavLetter = null ;
filteredFavUsersList = null ;
selectedFavLetter = null ;
favLetters = null ;
favUsersList = null ;
} ) ;
} else if ( value = = " Favorites " ) {
isNeedEnableTextField = tru e;
fetchFav Us ers( ) ;
isNeedEnableTextField = fals e;
fetchFav Lett ers( ) ;
} else {
setState ( ( ) {
isNeedEnableTextField = true ;
/ / selectedFavLetter = null ;
filteredFavUsersList = null ;
selectedFavLetter = null ;
favLetters = null ;
favUsersList = null ;
} ) ;
}
} ,
@ -303,105 +241,143 @@ class _DelegateSheetState extends State<DelegateSheet> {
] ,
) ,
) ,
if ( isNeedEnableTextField & & selectedType ! = " Favorites " )
if ( isNeedEnableTextField )
TextButton (
onPressed: ( ) {
fetchUserByInput ( ) ;
} ,
child: const Text ( " Search " , style: TextStyle ( color: Colors . blue , decoration: TextDecoration . underline ) ) ,
child: const Text (
" Search " ,
style: TextStyle (
color: Colors . blue ,
decoration: TextDecoration . underline ,
) ,
) ,
)
] ,
) ,
if ( ! isNeedEnableTextField ) 12. height ,
Row (
children: < Widget > [
children: [
Expanded (
child: SizedBox (
child: Container (
width: double . infinity ,
child: selectedFavLetter = = null & & favLetters ! = null
? Container (
width: double . infinity ,
child:
/ / selectedFavLetter = = null & & favLetters ! = null
/ / ? Container ( width: double . infinity , alignment: Alignment . center , child: " Please select letter to see Fav results " . toText12 ( ) )
/ / :
filteredFavUsersList ! = null & & selectedType = = " Favorites "
alignment: Alignment . center ,
child: " Please select letter to see Fav results " . toText12 ( ) ,
)
: favUsersList ! = null
? ListView . separated (
itemBuilder: ( BuildContext context, int index ) {
return showFavUserItem ( f ilteredF avUsersList! [ index ] ) ;
itemBuilder: ( context, index ) {
return showFavUserItem ( f avUsersList! [ index ] ) ;
} ,
separatorBuilder: ( BuildContext context , int index ) {
return Container ( color: MyColors . borderColor , width: double . infinity , height: 1 , margin: const EdgeInsets . only ( top: 8 , bottom: 8 ) ) . onPress ( ( ) { } ) ;
separatorBuilder: ( context , index ) {
return Container (
color: MyColors . borderColor ,
width: double . infinity ,
height: 1 ,
margin: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
) . onPress ( ( ) { } ) ;
} ,
physics: const NeverScrollableScrollPhysics ( ) ,
physics: NeverScrollableScrollPhysics ( ) ,
shrinkWrap: true ,
itemCount: filteredFavUsersList ! . length ,
padding: const EdgeInsets . only ( top: 8 , bottom: 8 ) ,
itemCount: f avUsersList! . length ,
padding: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
)
: isNeedEnableTextField & & replacementList = = null
? Container ( width: double . infinity , alignment: Alignment . center , child: " Search User " . toText12 ( ) )
: isNeedEnableTextField & & replacementList ! . isEmpty
? Container ( width: double . infinity , alignment: Alignment . center , child: " No Data Found " . toText12 ( ) )
? Container (
width: double . infinity ,
alignment: Alignment . center ,
child: " Search User " . toText12 ( ) ,
)
: isNeedEnableTextField & & replacementList ! . length = = 0
? Container (
width: double . infinity ,
alignment: Alignment . center ,
child: " No Data Found " . toText12 ( ) ,
)
: isNeedEnableTextField
? ListView . separated (
itemBuilder: ( BuildContext context , int index ) {
itemBuilder: ( context, index ) {
return showInputUserItem ( replacementList ! [ index ] ) ;
} ,
separatorBuilder: ( BuildContext context , int index ) {
return Container ( color: MyColors . borderE3Color , width: double . infinity , height: 1 , margin: const EdgeInsets . only ( top: 8 , bottom: 8 ) ) ;
separatorBuilder: ( context , index ) {
return Container (
color: MyColors . borderE3Color ,
width: double . infinity ,
height: 1 ,
margin: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
) ;
} ,
physics: const NeverScrollableScrollPhysics ( ) ,
physics: NeverScrollableScrollPhysics ( ) ,
shrinkWrap: true ,
itemCount: replacementList ! . length ,
padding: const EdgeInsets . only ( top: 8 , bottom: 8 ) ,
padding: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
)
: ( widget . wFHistory ! = null
? ListView . separated (
itemBuilder: ( BuildContext context, int index ) {
itemBuilder: ( context, index ) {
return showItgItem ( widget . wFHistory ! [ index ] ) ;
} ,
separatorBuilder: ( BuildContext context , int index ) {
return Container ( color: MyColors . borderE3Color , width: double . infinity , height: 1 , margin: const EdgeInsets . only ( top: 8 , bottom: 8 ) ) ;
separatorBuilder: ( context , index ) {
return Container (
color: MyColors . borderE3Color ,
width: double . infinity ,
height: 1 ,
margin: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
) ;
} ,
physics: const NeverScrollableScrollPhysics ( ) ,
physics: NeverScrollableScrollPhysics ( ) ,
shrinkWrap: true ,
itemCount: widget . wFHistory ! . length ,
padding: const EdgeInsets . only ( top: 8 , bottom: 8 ) ,
padding: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
)
: ListView . separated (
itemBuilder: ( BuildContext context, int index ) {
itemBuilder: ( context, index ) {
return showItem ( widget . actionHistoryList ! [ index ] ) ;
} ,
separatorBuilder: ( BuildContext context , int index ) {
return Container ( color: MyColors . borderE3Color , width: double . infinity , height: 1 , margin: const EdgeInsets . only ( top: 8 , bottom: 8 ) ) ;
separatorBuilder: ( context , index ) {
return Container (
color: MyColors . borderE3Color ,
width: double . infinity ,
height: 1 ,
margin: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
) ;
} ,
physics: const NeverScrollableScrollPhysics ( ) ,
physics: NeverScrollableScrollPhysics ( ) ,
shrinkWrap: true ,
itemCount: widget . actionHistoryList ! . length ,
padding: const EdgeInsets . only ( top: 8 , bottom: 8 ) ,
padding: EdgeInsets . only ( top: 8 , bottom: 8 ) ,
) ) ,
) ,
) ,
/ / if ( favLetters ! = null )
/ / SizedBox (
/ / width: 30 ,
/ / / / color: Colors . red ,
/ / child: ListView . separated (
/ / itemBuilder: ( BuildContext context , int index ) {
/ / return Container (
/ / padding: const EdgeInsets . all ( 8 ) ,
/ / alignment: Alignment . center ,
/ / child: favLetters ! [ index ] . toText14 ( color: selectedFavLetter = = favLetters ! [ index ] ? MyColors . gradiantStartColor : Colors . black ) ,
/ / ) . onPress ( ( ) {
/ / selectedFavLetter = favLetters ! [ index ] . toUpperCase ( ) ;
/ / fetchFavUsersList ( ) ;
/ / } ) ;
/ / } ,
/ / separatorBuilder: ( BuildContext context , int index ) {
/ / return const SizedBox ( height: 0 ) ;
/ / } ,
/ / physics: const NeverScrollableScrollPhysics ( ) ,
/ / shrinkWrap: true ,
/ / itemCount: favLetters ! . length ,
/ / ) ,
/ / ) ,
if ( favLetters ! = null )
Container (
width: 30 ,
/ / color: Colors . red ,
child: ListView . separated (
itemBuilder: ( context , index ) {
return Container (
padding: EdgeInsets . all ( 8 ) ,
alignment: Alignment . center ,
child: favLetters ! [ index ] . toText14 ( color: selectedFavLetter = = favLetters ! [ index ] ? MyColors . gradiantStartColor : Colors . black ) ,
) . onPress ( ( ) {
selectedFavLetter = favLetters ! [ index ] . toUpperCase ( ) ;
fetchFavUsersList ( ) ;
} ) ;
} ,
separatorBuilder: ( context , index ) {
return SizedBox (
height: 0 ,
) ;
} ,
physics: NeverScrollableScrollPhysics ( ) ,
shrinkWrap: true ,
itemCount: favLetters ! . length ,
) ,
) ,
] ,
) ,
] ,
@ -409,15 +385,22 @@ class _DelegateSheetState extends State<DelegateSheet> {
) ,
) ,
) ,
Container ( width: double . infinity , height: 1 , color: MyColors . borderColor ) ,
Container (
width: double . infinity ,
height: 1 ,
color: MyColors . borderColor ,
) ,
DefaultButton (
" Cancel " ,
( ) {
Navigator . pop ( context ) ;
} ,
textColor: Colors . black ,
colors: const < Color > [ Color ( 0xffE6E6E6 ) , Color ( 0xffE6E6E6 ) ] ,
) . insideContainer ,
colors: [
Color ( 0xffE6E6E6 ) ,
Color ( 0xffE6E6E6 ) ,
] ,
) . insideContainer
] ,
) ,
) ;
@ -427,8 +410,7 @@ class _DelegateSheetState extends State<DelegateSheet> {
return InkWell (
onTap: ( ) {
Navigator . pop ( context ) ;
showMyBottomSheet (
context ,
showMyBottomSheet ( context ,
callBackFunc: widget . callBackFunc ,
child: SelectedItemSheet (
" Comment " ,
@ -437,12 +419,16 @@ class _DelegateSheetState extends State<DelegateSheet> {
notificationID: widget . notificationID ,
isITGRequest: widget . wFHistory ! = null ,
getNotificationRespondAttributes: widget . getNotificationRespondAttributes ,
) ,
) ;
) ) ;
} ,
child: Row (
children: < Widget > [
CircularAvatar ( url: actionHistory . eMPLOYEEIMAGE ? ? " " , height: 30 , width: 30 , isImageBase64: true ) ,
children: [
CircularAvatar (
url: actionHistory . eMPLOYEEIMAGE ? ? " " ,
height: 30 ,
width: 30 ,
isImageBase64: true ,
) ,
9. width ,
( actionHistory . nAME ? ? " " ) . toText12 ( ) . expanded ,
IconButton (
@ -458,8 +444,12 @@ class _DelegateSheetState extends State<DelegateSheet> {
isFav: true ,
) ;
} ,
icon: Icon ( Icons . star , size: 16 , color: ( actionHistory . isFavorite ? ? false ) ? MyColors . yellowColor : MyColors . borderColor ) ,
icon: Icon (
Icons . star ,
size: 16 ,
color: ( actionHistory . isFavorite ? ? false ) ? MyColors . yellowColor : MyColors . borderColor ,
) ,
)
] ,
) ,
) ;
@ -469,18 +459,25 @@ class _DelegateSheetState extends State<DelegateSheet> {
return InkWell (
onTap: ( ) {
Navigator . pop ( context ) ;
showMyBottomSheet (
context ,
showMyBottomSheet ( context ,
callBackFunc: widget . callBackFunc ,
child: SelectedItgItemSheet (
" Comment " ,
apiMode: widget . apiMode ,
wfHistory: wfHistory ,
/ / notificationID: widget . notificationID ,
) ,
) ;
) ) ;
} ,
child: Row ( children: < Widget > [ CircularAvatar ( height: 30 , width: 30 ) , 9. width , ( wfHistory . name ? ? " " ) . toText12 ( ) . expanded ] ) ,
child: Row (
children: [
CircularAvatar (
height: 30 ,
width: 30 ,
) ,
9. width ,
( wfHistory . name ? ? " " ) . toText12 ( ) . expanded ,
] ,
) ,
) ;
}
@ -488,8 +485,7 @@ class _DelegateSheetState extends State<DelegateSheet> {
return InkWell (
onTap: ( ) {
Navigator . pop ( context ) ;
showMyBottomSheet (
context ,
showMyBottomSheet ( context ,
callBackFunc: widget . callBackFunc ,
child: SelectedItemSheet (
" Comment " ,
@ -498,21 +494,38 @@ class _DelegateSheetState extends State<DelegateSheet> {
notificationID: widget . notificationID ,
isITGRequest: widget . wFHistory ! = null ,
getNotificationRespondAttributes: widget . getNotificationRespondAttributes ,
) ,
) ;
) ) ;
} ,
child: Row (
children: < Widget > [
actionHistory . employeeImage ! = " " & & actionHistory . employeeImage ! = null
? CircularAvatar ( url: actionHistory . employeeImage , height: 40 , width: 40 , isImageBase64: ( actionHistory . employeeImage ! = null | | actionHistory . employeeImage ! . isNotEmpty ) ? true : false )
children: [
actionHistory . employeeImage ! = " "
? CircularAvatar (
url: actionHistory . employeeImage ,
height: 40 ,
width: 40 ,
isImageBase64: ( actionHistory . employeeImage ! = null | | actionHistory . employeeImage ! . isNotEmpty ) ? true : false ,
)
: isImageLoaded
? CircularAvatar ( height: 40 , width: 40 , isImageBase64: false )
? CircularAvatar (
height: 40 ,
width: 40 ,
isImageBase64: false ,
)
: ClipRRect (
borderRadius: const BorderRadius . all ( Radius . circular ( 50 ) ) ,
child: Image . network ( " https://play-lh.googleusercontent.com/NPo88ojmhah4HDiposucJmfQIop4z4xc8kqJK9ITO9o-yCab2zxIp7PPB_XPj2iUojo " , fit: BoxFit . cover , height: 40 , width: 40 ) . toShimmer ( ) ,
borderRadius: const BorderRadius . all (
Radius . circular ( 50 ) ,
) ,
child: Image . network (
" https://play-lh.googleusercontent.com/NPo88ojmhah4HDiposucJmfQIop4z4xc8kqJK9ITO9o-yCab2zxIp7PPB_XPj2iUojo " ,
fit: BoxFit . cover ,
height: 40 ,
width: 40 ,
) . toShimmer ( ) ,
) ,
16. width ,
Expanded ( child: ( actionHistory . employeeDisplayName ? ? " " ) . toText12 ( ) ) ,
Expanded (
child: ( actionHistory . employeeDisplayName ? ? " " ) . toText12 ( ) ,
) ,
IconButton (
onPressed: ( ) {
fetchChangeFav (
@ -524,8 +537,12 @@ class _DelegateSheetState extends State<DelegateSheet> {
isNeedToRefresh: true ,
) ;
} ,
icon: const Icon ( Icons . star , size: 16 , color: MyColors . yellowColor ) ,
icon: Icon (
Icons . star ,
size: 16 ,
color: MyColors . yellowColor ,
) ,
)
] ,
) ,
) ;
@ -535,8 +552,7 @@ class _DelegateSheetState extends State<DelegateSheet> {
return InkWell (
onTap: ( ) {
Navigator . pop ( context ) ;
showMyBottomSheet (
context ,
showMyBottomSheet ( context ,
callBackFunc: widget . callBackFunc ,
child: SelectedItemSheet (
LocaleKeys . comments . tr ( ) ,
@ -545,14 +561,20 @@ class _DelegateSheetState extends State<DelegateSheet> {
notificationID: widget . notificationID ,
isITGRequest: widget . wFHistory ! = null ,
getNotificationRespondAttributes: widget . getNotificationRespondAttributes ,
) ,
) ;
) ) ;
} ,
child: Row (
children: < Widget > [
CircularAvatar ( url: actionHistory . employeeImage , height: 30 , width: 30 , isImageBase64: actionHistory . employeeImage ! = null ? true : false ) ,
children: [
CircularAvatar (
url: actionHistory . employeeImage ,
height: 30 ,
width: 30 ,
isImageBase64: actionHistory . employeeImage ! = null ? true : false ,
) ,
16. width ,
Expanded ( child: ( actionHistory . employeeDisplayName ? ? " " ) . toText12 ( ) ) ,
Expanded (
child: ( actionHistory . employeeDisplayName ? ? " " ) . toText12 ( ) ,
) ,
IconButton (
onPressed: ( ) {
actionHistory . isFavorite = ! ( actionHistory . isFavorite ? ? false ) ;
@ -565,8 +587,12 @@ class _DelegateSheetState extends State<DelegateSheet> {
isNeedToRefresh: false ,
) ;
} ,
icon: Icon ( Icons . star , size: 16 , color: ( actionHistory . isFavorite ? ? false ) ? MyColors . yellowColor : MyColors . borderColor ) ,
icon: Icon (
Icons . star ,
size: 16 ,
color: ( actionHistory . isFavorite ? ? false ) ? MyColors . yellowColor : MyColors . borderColor ,
) ,
)
] ,
) ,
) ;