Untitled
unknown
plain_text
a year ago
10 kB
4
Indexable
import 'package:Buildeffective/src/model/property_info_response.dart';
import 'package:Buildeffective/src/screens/homeguide_screen/add_property_address.dart';
import 'package:Buildeffective/src/screens/homeguide_screen/space_dashboard_screen.dart';
import 'package:Buildeffective/src/screens/homeguide_screen/widget/upload_image_place_holder.dart';
import 'package:Buildeffective/src/screens/splash/splash_screen.dart';
import 'package:Buildeffective/src/ui_component/common_cached_image.dart';
import 'package:Buildeffective/src/utils/comman_export.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:nb_utils/nb_utils.dart';
class HeaderComponent extends StatelessWidget {
final MyProperty ownProperty;
final bool? isTablet;
final Function()? onDataLoad;
const HeaderComponent({
super.key,
required this.ownProperty,
this.isTablet,
this.onDataLoad,
});
@override
Widget build(BuildContext context) {
return Stack(
// fit: StackFit.expand,
children: [
Observer(builder: (context) {
return CommonCachedImage(
imageUrl: homeGuideViewModel.uploadedImage,
height: SplashScreen.isMobileDevice ? context.height() * 0.63 : context.height() * 0.53,
width: context.width(),
isCircle: false,
boxFit: BoxFit.cover,
placeHolder: UploadImagePlaceHolder(
isTablet: isTablet,
ownProperty: ownProperty,
onDataLoad: onDataLoad,
),
).cornerRadiusWithClipRRectOnly(bottomLeft: 24, bottomRight: 24);
}),
Positioned(
bottom: SplashScreen.isMobileDevice ? 12 : 20,
right: SplashScreen.isMobileDevice ? 12 : null,
left: SplashScreen.isMobileDevice ? 12 : 16,
child: Container(
padding: SplashScreen.isMobileDevice ? EdgeInsets.only(left: SplashScreen.isMobileDevice ? 12 : 20, top: 12, right: 20, bottom: 12) : EdgeInsets.all(16),
decoration: BoxDecoration(
color: Color.fromRGBO(255, 255, 255, 0.9),
borderRadius: radius(16),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: SplashScreen.isMobileDevice ? MainAxisSize.max : MainAxisSize.min,
children: [
CommonCachedImage(
imageUrl: ownProperty.attachmentDocs.validate().isNotEmpty ? ownProperty.attachmentDocs?.first.originalUrl.validate() : null,
height: SplashScreen.isMobileDevice ? 66 : 90,
width: SplashScreen.isMobileDevice ? 66 : 90,
isCircle: false,
placeHolder: Container(
height: SplashScreen.isMobileDevice ? 66 : 90,
width: SplashScreen.isMobileDevice ? 66 : 90,
alignment: Alignment.center,
decoration: BoxDecoration(color: Color.fromRGBO(242, 242, 242, 1)),
child: SvgPicture.asset(ResImages.ic_empty_address_icon, height: 38, width: 38),
),
).cornerRadiusWithClipRRect(8),
ownProperty.addressText.isNullOrEmpty() ? 12.width : 10.width,
Observer(builder: (context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(ownProperty.name.validate(), style: BETextStyles.titleWithDarkBlueColor),
5.height,
Text(ownProperty.propertyType.validate(), style: BETextStyles.MediumTextStyleWithDarkBlueColor),
ownProperty.addressText.isNullOrEmpty() ? 6.height : 5.height,
ownProperty.addressText.isNullOrEmpty()
? GestureDetector(
onTap: () async {
await AddPropertyAddress(propertySlug: ownProperty.slug).launch(context).then((value) {
onDataLoad!.call();
});
},
child: Row(
crossAxisAlignment: CrossAxisAlignment.center, // Aligns items vertically in the Row
mainAxisSize: MainAxisSize.min,
children: [
SvgPicture.asset(
ResImages.icLocationPinNew,
),
4.width,
Text(
"Add Address",
style: BETextStyles.Style600Italic13(color: BEColors.primaryColor),
)
],
),
)
: Text(
ownProperty.addressText.validate(),
style: BETextStyles.InfoTextStyleWithDarkBlueColor,
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
],
).expand(flex: SplashScreen.isMobileDevice ? 1 : 0);
}),
],
),
),
)
/*homeGuideViewModel.uploadedImage!.isNotEmpty
? Positioned(
bottom: SplashScreen.isMobileDevice ? 12 : 20,
right: SplashScreen.isMobileDevice ? 12 : null,
left: SplashScreen.isMobileDevice ? 12 : 16,
child: Container(
padding: SplashScreen.isMobileDevice ? EdgeInsets.only(left: SplashScreen.isMobileDevice ? 12 : 20, top: 12, right: 20, bottom: 12) : EdgeInsets.all(16),
decoration: BoxDecoration(
color: Color.fromRGBO(255, 255, 255, 0.9),
borderRadius: radius(16),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: SplashScreen.isMobileDevice ? MainAxisSize.max : MainAxisSize.min,
children: [
CommonCachedImage(
imageUrl: ownProperty.attachmentDocs.validate().isNotEmpty ? ownProperty.attachmentDocs?.first.originalUrl.validate() : null,
height: SplashScreen.isMobileDevice ? 66 : 90,
width: SplashScreen.isMobileDevice ? 66 : 90,
isCircle: false,
placeHolder: Container(
height: SplashScreen.isMobileDevice ? 66 : 90,
width: SplashScreen.isMobileDevice ? 66 : 90,
alignment: Alignment.center,
decoration: BoxDecoration(color: Color.fromRGBO(242, 242, 242, 1)),
child: SvgPicture.asset(ResImages.ic_empty_address_icon, height: 38, width: 38),
),
).cornerRadiusWithClipRRect(8),
ownProperty.addressText.isNullOrEmpty() ? 12.width : 10.width,
Observer(builder: (context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(ownProperty.name.validate(), style: BETextStyles.titleWithDarkBlueColor),
5.height,
Text(ownProperty.propertyType.validate(), style: BETextStyles.MediumTextStyleWithDarkBlueColor),
ownProperty.addressText.isNullOrEmpty() ? 6.height : 5.height,
ownProperty.addressText.isNullOrEmpty()
? GestureDetector(
onTap: () async {
await AddPropertyAddress(propertySlug: ownProperty.slug).launch(context).then((value) {
onDataLoad!.call();
});
},
child: Row(
crossAxisAlignment: CrossAxisAlignment.center, // Aligns items vertically in the Row
mainAxisSize: MainAxisSize.min,
children: [
SvgPicture.asset(
ResImages.icLocationPinNew,
),
4.width,
Text(
"Add Address",
style: BETextStyles.Style600Italic13(color: BEColors.primaryColor),
)
],
),
)
: Text(
ownProperty.addressText.validate(),
style: BETextStyles.InfoTextStyleWithDarkBlueColor,
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
],
).expand(flex: SplashScreen.isMobileDevice ? 1 : 0);
}),
],
),
),
)
: Offstage(),*/
],
);
}
}
Editor is loading...
Leave a Comment