feat : list view item in out of the province

This commit is contained in:
2025-07-01 15:43:47 +03:30
parent 3d6d3d7b08
commit 666f6326e5
21 changed files with 15522 additions and 458 deletions

View File

@@ -15,8 +15,11 @@ class BaseBottomSheet extends StatelessWidget {
height: height ?? MediaQuery.of(context).size.height * 0.85,
padding: EdgeInsets.symmetric(vertical: 15, horizontal: 20),
decoration: BoxDecoration(
color:bgColor?? Colors.white,
borderRadius: BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)),
color: bgColor ?? Colors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(25),
topRight: Radius.circular(25),
),
),
child: SingleChildScrollView(
child: Column(
@@ -33,11 +36,14 @@ class BaseBottomSheet extends StatelessWidget {
Container(
height: 3,
width: 50,
decoration: BoxDecoration(color: AppColor.darkGreyDark, borderRadius: BorderRadius.circular(8)),
decoration: BoxDecoration(
color: AppColor.darkGreyDark,
borderRadius: BorderRadius.circular(8),
),
),
Positioned(
left: 0,
left: -10,
child: IconButton(
onPressed: () {
Navigator.of(context).pop();

View File

@@ -6,16 +6,14 @@ class EmptyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Row(),
Assets.icons.empty.svg(width: 156.w, height: 156.h),
Text('داده ای یافت نشد', style: AppFonts.yekan20.copyWith(color: AppColor.textColor)),
],
),
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Row(),
Assets.anim.error.lottie(),
Text('داده ای یافت نشد', style: AppFonts.yekan20.copyWith(color: AppColor.textColor)),
],
);
}
}

View File

@@ -3,12 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rasadyar_core/core.dart';
enum RTextFieldVariant {
normal,
noBorder,
password,
passwordNoBorder,
}
enum RTextFieldVariant { normal, noBorder, password, passwordNoBorder }
class RTextField extends StatefulWidget {
final TextEditingController controller;
@@ -40,6 +35,7 @@ class RTextField extends StatefulWidget {
final void Function(String)? onChanged;
final void Function(String)? onSubmitted;
final List<TextInputFormatter>? inputFormatters;
final Widget? suffix;
const RTextField({
super.key,
@@ -71,32 +67,25 @@ class RTextField extends StatefulWidget {
this.onChanged,
this.onSubmitted,
this.borderColor,
this.inputFormatters
this.inputFormatters,
this.suffix,
});
@override
State<RTextField> createState() => _RTextFieldState();
bool get _isPassword => variant == RTextFieldVariant.password;
bool get _noBorder => variant == RTextFieldVariant.noBorder;
bool get _passwordNoBorder => variant == RTextFieldVariant.passwordNoBorder;
InputBorder get _inputBorder =>
_noBorder || _passwordNoBorder ? InputBorder.none : OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: BorderSide(
color: borderColor ?? AppColor.lightGreyDarkActive,
width: 1,
),
);
InputBorder get _inputBorder => _noBorder || _passwordNoBorder
? InputBorder.none
: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderSide: BorderSide(color: borderColor ?? AppColor.lightGreyDarkActive, width: 1),
);
}
class _RTextFieldState extends State<RTextField> {
@@ -164,6 +153,7 @@ class _RTextFieldState extends State<RTextField> {
errorStyle: widget.errorStyle,
errorMaxLines: 1,
isDense: widget.isDense,
suffix: widget.suffix,
suffixIcon: _buildSuffixIcon(),
suffixIconConstraints: widget.boxConstraints,
prefixIcon: widget.prefixIcon,
@@ -185,4 +175,4 @@ class _RTextFieldState extends State<RTextField> {
),
);
}
}
}

View File

@@ -6,9 +6,9 @@ class LoadingWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Expanded(child: Center(child: Assets.anim.loading.lottie(
return Center(child: Assets.anim.loading.lottie(
width: 120.w,
height: 120.h,
)));
));
}
}

View File

@@ -58,8 +58,9 @@ class _OverlayDropdownState<T> extends State<OverlayDropdownWidget<T>> {
elevation: 4,
borderRadius: BorderRadius.circular(8),
child: Container(
decoration: BoxDecoration(
color: Colors.white,
color: AppColor.bgLight,
border: Border.all(color: AppColor.darkGreyLight),
borderRadius: BorderRadius.circular(8),
),
@@ -123,6 +124,7 @@ class _OverlayDropdownState<T> extends State<OverlayDropdownWidget<T>> {
width: Get.width,
padding: const EdgeInsets.symmetric(horizontal: 12),
decoration: BoxDecoration(
color: AppColor.bgLight,
border: Border.all(color: AppColor.darkGreyLight),
borderRadius: BorderRadius.circular(8),
),