Merge pull request 'folder structure changes' (#5) from folder_structure into main
Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/5
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
|
||||||
import 'size_config.dart';
|
import '../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class BottomNavigation extends StatefulWidget {
|
class BottomNavigation extends StatefulWidget {
|
||||||
const BottomNavigation({super.key});
|
const BottomNavigation({super.key});
|
||||||
@@ -24,7 +24,6 @@ class AppStrings {
|
|||||||
|
|
||||||
//Home
|
//Home
|
||||||
static const String home = 'Home';
|
static const String home = 'Home';
|
||||||
|
|
||||||
static const String partnership = 'Partnership';
|
static const String partnership = 'Partnership';
|
||||||
static const String selfApply = 'Self-apply';
|
static const String selfApply = 'Self-apply';
|
||||||
static const String contracting = 'Contracting';
|
static const String contracting = 'Contracting';
|
||||||
|
|||||||
+1
-1
@@ -2,9 +2,9 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
import 'core/utils/size_config.dart';
|
||||||
import 'data/repositories/auth_repository.dart';
|
import 'data/repositories/auth_repository.dart';
|
||||||
import 'data/services/auth_service.dart';
|
import 'data/services/auth_service.dart';
|
||||||
import 'size_config.dart';
|
|
||||||
import 'view_models/auth_view_model.dart';
|
import 'view_models/auth_view_model.dart';
|
||||||
import 'views/login/login_screen.dart';
|
import 'views/login/login_screen.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../../bottom_navigation.dart';
|
|
||||||
import '../../../core/constants/strings.dart';
|
import '../../../core/constants/strings.dart';
|
||||||
import '../../../size_config.dart';
|
import '../../common/widgets/bottom_navigation.dart';
|
||||||
|
import '../../core/utils/size_config.dart';
|
||||||
import 'widgets.dart';
|
import 'widgets.dart';
|
||||||
|
|
||||||
class Homescreen extends StatelessWidget {
|
class Homescreen extends StatelessWidget {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../size_config.dart';
|
import '../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class ProgressBarColumn extends StatefulWidget {
|
class ProgressBarColumn extends StatefulWidget {
|
||||||
const ProgressBarColumn({
|
const ProgressBarColumn({
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
|
||||||
import '../../size_config.dart';
|
import '../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class StatisticsCard extends StatelessWidget {
|
class StatisticsCard extends StatelessWidget {
|
||||||
const StatisticsCard({
|
const StatisticsCard({
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
|
||||||
import '../../size_config.dart';
|
import '../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class TendersListItem extends StatelessWidget {
|
class TendersListItem extends StatelessWidget {
|
||||||
const TendersListItem({super.key});
|
const TendersListItem({super.key});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
|
|
||||||
import '../../core/constants/assets.dart';
|
import '../../core/constants/assets.dart';
|
||||||
import '../../core/constants/strings.dart';
|
import '../../core/constants/strings.dart';
|
||||||
import '../../size_config.dart';
|
import '../../core/utils/size_config.dart';
|
||||||
import 'widgets/widgets.dart';
|
import 'widgets/widgets.dart';
|
||||||
|
|
||||||
class LoginScreen extends StatefulWidget {
|
class LoginScreen extends StatefulWidget {
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../../core/constants/colors.dart';
|
||||||
|
import '../../../core/constants/strings.dart';
|
||||||
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
|
class LoginButton extends StatelessWidget {
|
||||||
|
final bool isEnabled;
|
||||||
|
final VoidCallback? onPressed;
|
||||||
|
|
||||||
|
const LoginButton({
|
||||||
|
super.key,
|
||||||
|
required this.isEnabled,
|
||||||
|
required this.onPressed,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return SizedBox(
|
||||||
|
width: double.infinity,
|
||||||
|
height: 55.0.h(),
|
||||||
|
child: ElevatedButton(
|
||||||
|
onPressed: onPressed,
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: isEnabled ? AppColors.mainBlue : Colors.grey[300],
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(28.0.w()),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
AppStrings.loginButton,
|
||||||
|
style: TextStyle(fontSize: 16.0.sp(), fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../../core/constants/assets.dart';
|
||||||
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
|
class LoginLogo extends StatelessWidget {
|
||||||
|
const LoginLogo({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Image.asset(AssetsManager.logo, width: 190.0.w(), height: 88.0.h());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
|
|
||||||
|
import '../../../core/constants/assets.dart';
|
||||||
|
import '../../../core/constants/colors.dart';
|
||||||
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
|
class LoginTextField extends StatelessWidget {
|
||||||
|
final TextEditingController controller;
|
||||||
|
final FocusNode focusNode;
|
||||||
|
final String label;
|
||||||
|
final String iconPath;
|
||||||
|
final bool isPassword;
|
||||||
|
final bool obscureText;
|
||||||
|
final VoidCallback? onToggleVisibility;
|
||||||
|
|
||||||
|
const LoginTextField({
|
||||||
|
super.key,
|
||||||
|
required this.controller,
|
||||||
|
required this.focusNode,
|
||||||
|
required this.label,
|
||||||
|
required this.iconPath,
|
||||||
|
this.isPassword = false,
|
||||||
|
this.obscureText = false,
|
||||||
|
this.onToggleVisibility,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return TextField(
|
||||||
|
controller: controller,
|
||||||
|
focusNode: focusNode,
|
||||||
|
obscureText: isPassword ? obscureText : false,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
labelText: label,
|
||||||
|
prefixIcon: Padding(
|
||||||
|
padding: EdgeInsets.all(12.0.w()),
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
iconPath,
|
||||||
|
width: 24.0.w(),
|
||||||
|
height: 24.0.h(),
|
||||||
|
colorFilter: ColorFilter.mode(
|
||||||
|
focusNode.hasFocus ? Colors.black87 : Colors.grey,
|
||||||
|
BlendMode.srcIn,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
suffixIcon:
|
||||||
|
isPassword
|
||||||
|
? IconButton(
|
||||||
|
onPressed: onToggleVisibility,
|
||||||
|
icon: SvgPicture.asset(
|
||||||
|
obscureText
|
||||||
|
? AssetsManager.passwordVisibility
|
||||||
|
: AssetsManager.passwordVisibilityOff,
|
||||||
|
width: 24.0.w(),
|
||||||
|
height: 24.0.h(),
|
||||||
|
colorFilter: ColorFilter.mode(
|
||||||
|
focusNode.hasFocus ? Colors.black87 : Colors.grey,
|
||||||
|
BlendMode.srcIn,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: null,
|
||||||
|
border: OutlineInputBorder(
|
||||||
|
borderRadius: BorderRadius.circular(12.0.w()),
|
||||||
|
),
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(color: AppColors.borderBlue),
|
||||||
|
borderRadius: BorderRadius.circular(12.0.w()),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../../core/constants/strings.dart';
|
||||||
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
|
class LoginTitle extends StatelessWidget {
|
||||||
|
const LoginTitle({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
AppStrings.signInTitle,
|
||||||
|
style: TextStyle(fontSize: 28.0.sp(), fontWeight: FontWeight.w700),
|
||||||
|
),
|
||||||
|
SizedBox(height: 8.0.h()),
|
||||||
|
Text(
|
||||||
|
AppStrings.signInSubtitle,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 14.0.sp(),
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
|
|
||||||
import '../../../core/constants/colors.dart';
|
import '../../../core/constants/colors.dart';
|
||||||
import '../../../core/constants/strings.dart';
|
import '../../../core/constants/strings.dart';
|
||||||
import '../../../size_config.dart';
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class LoginButton extends StatelessWidget {
|
class LoginButton extends StatelessWidget {
|
||||||
final bool isEnabled;
|
final bool isEnabled;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../../core/constants/assets.dart';
|
import '../../../core/constants/assets.dart';
|
||||||
import '../../../size_config.dart';
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class LoginLogo extends StatelessWidget {
|
class LoginLogo extends StatelessWidget {
|
||||||
const LoginLogo({super.key});
|
const LoginLogo({super.key});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import 'package:flutter_svg/svg.dart';
|
|||||||
|
|
||||||
import '../../../core/constants/assets.dart';
|
import '../../../core/constants/assets.dart';
|
||||||
import '../../../core/constants/colors.dart';
|
import '../../../core/constants/colors.dart';
|
||||||
import '../../../size_config.dart';
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class LoginTextField extends StatelessWidget {
|
class LoginTextField extends StatelessWidget {
|
||||||
final TextEditingController controller;
|
final TextEditingController controller;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../../core/constants/strings.dart';
|
import '../../../core/constants/strings.dart';
|
||||||
import '../../../size_config.dart';
|
import '../../../core/utils/size_config.dart';
|
||||||
|
|
||||||
class LoginTitle extends StatelessWidget {
|
class LoginTitle extends StatelessWidget {
|
||||||
const LoginTitle({super.key});
|
const LoginTitle({super.key});
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../core/utils/size_config.dart';
|
||||||
|
|
||||||
|
class TendersScreen extends StatelessWidget {
|
||||||
|
const TendersScreen({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
body: Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 24.0.w(), vertical: 24.0.h()),
|
||||||
|
child: Column(children: [Text('Tenders')]),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user