didvan-app/lib/views/home/new_statistic/stock/metal.dart

243 lines
8.8 KiB
Dart

import 'package:didvan/config/theme_data.dart';
import 'package:didvan/constants/app_icons.dart';
import 'package:didvan/models/new_statistic/metal_model.dart';
import 'package:didvan/views/widgets/didvan/card.dart';
import 'package:didvan/views/widgets/didvan/divider.dart';
import 'package:didvan/views/widgets/didvan/text.dart';
import 'package:flutter/material.dart';
class MetalCard extends StatelessWidget {
final MetalContent metalContent;
const MetalCard({super.key, required this.metalContent});
Color _diffColor(context) => metalContent.data.dt == 'high'
? Theme.of(context).colorScheme.success
: Theme.of(context).colorScheme.error;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: DidvanCard(
padding: const EdgeInsets.all(8),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
decoration: BoxDecoration(
color: Colors.grey.withOpacity(0.3),
borderRadius: const BorderRadius.all(Radius.circular(4))),
child: Center(
child: DidvanText(
metalContent.title,
style: Theme.of(context).textTheme.bodyLarge,
))),
const DidvanDivider(
verticalPadding: 8,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const DidvanText("قیمت پایانی امروز" " (ریال) "),
DidvanText(metalContent.data.p)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const DidvanText("قیمت پایانی روز گذشته" " (ریال) "),
DidvanText(metalContent.data.y)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const DidvanText("میزان تغییر" " (ریال) "),
Row(
children: [
Icon(
metalContent.data.dt == 'high'
? DidvanIcons.angle_up_regular
: DidvanIcons.angle_down_regular,
size: 14,
color: _diffColor(context),
),
DidvanText(
metalContent.data.d,
color: _diffColor(context),
),
],
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const DidvanText("میزان تغییر" " (درصد) "),
Row(
children: [
Icon(
metalContent.data.dt == 'high'
? DidvanIcons.angle_up_regular
: DidvanIcons.angle_down_regular,
size: 14,
color: _diffColor(context),
),
DidvanText(
"${metalContent.data.dp}%",
color: _diffColor(context),
),
],
),
],
),
const DidvanDivider(
verticalPadding: 8,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: Row(
children: [
DidvanText(
"خرید",
style: Theme.of(context).textTheme.bodyLarge,
color: Theme.of(context).colorScheme.success,
),
DidvanText(
" / ",
style: Theme.of(context).textTheme.bodyLarge,
),
DidvanText(
"فروش",
style: Theme.of(context).textTheme.bodyLarge,
color: Theme.of(context).colorScheme.error,
)
],
),
),
const Expanded(child: VerticalDivider()),
DidvanText(
"تعداد",
style: Theme.of(context).textTheme.bodyLarge,
),
const Expanded(child: VerticalDivider()),
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: DidvanText(
"حجم",
style: Theme.of(context).textTheme.bodyLarge,
textAlign: TextAlign.end,
),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: DidvanText("حقیقی",
color: Theme.of(context).colorScheme.success),
),
const Expanded(child: VerticalDivider()),
DidvanText(
metalContent.data.bc1,
),
const Expanded(child: VerticalDivider()),
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: Directionality(
textDirection: TextDirection.ltr,
child: DidvanText(
metalContent.data.b1,
textAlign: TextAlign.start,
),
),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: DidvanText("حقیقی",
color: Theme.of(context).colorScheme.error),
),
const Expanded(child: VerticalDivider()),
DidvanText(
metalContent.data.sc1,
),
const Expanded(child: VerticalDivider()),
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: Directionality(
textDirection: TextDirection.ltr,
child: DidvanText(
metalContent.data.s1,
textAlign: TextAlign.start,
),
),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: DidvanText("حقوقی",
color: Theme.of(context).colorScheme.success),
),
const Expanded(child: VerticalDivider()),
DidvanText(
metalContent.data.bc2,
),
const Expanded(child: VerticalDivider()),
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: Directionality(
textDirection: TextDirection.ltr,
child: DidvanText(
metalContent.data.b2,
textAlign: TextAlign.start,
),
),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: DidvanText("حقوقی",
color: Theme.of(context).colorScheme.error),
),
const Expanded(child: VerticalDivider()),
DidvanText(
metalContent.data.sc2,
),
const Expanded(child: VerticalDivider()),
SizedBox(
width: MediaQuery.of(context).size.width * 0.25,
child: Directionality(
textDirection: TextDirection.ltr,
child: DidvanText(
metalContent.data.s2,
textAlign: TextAlign.start,
),
),
),
],
),
],
),
),
);
}
}