This commit is contained in:
Patrick Alvin Alcala 2025-02-21 16:51:13 +08:00
parent 6f54a6f9fc
commit a208763a67
13 changed files with 232 additions and 117 deletions

View file

@ -8,8 +8,10 @@ class InputWidget extends StatelessWidget {
final TextEditingController controller;
final bool? password;
final OnChangedCallback? onChanged;
final String? placeholder;
const InputWidget({super.key, required this.label, required this.controller, this.password, this.onChanged});
const InputWidget(
{super.key, required this.label, required this.controller, this.password, this.onChanged, this.placeholder});
@override
Widget build(BuildContext context) {
@ -29,7 +31,9 @@ class InputWidget extends StatelessWidget {
filled: true,
fillColor: const Color.fromRGBO(255, 255, 255, 1),
border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)),
contentPadding: const EdgeInsets.symmetric(vertical: 10, horizontal: 24)),
contentPadding: const EdgeInsets.symmetric(vertical: 2, horizontal: 24),
prefixIcon: placeholder != null ? Icon(Icons.search, color: Colors.grey) : null,
hintText: placeholder),
style: GoogleFonts.outfit(textStyle: const TextStyle(color: Color.fromRGBO(0, 0, 0, 1), fontSize: 16)),
obscureText: password ?? false,
onChanged: onChanged,

View file

@ -0,0 +1,83 @@
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:intl/intl.dart';
class ItemCardWidget extends StatelessWidget {
final String imageUrl;
final String text;
final double price;
final double quantity;
const ItemCardWidget(
{super.key, required this.imageUrl, required this.text, required this.price, required this.quantity});
@override
Widget build(BuildContext context) {
const double imageSize = 180;
const Color fontColor = Color.fromRGBO(0, 0, 0, 1);
return Card(
child: ClipRRect(
borderRadius: BorderRadius.circular(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.network(imageUrl,
fit: BoxFit.cover,
width: imageSize,
height: imageSize / 1.4,
cacheWidth: (imageSize * MediaQuery.of(context).devicePixelRatio).round()),
const Gap(8),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextWidget(
text: text,
size: 10,
color: Colors.black,
bold: true,
),
TextWidget(
text: text,
size: 16,
color: Colors.black,
)
],
),
const Gap(
92,
color: Colors.red,
),
TextWidget(
text: quantity.toStringAsFixed(0),
size: 12,
color: const Color.fromRGBO(39, 39, 39, 1),
)
]),
),
const Gap(8),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Image.asset('assets/php_logo.webp',
fit: BoxFit.cover, height: 12, cacheWidth: (10 * MediaQuery.of(context).devicePixelRatio).round()),
const Gap(4),
TextWidget(
text: NumberFormat.currency(locale: "en_US", symbol: "").format(price),
size: 14,
bold: true,
color: fontColor,
),
],
),
)
],
),
));
}
}