You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/views/widgets/equipment/pick_asset.dart

62 lines
2.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/views/widgets/equipment/single_device_picker.dart';
import '../../../models/device/asset.dart';
import '../../../new_views/app_style/app_color.dart';
import '../../../new_views/common_widgets/asset_info_card.dart';
class PickAsset extends StatelessWidget {
final Function(Asset) onPickAsset;
final Asset device;
final bool editable;
final bool showAssetInfo;
final bool forPPM;
const PickAsset({Key key, this.editable = true, this.device, this.onPickAsset, this.showAssetInfo = true, this.forPPM = false}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
if (editable)
Container(
decoration: BoxDecoration(
color: Theme.of(context).cardColor,
borderRadius: BorderRadius.circular(10),
boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.03), blurRadius: 14)],
),
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 8.toScreenHeight),
child: Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
context.translation.device.tinyFont(context).custom(color: context.isDark ? AppColor.neutral40 : AppColor.neutral50),
if (device != null)
device.assetNumber.bodyText(context).custom(color: context.isDark ? AppColor.neutral40 : AppColor.neutral50)
else
context.translation.pickAsset.bodyText(context).custom(color: context.isDark ? AppColor.neutral40 : AppColor.neutral50),
],
).onPress(() async {
Asset device = await Navigator.of(context).pushNamed(MyAssetsPage.id) as Asset;
if (device != null) {
onPickAsset(device);
}
}).expanded,
if (device != null)
Icon(Icons.change_circle_rounded, size: 22, color: context.isDark ? AppColor.primary40 : AppColor.primary70)
else
"qr".toSvgAsset(height: 24, fit: BoxFit.fitHeight, color: context.isDark ? AppColor.primary40 : AppColor.primary70),
],
),
),
if (device != null && showAssetInfo) AssetInfoCard(asset: device).paddingOnly(top: 8),
],
);
}
}