improvements

main_production_attahment_type
Sikander Saleem 11 hours ago
parent 63d4c79a73
commit 3412345a4a

@ -31,7 +31,6 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
AssetProvider? _assetProvider;
AssetByIdModel? assetModel;
@override
Widget build(BuildContext context) {
assetId ??= ModalRoute.of(context)?.settings.arguments as int;
@ -93,10 +92,7 @@ class _AssetDetailPageState extends State<AssetDetailPage> {
12.height,
TabBarView(
children: [
AssetDetailsView(
assetModel: assetModel!,
onUpload: _upload,
),
AssetDetailsView(assetModel: assetModel!, onUpload: _upload),
const AssetDocumentHistoryView(),
],
).expanded,

@ -17,12 +17,12 @@ class AssetDocumentHistoryView extends StatelessWidget {
];
return SingleChildScrollView(
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth),
padding: const EdgeInsets.symmetric(horizontal: 16),
child: FilesList(
showAsListView: true,
// itemGap: 12.toScreenHeight,
showDownloadButton: true,
images: dummyDocuments,
separator: const Divider().defaultStyle(context),
).toShadowContainer(context),
);
}

@ -22,8 +22,9 @@ class FilesList extends StatelessWidget {
final bool showAsListView;
final bool showDownloadButton;
final double? itemGap;
final Widget? separator;
const FilesList({Key? key, this.images = const <String>[], this.types = const <String>[], this.padding, this.showAsListView = false, this.showDownloadButton = false, this.itemGap})
const FilesList({Key? key, this.separator, this.images = const <String>[], this.types = const <String>[], this.padding, this.showAsListView = false, this.showDownloadButton = false, this.itemGap})
: super(key: key);
@override
@ -31,7 +32,7 @@ class FilesList extends StatelessWidget {
return showAsListView
? ListView.separated(
shrinkWrap: true,
padding: padding ?? const EdgeInsets.only(top: 8),
padding: padding ?? const EdgeInsets.only(top: 0),
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (cxt, itemIndex) {
if (!images[itemIndex].contains(".")) {
@ -74,14 +75,14 @@ class FilesList extends StatelessWidget {
children: [
EllipsizedText(
images[itemIndex].split("/").last,
style: AppTextStyles.heading6.copyWith(color: AppColor.black10),
style: AppTextStyles.bodyText.copyWith(color: AppColor.textStyleColor(context)),
type: EllipsisType.start, // or EllipsisType.middle
),
4.height,
2.height,
RichText(
text: TextSpan(
text: '${types.isEmpty ? "Asset Guide" : types[itemIndex]} | ',
style: AppTextStyles.bodyText.copyWith(color: AppColor.neutral120),
style: AppTextStyles.tinyFont.copyWith(color: AppColor.labelTextStyleColor(context)),
children: <TextSpan>[
TextSpan(
text: 'View',
@ -109,21 +110,24 @@ class FilesList extends StatelessWidget {
),
],
).expanded,
showDownloadButton
? 'download'.toSvgAsset().onPress(() async {
if (Utils.isLocalFile(images[itemIndex])) {
await OpenFile.open(images[itemIndex]);
} else {
await Utils.downloadFile(images[itemIndex], autoOpen: true, showToast: true);
}
})
: const SizedBox.shrink()
if (showDownloadButton)
IconButton(
icon: "download".toSvgAsset(height: 24, width: 24, color: AppColor.icon2Color(context)),
padding: EdgeInsets.zero,
visualDensity: VisualDensity.compact,
tooltip: "Download",
onPressed: () async {
if (Utils.isLocalFile(images[itemIndex])) {
await OpenFile.open(images[itemIndex]);
} else {
await Utils.downloadFile(images[itemIndex], autoOpen: true, showToast: true);
}
},
),
],
);
},
separatorBuilder: (cxt, index) => SizedBox(
height: itemGap ?? 8.toScreenHeight,
),
separatorBuilder: (cxt, index) => separator ?? SizedBox(height: itemGap ?? 8.toScreenHeight),
itemCount: images.length)
: GridView.builder(
padding: padding ?? const EdgeInsets.only(top: 8, bottom: 8),

@ -139,7 +139,7 @@ class _AttachmentPickerState extends State<AttachmentPicker> with SingleTickerPr
},
);
},
separatorBuilder: (cxt, index) => 8.height,
separatorBuilder: (cxt, index) => const Divider().defaultStyle(context),
itemCount: widget.attachment.length)
: Wrap(
spacing: 8.toScreenWidth,

Loading…
Cancel
Save