Untitled
unknown
plain_text
2 years ago
5.8 kB
8
Indexable
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provalue/core/common_widget/common_list_name_tile.dart';
import 'package:provalue/infrastructure/repository/provider.dart';
import 'package:provalue/presentation/view_model/details_list_page_provider.dart';
import '../../../core/utils/color_constants.dart';
import '../../../core/utils/icon_constants.dart';
import '../../../core/utils/strings.dart';
class DetailsListPage extends ConsumerStatefulWidget {
const DetailsListPage({super.key});
@override
ConsumerState createState() => _DetailsListPageState();
}
class _DetailsListPageState extends ConsumerState<DetailsListPage> {
late DetailsPageListProvider provider;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = ref.read(getDetailsListPageProvider);
provider.onInit(context);
});
}
@override
Widget build(BuildContext context) {
provider = ref.watch(getDetailsListPageProvider);
return buildListBody(context);
}
Widget buildListBody(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 150, 0),
child: buildVideo(context),
),
const SizedBox(height: 20),
buildName(context),
const SizedBox(height: 20),
buildIndustryName(context),
const SizedBox(height: 20),
buildDescription(context),
const SizedBox(height: 20),
buildPrice(context),
],
),
);
}
Widget buildCardAppBar(
DetailsPageListProvider provider, BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
InkWell(
onTap: () {},
child: SvgPicture.asset(
IconConstants.icEdit,
),
),
const SizedBox(width: 20),
InkWell(
onTap: () {},
child: SvgPicture.asset(
IconConstants.icDelete,
),
),
],
),
);
}
Column buildVideo(BuildContext context) {
return Column(
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8.0),
child: Image.asset(
IconConstants.imgItem7,
// scale: 3.5,
height: 75.0,
width: 100.0,
)),
const SizedBox(
height: 6,
),
Text(
Strings.loremIpsumText,
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
fontSize: 12, color: ColorConstants.textSecondaryColor),
),
],
);
}
Widget buildName(BuildContext context) {
return const ListNameTile(
isIconPadding: true,
title: Strings.listNameText,
description: Strings.loremIpsumText,
icon: IconConstants.createList,
);
}
Widget buildIndustryName(BuildContext context) {
return const ListNameTile(
title: Strings.insuranceAgencyListText,
description: Strings.loremIpsumText,
icon: IconConstants.insuranceList,
);
}
Widget buildDescription(BuildContext context) {
return Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(left: 4.0, top: 3.8),
child: SvgPicture.asset(IconConstants.iconNotes),
),
const SizedBox(
width: 20,
),
Expanded(
child: RichText(
text: TextSpan(
text: Strings.descriptionDetailsText,
style: Theme.of(context).textTheme.bodyMedium?.copyWith(
fontSize: 16,
color: ColorConstants.textSecondaryColor,
),
children: [
const WidgetSpan(
child: SizedBox(
width: 8,
)),
TextSpan(
text: Strings.loremText1,
style: Theme.of(context).textTheme.bodySmall?.copyWith(
fontSize: 16,
// color: ColorConstants.textPrimaryColor
),
),
TextSpan(
text: Strings.loremText2,
style: Theme.of(context)
.textTheme
.bodySmall
?.copyWith(fontSize: 16, height: 1.4),
),
TextSpan(
text: Strings.loremText3,
style: Theme.of(context)
.textTheme
.bodySmall
?.copyWith(fontSize: 16, height: 1.4),
),
TextSpan(
text: Strings.loremText4,
style: Theme.of(context)
.textTheme
.bodySmall
?.copyWith(fontSize: 16, height: 1.4),
),
]),
),
),
],
);
}
Widget buildPrice(BuildContext context) {
return const ListNameTile(
colorChange: true,
title: Strings.priceDetailsText,
description: Strings.amountDetailsText,
icon: IconConstants.icDollar,
);
}
}
Editor is loading...