diff --git a/assets/Corporate.png b/assets/Corporate.png
new file mode 100644
index 0000000..73be592
Binary files /dev/null and b/assets/Corporate.png differ
diff --git a/assets/Corporate.svg b/assets/Corporate.svg
new file mode 100644
index 0000000..9429bd2
--- /dev/null
+++ b/assets/Corporate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/DKV.png b/assets/DKV.png
new file mode 100644
index 0000000..3f6e73d
Binary files /dev/null and b/assets/DKV.png differ
diff --git a/assets/DKV.svg b/assets/DKV.svg
new file mode 100644
index 0000000..b94e6e6
--- /dev/null
+++ b/assets/DKV.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/Fashion.png b/assets/Fashion.png
new file mode 100644
index 0000000..9bb179c
Binary files /dev/null and b/assets/Fashion.png differ
diff --git a/assets/Fashion.svg b/assets/Fashion.svg
new file mode 100644
index 0000000..fac6455
--- /dev/null
+++ b/assets/Fashion.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/Goverment.png b/assets/Goverment.png
new file mode 100644
index 0000000..ad8b084
Binary files /dev/null and b/assets/Goverment.png differ
diff --git a/assets/Goverment.svg b/assets/Goverment.svg
new file mode 100644
index 0000000..3cc9d7c
--- /dev/null
+++ b/assets/Goverment.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/IT.png b/assets/IT.png
new file mode 100644
index 0000000..0682e10
Binary files /dev/null and b/assets/IT.png differ
diff --git a/assets/IT.svg b/assets/IT.svg
new file mode 100644
index 0000000..44698f1
--- /dev/null
+++ b/assets/IT.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/Startup.png b/assets/Startup.png
new file mode 100644
index 0000000..45d8716
Binary files /dev/null and b/assets/Startup.png differ
diff --git a/assets/Startup.svg b/assets/Startup.svg
new file mode 100644
index 0000000..703c0e2
--- /dev/null
+++ b/assets/Startup.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/Transport.png b/assets/Transport.png
new file mode 100644
index 0000000..a9b0ddd
Binary files /dev/null and b/assets/Transport.png differ
diff --git a/assets/Transport.svg b/assets/Transport.svg
new file mode 100644
index 0000000..25708ba
--- /dev/null
+++ b/assets/Transport.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/dog.svg b/assets/dog.svg
new file mode 100644
index 0000000..ccb66c6
--- /dev/null
+++ b/assets/dog.svg
@@ -0,0 +1,202 @@
+
+
+
diff --git a/assets/dream-cast.svg b/assets/dream-cast.svg
new file mode 100644
index 0000000..091b7ce
--- /dev/null
+++ b/assets/dream-cast.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/driver.svg b/assets/driver.svg
new file mode 100644
index 0000000..1b1d8ae
--- /dev/null
+++ b/assets/driver.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/employer-1.png b/assets/employer-1.png
new file mode 100644
index 0000000..cbe028c
Binary files /dev/null and b/assets/employer-1.png differ
diff --git a/assets/employer-2.png b/assets/employer-2.png
new file mode 100644
index 0000000..2e3e9f9
Binary files /dev/null and b/assets/employer-2.png differ
diff --git a/assets/employer-3.png b/assets/employer-3.png
new file mode 100644
index 0000000..b245bb5
Binary files /dev/null and b/assets/employer-3.png differ
diff --git a/assets/f&b.png b/assets/f&b.png
new file mode 100644
index 0000000..8356e7f
Binary files /dev/null and b/assets/f&b.png differ
diff --git a/assets/f&b.svg b/assets/f&b.svg
new file mode 100644
index 0000000..e755dcc
--- /dev/null
+++ b/assets/f&b.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/ketapang.svg b/assets/ketapang.svg
new file mode 100644
index 0000000..4b225ec
--- /dev/null
+++ b/assets/ketapang.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/logo.png b/assets/logo.png
index 119e397..5b9bb9b 100644
Binary files a/assets/logo.png and b/assets/logo.png differ
diff --git a/assets/logo.svg b/assets/logo.svg
new file mode 100644
index 0000000..ad12219
--- /dev/null
+++ b/assets/logo.svg
@@ -0,0 +1,124 @@
+
+
+
diff --git a/assets/logo_vertical.png b/assets/logo_vertical.png
index 34fe5be..f8b6369 100644
Binary files a/assets/logo_vertical.png and b/assets/logo_vertical.png differ
diff --git a/assets/logo_vertical2.png b/assets/logo_vertical2.png
new file mode 100644
index 0000000..7521448
Binary files /dev/null and b/assets/logo_vertical2.png differ
diff --git a/assets/market-2.png b/assets/market-2.png
new file mode 100644
index 0000000..a268eb9
Binary files /dev/null and b/assets/market-2.png differ
diff --git a/assets/market-2.svg b/assets/market-2.svg
new file mode 100644
index 0000000..e4babff
--- /dev/null
+++ b/assets/market-2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/market.png b/assets/market.png
new file mode 100644
index 0000000..4259dd8
Binary files /dev/null and b/assets/market.png differ
diff --git a/assets/market.svg b/assets/market.svg
new file mode 100644
index 0000000..2216d1e
--- /dev/null
+++ b/assets/market.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/others.png b/assets/others.png
new file mode 100644
index 0000000..ae3d9be
Binary files /dev/null and b/assets/others.png differ
diff --git a/assets/others.svg b/assets/others.svg
new file mode 100644
index 0000000..f538fd5
--- /dev/null
+++ b/assets/others.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/otp.png b/assets/otp.png
new file mode 100644
index 0000000..9d84ae4
Binary files /dev/null and b/assets/otp.png differ
diff --git a/assets/seeker-1.png b/assets/seeker-1.png
new file mode 100644
index 0000000..3d6442d
Binary files /dev/null and b/assets/seeker-1.png differ
diff --git a/assets/seeker-2.png b/assets/seeker-2.png
new file mode 100644
index 0000000..9fa4bc3
Binary files /dev/null and b/assets/seeker-2.png differ
diff --git a/assets/seeker-3.png b/assets/seeker-3.png
new file mode 100644
index 0000000..55d73c5
Binary files /dev/null and b/assets/seeker-3.png differ
diff --git a/assets/vector-5.svg b/assets/vector-5.svg
new file mode 100644
index 0000000..7a132dc
--- /dev/null
+++ b/assets/vector-5.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fonts/Roboto-Regular.ttf b/fonts/Roboto-Regular.ttf
new file mode 100644
index 0000000..2b6392f
Binary files /dev/null and b/fonts/Roboto-Regular.ttf differ
diff --git a/lib/employer_app.dart b/lib/employer_app.dart
deleted file mode 100644
index f40b7dc..0000000
--- a/lib/employer_app.dart
+++ /dev/null
@@ -1,64 +0,0 @@
-// import 'package:flutter/material.dart';
-// import 'package:provider/provider.dart';
-// import 'package:space/app.dart';
-// import 'package:space/main.dart';
-// import 'package:space/navigator_employer.dart';
-// import 'package:space/src/core/models/auth.dart';
-
-// import 'package:space/src/core/models/jobs.dart';
-// import 'package:space/src/core/models/save.dart';
-// import 'package:space/src/ui/auth/employer/home_employer.dart';
-// import 'package:space/src/ui/employer/employer_edit_post.dart';
-// import 'package:space/src/ui/employer/employer_tabs.dart';
-// import 'package:space/src/ui/employer/employer_post_a_job.dart';
-// import 'package:space/src/ui/screens/splash_screen.dart';
-
-// import 'package:space/src/ui/theme/theme.dart';
-
-// void main() => runApp(EmployerApp());
-
-// class EmployerApp extends StatelessWidget {
-// @override
-// Widget build(BuildContext context) {
-// final theme = buildTheme();
-// return MultiProvider(
-// providers: [
-// ChangeNotifierProvider.value(
-// value: Auth(),
-// ),
-// ChangeNotifierProxyProvider(
-// builder: (ctx, auth, previousJobs) =>Jobs(
-// auth.token,
-// auth.userId,
-// previousJobs == null ? [] : previousJobs.posts,
-// ),
-// ),
-// ChangeNotifierProvider.value(
-// value: Save(),
-// )
-// ],
-// child: Consumer(
-// builder: (ctx, auth, _) => MaterialApp(
-// debugShowCheckedModeBanner: false,
-// theme: theme,
-// home: auth.isAuth
-// ? EmployerNavigator()
-// : FutureBuilder(
-// future: auth.tryAutoLogin(),
-// builder: (ctx, authResultSnapshot) =>
-// authResultSnapshot.connectionState ==
-// ConnectionState.waiting
-// ? SplashScreen()
-// : DreamApp(),
-// ),
-// routes: {
-// HomePageEmployer.routeName: (ctx) => HomePageEmployer(),
-// EmployerTabs.routeName: (ctx) => EmployerTabs(),
-// PostaJob.routeName: (ctx) => PostaJob(),
-// EditPost.routeName: (ctx) => EditPost(),
-// },
-// ),
-// ),
-// );
-// }
-// }
diff --git a/lib/main.dart b/lib/main.dart
index 141d390..84be004 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,14 +1,19 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
+import 'package:space/navigator_employer.dart';
import 'package:space/navigator_seeker.dart';
+import 'package:space/src/app.dart';
import 'package:space/src/core/models/apply.dart';
import 'package:space/src/core/models/auth.dart';
import 'package:space/src/core/models/cart.dart';
import 'package:space/src/core/models/jobs.dart';
+import 'package:space/src/core/models/save.dart';
import 'package:space/src/ui/auth/employer/home_employer.dart';
import 'package:space/src/ui/auth/employer/login_signup_employer.dart';
+import 'package:space/src/ui/auth/employer/ui_get_started_employer.dart';
import 'package:space/src/ui/auth/seeker/home_seeker.dart';
+import 'package:space/src/ui/auth/seeker/ui_get_started_seeker.dart';
import 'package:space/src/ui/employer/layout/employer_edit_post.dart';
import 'package:space/src/ui/employer/screens/employer_posted_screen.dart';
import 'package:space/src/ui/employer/screens/employer_tabs.dart';
@@ -28,59 +33,44 @@ class DreamJobApp extends StatelessWidget {
final theme = buildTheme();
return MultiProvider(
providers: [
- ChangeNotifierProvider.value(
- value: Auth(),
- ),
- ChangeNotifierProxyProvider(
- builder: (ctx, auth, previousJobs) => Jobs(
- auth.token,
- auth.userId,
- previousJobs == null ? [] : previousJobs.posts,
- ),
- ),
// ChangeNotifierProvider.value(
- // value: Save(),
- // )
- ChangeNotifierProxyProvider(
- builder: (ctx, auth, previousApplys) => Applys(
- auth.token,
- auth.userId,
- previousApplys == null ? [] : previousApplys.applys,
- ),
+ // value: Auth(),
+ // ),
+ ChangeNotifierProvider.value(
+ value: Jobs(),
),
ChangeNotifierProvider.value(
- value: Cart(),
+ value: Save(),
),
+ // ChangeNotifierProxyProvider(
+ // builder: (ctx, auth, previousApplys) => Applys(
+ // auth.token,
+ // auth.userId,
+ // previousApplys == null ? [] : previousApplys.applys,
+ // ),
+ // ),
],
- child: Consumer(
- builder: (ctx, auth, _) => MaterialApp(
+ child: MaterialApp(
debugShowCheckedModeBanner: false,
theme: theme,
- home: auth.isAuth
- ? SeekerNavigator()
- : FutureBuilder(
- future: auth.tryAutoLogin(),
- builder: (ctx, authResultSnapshot) =>
- authResultSnapshot.connectionState ==
- ConnectionState.waiting
- ? SplashScreen()
- : LoginSignUpEmployer(),
- ),
+ home: DreamApp(),
routes: {
HomePageEmployer.routeName: (ctx) => HomePageEmployer(),
EmployerTabs.routeName: (ctx) => EmployerTabs(),
EmployerPostScreen.routeName: (ctx) => EmployerPostScreen(),
EditPost.routeName: (ctx) => EditPost(),
+ EmployerNavigator.routeName: (ctx) => EmployerNavigator(),
+ UiGetStartedEmployer.routeName: (ctx) => UiGetStartedEmployer(),
HomePageSeeker.routeName: (ctx) => HomePageSeeker(),
JobDetails.routeName: (ctx) => JobDetails(),
// SaveScreen.routeName: (ctx) => SaveScreen(),
SeekerTabs.routeName: (ctx) => SeekerTabs(),
- CartScreen.routeName: (ctx) => CartScreen(),
- ApplysScreen.routeName: (ctx) => ApplysScreen(),
+ // // ApplysScreen.routeName: (ctx) => ApplysScreen(),
+ SeekerNavigator.routeName: (ctx) => SeekerNavigator(),
+ UiGetStartedSeeker.routeName: (ctx) => UiGetStartedSeeker(),
},
),
- ),
);
}
}
diff --git a/lib/navigator_employer.dart b/lib/navigator_employer.dart
index d284d27..1064f31 100644
--- a/lib/navigator_employer.dart
+++ b/lib/navigator_employer.dart
@@ -5,9 +5,12 @@ import 'package:material_design_icons_flutter/material_design_icons_flutter.dart
import 'package:space/src/ui/auth/employer/home_employer.dart';
import 'package:space/src/ui/chat/inbox_ui_list.dart';
import 'package:space/src/ui/components/landing_404_page.dart';
+import 'package:space/src/ui/components/notification.dart';
+import 'package:space/src/ui/employer/layout/employer_edit_post.dart';
import 'package:space/src/ui/employer/screens/employer_tabs.dart';
class EmployerNavigator extends StatefulWidget {
+ static const routeName = '/employer-navigator';
@override
_EmployerNavigatorState createState() => _EmployerNavigatorState();
}
@@ -24,9 +27,9 @@ class _EmployerNavigatorState extends State {
final List _children = [
HomePageEmployer(),
EmployerTabs(),
- LandingErrorPage(),
- InboxUiList(),
+ EditPost(),
InboxUiList(),
+ NotificationUi(),
];
@override
Widget build(BuildContext context) {
@@ -62,8 +65,8 @@ class _EmployerNavigatorState extends State {
fontStyle: FontStyle.normal)),
),
BottomNavigationBarItem(
- icon: Icon(MdiIcons.accountSearchOutline, size: 24),
- title: Text('SEARCH',
+ icon: Icon(MdiIcons.plusCircleOutline, size: 24),
+ title: Text('POST JOB',
style: TextStyle(
fontFamily: 'VarelaRound',
fontSize: 8,
@@ -90,7 +93,7 @@ class _EmployerNavigatorState extends State {
),
],
currentIndex: _selectedIndex,
- selectedItemColor: Color(0xff4d4d4d),
+ selectedItemColor: Colors.amber,
onTap: _onItemTapped,
),
);
diff --git a/lib/navigator_seeker.dart b/lib/navigator_seeker.dart
index 9ddb0d3..07bc592 100644
--- a/lib/navigator_seeker.dart
+++ b/lib/navigator_seeker.dart
@@ -4,10 +4,13 @@ import 'package:flutter/services.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
import 'package:space/src/ui/auth/seeker/home_seeker.dart';
import 'package:space/src/ui/chat/inbox_ui_list.dart';
+import 'package:space/src/ui/components/notification.dart';
import 'package:space/src/ui/seeker/layout/job_search.dart';
import 'package:space/src/ui/seeker/screens/seeker_tabs.dart';
class SeekerNavigator extends StatefulWidget {
+ static const routeName = '/seeker-navigator';
+
@override
_SeekerNavigatorState createState() => _SeekerNavigatorState();
}
@@ -26,7 +29,7 @@ class _SeekerNavigatorState extends State {
SeekerTabs(),
JobSearch(),
InboxUiList(),
- InboxUiList(),
+ NotificationUi(),
];
@override
Widget build(BuildContext context) {
diff --git a/lib/src/app.dart b/lib/src/app.dart
index 924e15c..056a863 100644
--- a/lib/src/app.dart
+++ b/lib/src/app.dart
@@ -1,120 +1,119 @@
-// import 'package:flutter/material.dart';
-// import 'package:flutter/services.dart';
-// import 'package:space/employer_app.dart';
-// import 'package:space/seeker_app.dart';
-// import 'package:space/src/ui/auth/employer/login_signup_employer.dart';
-// import 'package:space/src/ui/auth/seeker/login_signup_seeker.dart';
+import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
+import 'package:space/seeker_app.dart';
+import 'package:space/src/ui/auth/employer/login_signup_employer.dart';
+import 'package:space/src/ui/auth/seeker/login_signup_seeker.dart';
-// class DreamApp extends StatelessWidget {
-// @override
-// Widget build(BuildContext context) {
-// SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
-// statusBarColor: Colors.transparent,
-// statusBarBrightness: Brightness.light,
-// statusBarIconBrightness: Brightness.light,
-// systemNavigationBarIconBrightness: Brightness.light,
-// systemNavigationBarColor: Colors.black,
-// ));
-// return Material(
-// child: Container(
-// decoration: BoxDecoration(
-// image: DecorationImage(
-// fit: BoxFit.cover,
-// image: AssetImage('assets/vector-5.png', ),
-// ),
-// ),
-// child: Stack(children: [
-// Padding(
-// padding: EdgeInsets.only(top: 50, right: 30),
-// child: Stack(
-// alignment: Alignment.topRight,
-// children: [
-// Align(
-// alignment: Alignment.topRight,
-// child: Image.asset('assets/vector-11.png', scale: 1.4,)),
-// Align(
-// alignment: Alignment(0.6, -0.8),
-// child: Image.asset('assets/vector-12.png', scale: 1.5,)),
-// Align(
-// alignment: Alignment(0.7, -0.5),
-// child: Image.asset('assets/vector-13.png', scale: 1.5,)),
-// Align(
-// alignment: Alignment(0.2, -0.4),
-// child: Image.asset('assets/vector-14.png', scale: 1.5,)),
-// ],
-// ),
-// ),
-// Stack(
-// children:[
-// Align(
-// alignment: Alignment(-0.8, 0.2),
-// child: Image.asset('assets/vector-16.png', scale: 1.5,)),
-// Align(
-// alignment: Alignment(-0.4, -0),
-// child: Image.asset('assets/vector-15.png', scale: 1.5,)),
-// ],
-// ),
-// Padding(
-// padding: EdgeInsets.only(bottom: 20),
-// child: Align(
-// alignment: Alignment.bottomCenter,
-// child: Column(
-// mainAxisAlignment: MainAxisAlignment.end,
-// children: [
-// MaterialButton(
-// shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30)),
-// color: Color(0xff22c0e8),
-// minWidth: 220,
-// onPressed: () {
-// Navigator.push(
-// context,
-// MaterialPageRoute(builder: (context) => LoginSignUpSeeker()),
-// );
-// },
-// child:
-// Text("Look for Jobs",
-// textAlign: TextAlign.center,
-// style: TextStyle(
-// color: Colors.white, fontSize: 13)),
-// ),
-// MaterialButton(
-// shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30)),
-// color: Color(0xff57b22f),
-// minWidth: 220,
-// onPressed: () {
-// Navigator.push(
-// context,
-// MaterialPageRoute(builder: (context) => LoginSignUpEmployer())
-// );
-// },
-// child:
-// Text("Look for Employees",
-// textAlign: TextAlign.center,
-// style: TextStyle(
-// color: Colors.white, fontSize: 13)),
-// ),
-// SizedBox(height: 20),
-// Column(
-// children: [
-// Text("Copyright © 2019 by Dreamjob",
-// textAlign: TextAlign.center,
-// style: TextStyle(
-// color: Colors.white, fontSize: 10)
-// ),
-// Text("www.dreamjob.co.id",
-// textAlign: TextAlign.center,
-// style: TextStyle(
-// color: Colors.cyan[400], fontSize: 10)),
-// ],
-// ),
-// ],
-// ),
-// ),
-// ),
-// ],
-// ),
-// ),
-// );
-// }
-// }
+class DreamApp extends StatelessWidget {
+ @override
+ Widget build(BuildContext context) {
+ SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
+ statusBarColor: Colors.transparent,
+ statusBarBrightness: Brightness.light,
+ statusBarIconBrightness: Brightness.light,
+ systemNavigationBarIconBrightness: Brightness.light,
+ systemNavigationBarColor: Colors.black,
+ ));
+ return Material(
+ child: Container(
+ decoration: BoxDecoration(
+ image: DecorationImage(
+ fit: BoxFit.cover,
+ image: AssetImage('assets/vector-5.png', ),
+ ),
+ ),
+ child: Stack(children: [
+ Padding(
+ padding: EdgeInsets.only(top: 50, right: 30),
+ child: Stack(
+ alignment: Alignment.topRight,
+ children: [
+ Align(
+ alignment: Alignment.topRight,
+ child: Image.asset('assets/vector-11.png', scale: 1.4,)),
+ Align(
+ alignment: Alignment(0.6, -0.8),
+ child: Image.asset('assets/vector-12.png', scale: 1.5,)),
+ Align(
+ alignment: Alignment(0.7, -0.5),
+ child: Image.asset('assets/vector-13.png', scale: 1.5,)),
+ Align(
+ alignment: Alignment(0.2, -0.4),
+ child: Image.asset('assets/vector-14.png', scale: 1.5,)),
+ ],
+ ),
+ ),
+ Stack(
+ children:[
+ Align(
+ alignment: Alignment(-0.8, 0.2),
+ child: Image.asset('assets/vector-16.png', scale: 1.5,)),
+ Align(
+ alignment: Alignment(-0.4, -0),
+ child: Image.asset('assets/vector-15.png', scale: 1.5,)),
+ ],
+ ),
+ Padding(
+ padding: EdgeInsets.only(bottom: 20),
+ child: Align(
+ alignment: Alignment.bottomCenter,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ MaterialButton(
+ shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30)),
+ color: Color(0xff22c0e8),
+ minWidth: 220,
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(builder: (context) => LoginSignUpSeeker()),
+ );
+ },
+ child:
+ Text("Look for Jobs",
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ color: Colors.white, fontSize: 13)),
+ ),
+ MaterialButton(
+ shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30)),
+ color: Color(0xff57b22f),
+ minWidth: 220,
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(builder: (context) => LoginSignUpEmployer())
+ );
+ },
+ child:
+ Text("Look for Employees",
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ color: Colors.white, fontSize: 13)),
+ ),
+ SizedBox(height: 20),
+ Column(
+ children: [
+ Text("Copyright © 2019 by Dreamjob",
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ color: Colors.white, fontSize: 10)
+ ),
+ Text("www.dreamjob.co.id",
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ color: Colors.cyan[400], fontSize: 10)),
+ ],
+ ),
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
\ No newline at end of file
diff --git a/lib/src/core/models/apply.dart b/lib/src/core/models/apply.dart
index e0ed2ff..d2a5c79 100644
--- a/lib/src/core/models/apply.dart
+++ b/lib/src/core/models/apply.dart
@@ -6,12 +6,12 @@ import 'package:space/src/core/models/job.dart';
import './cart.dart';
-class ApplyItem {
+class ApplyPost {
final String id;
final List job;
final DateTime dateTime;
- ApplyItem({
+ ApplyPost({
@required this.id,
@required this.job,
@required this.dateTime,
@@ -19,27 +19,27 @@ class ApplyItem {
}
class Applys with ChangeNotifier {
- List _applys = [];
+ List _applys = [];
final String authToken;
final String userId;
Applys(this.authToken, this.userId, this._applys);
- List get applys {
+ List get applys {
return [..._applys];
}
Future fetchAndSetApplys() async {
final url = 'https://dreamjob-id.firebaseio.com/applys/$userId.json?auth=$authToken';
final response = await http.get(url);
- final List loadedApplys = [];
+ final List loadedApplys = [];
final extractedData = json.decode(response.body) as Map;
if (extractedData == null) {
return;
}
extractedData.forEach((applyId, applyData) {
loadedApplys.add(
- ApplyItem(
+ ApplyPost(
id: applyId,
dateTime: DateTime.parse(applyData['dateTime']),
job: (applyData['job'] as List)
@@ -86,7 +86,7 @@ class Applys with ChangeNotifier {
);
_applys.insert(
0,
- ApplyItem(
+ ApplyPost(
id: json.decode(response.body)['name'],
dateTime: timestamp,
job: addJobs,
diff --git a/lib/src/core/models/job.dart b/lib/src/core/models/job.dart
index e40fe2e..a449fb9 100644
--- a/lib/src/core/models/job.dart
+++ b/lib/src/core/models/job.dart
@@ -1,7 +1,4 @@
-import 'dart:convert';
-
import 'package:flutter/foundation.dart';
-import 'package:http/http.dart' as http;
class Job with ChangeNotifier {
final String id;
@@ -40,29 +37,8 @@ class Job with ChangeNotifier {
this.isSave = false,
});
- void _setSaveValue(bool newValue) {
- isSave = newValue;
- notifyListeners();
- }
-
- Future toggleSavePosts(String token, String userId) async {
- final oldStatus = isSave;
+ void toggleSavePosts() {
isSave = !isSave;
notifyListeners();
- final url =
- 'https://dreamjob-id.firebaseio.com/userSaves/$userId/$id.json?auth=$token';
- try {
- final response = await http.put(
- url,
- body: json.encode(
- isSave,
- ),
- );
- if (response.statusCode >= 400) {
- _setSaveValue(oldStatus);
- }
- } catch (error) {
- _setSaveValue(oldStatus);
- }
}
}
\ No newline at end of file
diff --git a/lib/src/core/models/jobs.dart b/lib/src/core/models/jobs.dart
index eb648a3..257250a 100644
--- a/lib/src/core/models/jobs.dart
+++ b/lib/src/core/models/jobs.dart
@@ -1,25 +1,132 @@
-import 'dart:convert';
-
import 'package:flutter/material.dart';
-import 'package:http/http.dart' as http;
-import 'package:space/src/core/models/http_exception.dart';
-
-import 'package:space/src/core/models/job.dart';
-// const String PARSE_APP_ID = '7lbdiypJa4ZfYMky5E7NxAGFWmnfP0CtTzk6mhRj';
-// const String PARSE_APP_URL = 'https://parseapi.back4app.com/classes/job';
-// const String CLIENT_KEY = 'UH2KRTDVttLRdEB5heG70tyAdB7pcjkHgtapP4mu';
-// const String LIVE_QUERY_URL = 'wss://dreamjob.back4app.io';
+import './job.dart';
class Jobs with ChangeNotifier {
- List _posts = [];
-
-final String authToken;
-final String userId;
+ List _posts = [
+ Job(
+ id: 'p1',
+ title: 'Head Chef',
+ employerName: 'Mekuru Ramen',
+ description: 'Our teams are up to date with the latest foods, media trends and are keen to prove themselves in this industry and that’s what you want from a food and beverages industry. Industry: Food and BeveragesOur teams are up to date with the latest foods, media trends and are keen to prove themselves in this industry and that’s what you want from a food and beverages industry. Industry: Food and BeveragesOur teams are up to date with the latest foods, media trends and are keen to prove themselves in this industry and that’s what you want from a food and beverages industry. Industry: Food and BeveragesOur teams are up to date with the latest foods, media trends and are keen to prove themselves in this industry and that’s what you want from a food and beverages industry. Industry: Food and BeveragesOur teams are up to date with the latest foods, media trends and are keen to prove themselves in this industry and that’s what you want from a food and beverages industry. Industry: Food and BeveragesOur teams are up to date with the latest foods, media trends and are keen to prove themselves in this industry and that’s what you want from a food and beverages industry. Industry: Food and Beverages',
+ salary: 2500000,
+ type: 'Full Time',
+ gender: 'Male',
+ typeSalary: 'Per Month',
+ location: 'Pontianak, Kalimantan Barat',
+ industry: 'Food and Beverages',
+ education: 'High School',
+ workingday: 'Tuesday - Sunday',
+ workinghour: '08.00 - 21.30',
+ imageUrl:
+ 'https://i.ibb.co/9NyNjxM/mekuru-2.png',
+ skill: 'required: '
+ '• 1+ years experience in F&B company'
+ '• work with passion and team oriented'
+ '• Kitchen oriented.'
+ '• can work comfortably alongside both jobuction and serving teams'
+ '• a strong written and verbal communicator'
+ '• attention to food serving perfection',
+ ),
+ Job(
+ id: 'p2',
+ title: 'Assistant Chef',
+ employerName: 'Mekuru Ramen',
+ description: 'Our teams are up to date with the latest foods, media trends and are keen to prove themselves in this industry and that’s what you want from a food and beverages industry. Industry: Food and Beverages',
+ salary: 2500000,
+ type: 'Part Time',
+ gender: 'Female',
+ typeSalary: 'Per Month',
+ location: 'Pontianak, Kalimantan Barat',
+ industry: 'Food and Beverages',
+ education: 'High School',
+ workingday: 'Tuesday - Sunday',
+ workinghour: '08.00 - 21.30',
+ imageUrl:
+ 'https://i.ibb.co/9NyNjxM/mekuru-2.png',
+ skill: 'required: '
+ '• 1+ years experience in F&B company'
+ '• work with passion and team oriented'
+ '• Kitchen oriented.'
+ '• can work comfortably alongside both jobuction and serving teams'
+ '• a strong written and verbal communicator'
+ '• attention to food serving perfection',
+ ),
+ Job(
+ id: 'p3',
+ title: 'Cleaning Service',
+ employerName: 'Up2u',
+ description: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.', salary: 2500000,
+ type: 'Weekend',
+ gender: 'Male / Female',
+ typeSalary: 'Per Day',
+ location: 'Banjarmasin, Kalimantan Barat',
+ industry: 'Food and Beverages',
+ education: 'High School',
+ workingday: 'Sunday',
+ workinghour: '10.00 - 22.00',
+ imageUrl:
+ 'https://i.ibb.co/1GcZb6v/up2u.png',
+ skill: 'required: '
+ '• -'
+ '• -'
+ '• -'
+ '• -'
+ '• -'
+ '• -',
+ ),
+ Job(
+ id: 'p4',
+ title: 'CCTV Installer',
+ employerName: 'CV. CCTV Installer',
+ description: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
+ salary: 1800000,
+ type: 'Freelance',
+ gender: 'Male / Female',
+ typeSalary: 'Per Week',
+ location: 'Singkawang, Kalimantan Barat',
+ industry: 'Technology',
+ education: 'High School',
+ workingday: 'Saturday - Sunday',
+ workinghour: '06.00 - 04.00',
+ imageUrl:
+ 'https://cdn.pixabay.com/photo/2017/12/27/10/14/image-3042333_960_720.png',
+ skill: 'required: '
+ '• -'
+ '• -'
+ '• -'
+ '• -'
+ '• -'
+ '• -',
+ ),
+ Job(
+ id: 'p5',
+ title: 'Mobile App Beckend',
+ employerName: 'PT. Mobile Apps',
+ description: 'Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.',
+ salary: 10000000,
+ type: 'Full Time',
+ gender: 'Male',
+ typeSalary: 'Per Month',
+ location: 'Jakarta, Jawa Timur',
+ industry: 'Human Resource',
+ education: 'S1',
+ workingday: 'Everyday',
+ workinghour: '07.00 - 17.00',
+ imageUrl:
+ 'https://img.freepik.com/free-vector/professional-programmer-engineer-writing-code_3446-693.jpg?size=338&ext=jpg',
+ skill: 'required: '
+ '• -'
+ '• -'
+ '• -'
+ '• -'
+ '• -'
+ '• -',
+ ),
+ ];
+ // var _showFavoritesOnly = false;
-Jobs(this.authToken, this.userId, this._posts);
-
- List get posts {
+ List get posts {
return [..._posts];
}
@@ -30,137 +137,19 @@ Jobs(this.authToken, this.userId, this._posts);
Job findById(String id) {
return _posts.firstWhere((job) => job.id == id);
}
-
- Future fetchAndSetJobs([bool filterByUser = false]) async {
- final filterString = filterByUser ? 'orderBy"creatorId"&equalTo="$userId"' : '';
- var url =
- 'https://dreamjob-id.firebaseio.com/jobs.json?auth=$authToken&$filterString';
- try {
- final response = await http.get(url);
- final extractedData = json.decode(response.body) as Map;
- if (extractedData == null) {
- return;
- }
- url =
- 'https://dreamjob-id.firebaseio.com/userSaves/$userId.json?auth=$authToken';
- final saveResponse = await http.get(url);
- final saveData = json.decode(saveResponse.body);
- final List loadedJobs = [];
- extractedData.forEach((jobId, jobData) {
- loadedJobs.add(Job(
- id: jobId,
- title: jobData['title'],
- industry: jobData['industry'],
- workingday: jobData['workingday'],
- workinghour: jobData['workinghour'],
- gender: jobData['gender'],
- typeSalary: jobData['typeSalary'],
- type: jobData['type'],
- location: jobData['location'],
- education: jobData['education'],
- skill: jobData['skill'],
- description: jobData['description'],
- salary: jobData['salary'],
- imageUrl: jobData['imageUrl'],
- isSave:
- saveData == null ? false : saveData[jobId] ?? false,
- ));
- });
- _posts = loadedJobs;
- notifyListeners();
- } catch (error) {
- print(error);
- throw error;
- }
- }
- Future addJob(Job job) async {
- final url = 'https://dreamjob-id.firebaseio.com/jobs.json?auth=$authToken';
- try {
- final response = await http.post(
- url,
- body: json.encode({
- 'title': job.title,
- 'gender': job.gender,
- 'industry': job.industry,
- 'workingday': job.workingday,
- 'workinghour': job.workinghour,
- 'type': job.type,
- 'location': job.location,
- 'education': job.education,
- 'skill': job.skill,
- 'description': job.description,
- 'salary': job.salary,
- // 'imageUrl': job.imageUrl,
- 'creatorId' : userId,
- }),
- );
- final newJob = Job(
- title: job.title,
- typeSalary: job.typeSalary,
- gender: job.gender,
- industry: job.industry,
- workingday: job.workingday,
- workinghour: job.workinghour,
- type: job.type,
- location: job.location,
- education: job.education,
- skill: job.skill,
- description: job.description,
- salary: job.salary,
- // imageUrl: job.imageUrl,
- id: json.decode(response.body)['name'],
- );
- _posts.add(newJob);
- _posts.insert(0, newJob);
- notifyListeners();
- } catch (error) {
- print(error);
- throw error;
- }
-}
+ // void showFavoritesOnly() {
+ // _showFavoritesOnly = true;
+ // notifyListeners();
+ // }
- Future updateJob(String id, Job newJob) async {
- final jobIndex = _posts.indexWhere((job) => job.id == id);
- if (jobIndex >= 0) {
- final url =
- 'https://dreamjob-id.firebaseio.com/jobs/$id.json?auth=$authToken';
- await http.patch(url,
- body: json.encode({
- 'title': newJob.title,
- 'typeSalary': newJob.typeSalary,
- 'gender': newJob.gender,
- 'industry': newJob.industry,
- 'workingday': newJob.workingday,
- 'workinghour': newJob.workinghour,
- 'type': newJob.type,
- 'location': newJob.location,
- 'education': newJob.education,
- 'skill': newJob.skill,
- 'description': newJob.description,
- 'salary': newJob.salary,
- // 'imageUrl': newJob.imageUrl,
- }));
- _posts[jobIndex] = newJob;
- notifyListeners();
- } else {
- print('...');
- }
- }
+ // void showAll() {
+ // _showFavoritesOnly = false;
+ // notifyListeners();
+ // }
- Future deleteJob(String id) async {
- final url =
- 'https://dreamjob-id.firebaseio.com/jobs/$id.json?auth=$authToken';
- final existingJobIndex = _posts.indexWhere((job) => job.id == id);
- var existingJob = _posts[existingJobIndex];
- _posts.removeAt(existingJobIndex);
+ void addJob() {
+ // _posts.add(value);
notifyListeners();
- final response = await http.delete(url);
- if (response.statusCode >= 400) {
- _posts.insert(existingJobIndex, existingJob);
- notifyListeners();
- throw HttpException('Could not delete post.');
- }
- existingJob = null;
}
-}
\ No newline at end of file
+}
diff --git a/lib/src/ui/auth/employer/home_employer.dart b/lib/src/ui/auth/employer/home_employer.dart
index f8d023c..477b7ce 100644
--- a/lib/src/ui/auth/employer/home_employer.dart
+++ b/lib/src/ui/auth/employer/home_employer.dart
@@ -1,6 +1,11 @@
import 'package:carousel_slider/carousel_slider.dart';
import 'package:feather_icons_flutter/feather_icons_flutter.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
+import 'package:gradient_app_bar/gradient_app_bar.dart';
+import 'package:carousel_pro/carousel_pro.dart';
+import 'package:space/src/ui/components/category_job_screen.dart';
import 'package:space/src/ui/employer/widgets/employer_app_drawer.dart';
import 'package:space/src/ui/components/horizontal_screen.dart';
@@ -21,14 +26,6 @@ class _HomePageEmployerState extends State {
fontFamily: 'TitilliumWeb', fontSize: 20.0, color: Color(0xff3b3b3b));
int _current = 0;
- final List imgList = [
- Image.asset('assets/home.png', fit: BoxFit.contain),
- Image.asset('assets/vector-3.png', fit: BoxFit.contain),
- Image.asset('assets/job.png', fit: BoxFit.contain),
- Image.asset('assets/job2.png', fit: BoxFit.contain),
- Image.asset('assets/blog.png', fit: BoxFit.contain),
- ];
-
List map(List list, Function handler) {
List result = [];
for (var i = 0; i < list.length; i++) {
@@ -40,754 +37,660 @@ class _HomePageEmployerState extends State {
@override
Widget build(BuildContext context) {
- return Scaffold(
- drawer: EmployerDrawer(),
- backgroundColor: Colors.grey[200],
- appBar: AppBar(
- automaticallyImplyLeading: false,
- elevation: 0.0,
- backgroundColor: Colors.grey[200],
- leading: Builder(
- builder: (context) => IconButton(
- icon: Icon(Icons.menu),
- onPressed: () => Scaffold.of(context).openDrawer(),
+ return Stack(
+ children: [
+ Container(
+ height: 94,
+ width: MediaQuery.of(context).size.width,
+ child: SvgPicture.asset(
+ 'assets/vector-5.svg',
+ fit: BoxFit.fitWidth,
),
),
- title: TextFormField(
- textInputAction: TextInputAction.search,
- style: style.copyWith(
- fontSize: 16,
- color: Color(0xffc9c8c8),
- decoration: TextDecoration.none,
+ Scaffold(
+ drawer: EmployerDrawer(),
+ backgroundColor: Colors.transparent,
+ appBar: PreferredSize(
+ preferredSize: Size.fromHeight(70), // here the desired height
+ child: AppBar(
+ backgroundColor: Colors.transparent,
+ automaticallyImplyLeading: false,
+ leading: Builder(
+ builder: (context) => IconButton(
+ icon: Icon(Icons.menu, color: Colors.white),
+ onPressed: () => Scaffold.of(context).openDrawer(),
+ ),
+ ),
+ title: TextFormField(
+ textInputAction: TextInputAction.search,
+ style: style.copyWith(
+ fontSize: 16,
+ color: Color(0xffc9c8c8),
+ decoration: TextDecoration.none,
+ ),
+ decoration: InputDecoration(
+ focusedBorder: InputBorder.none,
+ contentPadding: EdgeInsets.fromLTRB(20.0, 15.0, 20.0, 15.0),
+ prefixIcon: IconButton(
+ onPressed: () {},
+ icon: Icon(
+ FeatherIcons.search,
+ size: 18,
+ ),
+ color: Color(0xffc9c8c8)),
+ fillColor: Colors.white,
+ filled: true,
+ hintText: 'Try "Barista"',
+ hintStyle:
+ style.copyWith(color: Color(0xffc9c8c8), fontSize: 16),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xffc5cfda)),
+ )),
+ ),
+ ),
),
- decoration: InputDecoration(
- focusedBorder: InputBorder.none,
- contentPadding: EdgeInsets.fromLTRB(20.0, 15.0, 20.0, 15.0),
- prefixIcon: IconButton(
- onPressed: () {},
- icon: Icon(
- FeatherIcons.search,
- size: 18,
- ),
- color: Color(0xffc9c8c8)),
- fillColor: Colors.white,
- filled: true,
- hintText: 'Try "Barista"',
- hintStyle: style.copyWith(color: Color(0xffc9c8c8), fontSize: 16),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xffc5cfda)),
- )),
- ),
- ),
- body: ListView(
- children: [
- Container(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
- Column(children: [
- CarouselSlider(
- items: imgList,
- autoPlay: true,
- enlargeCenterPage: true,
- aspectRatio: 2.0,
- onPageChanged: (index) {
- setState(() {
- _current = index;
- });
- },
- ),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 35),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: map(
- imgList,
- (index, url) {
- return Container(
- width: 8.0,
- height: 8.0,
- margin: EdgeInsets.symmetric(horizontal: 2.0),
- decoration: BoxDecoration(
- shape: BoxShape.circle,
- color: _current == index
- ? Color.fromRGBO(0, 0, 0, 0.9)
- : Color.fromRGBO(0, 0, 0, 0.4)),
- );
- },
+ body: ListView(
+ children: [
+ Container(
+ child: Column(
+ children: [
+ Container(
+ height: 110,
+ child: Carousel(
+ autoplay: true,
+ animationCurve: Curves.fastOutSlowIn,
+ animationDuration: Duration(milliseconds: 2000),
+ dotSize: 4.0,
+ dotSpacing: 15,
+ dotIncreasedColor: Colors.amber,
+ dotBgColor: Colors.transparent,
+ dotPosition: DotPosition.bottomLeft,
+ dotVerticalPadding: 5.0,
+ showIndicator: true,
+ dotHorizontalPadding: 10.0,
+ indicatorBgPadding: 0,
+ images: [
+ Padding(
+ padding:
+ EdgeInsets.symmetric(horizontal: 10, vertical: 10),
+ child: ClipRRect(
+ borderRadius: new BorderRadius.circular(10),
+ child: SvgPicture.asset(
+ 'assets/dream-cast.svg',
+ fit: BoxFit.fill,
+ ),
+ ),
),
- ),
- Text('See All',
- style: style2.copyWith(
- fontSize: 10,
- color: Color(0xffc9c8c8),
- letterSpacing: 1)),
- ],
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
+ child: ClipRRect(
+ borderRadius: new BorderRadius.circular(10),
+ child: SvgPicture.asset(
+ 'assets/dream-cast.svg',
+ fit: BoxFit.fill,
+ ),
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
+ child: ClipRRect(
+ borderRadius: new BorderRadius.circular(10),
+ child: SvgPicture.asset(
+ 'assets/dream-cast.svg',
+ fit: BoxFit.fill,
+ ),
+ ),
+ ),
+ ],
+ ),
),
- ),
- ]),
- SizedBox(height: 10),
- Container(
- margin: EdgeInsets.only(top: 10),
- height: 45,
- child: ListTile(
- leading: Container(
- child: Text('Recent Job',
- style: style2.copyWith(
- fontSize: 16,
- fontWeight: FontWeight.bold,
- letterSpacing: 1))),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(
- fontSize: 10,
- color: Color(0xffc9c8c8),
- letterSpacing: 1))),
- onTap: () {},
- )),
- SizedBox(height: 180, child: HorizontalScreen()),
- Container(
- height: 50,
- child: ListTile(
- leading: Text('Recomended Job',
- style: style2.copyWith(
- fontSize: 16,
- fontWeight: FontWeight.bold,
- letterSpacing: 1)),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(
- fontSize: 10,
- color: Color(0xffc9c8c8),
- letterSpacing: 1))),
- onTap: () {},
- )),
- SizedBox(
- height: 180,
- child: RecommendedScreen(),
- ),
- Container(
- margin: EdgeInsets.only(top: 10),
- height: 45,
- child: ListTile(
- leading: Container(
- child: Text('Feed your Dreams',
- style: style2.copyWith(
- fontSize: 16,
- fontWeight: FontWeight.bold,
- letterSpacing: 1))),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(
- fontSize: 10,
- color: Color(0xffc9c8c8),
- letterSpacing: 1))),
- onTap: () {},
- )),
- Container(
- padding: EdgeInsets.symmetric(horizontal: 16),
- child: Column(
- children: [
- Text(
- 'Success story from people around you, encourage, giving nutritions to your dreams.',
- style: style.copyWith(fontSize: 13)),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10, left: 16, right: 16),
- padding: EdgeInsets.only(bottom: 10),
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.only(
- bottomLeft: Radius.circular(5),
- bottomRight: Radius.circular(5))),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.min,
- children: [
- SizedBox(
- width: MediaQuery.of(context).size.width,
- height: 200,
- child: Image.asset('assets/blog.png',
- fit: BoxFit.cover)),
- Padding(
- padding: EdgeInsets.all(10),
- child: Text("How to success and winning competition",
- style: style.copyWith(
- color: Color(0xff3b3b3b),
- fontSize: 16,
- fontWeight: FontWeight.bold,
- letterSpacing: 0.5,
- ))),
- Padding(
- padding: EdgeInsets.all(10),
- child: Text(
- 'Success story from people around you, encourage, giving nutritions to your dreams. Lorem ipsum dollor',
- style: style.copyWith(
- color: Color(0xff3b3b3b), fontSize: 12))),
- ],
- ),
- ),
- Container(
- margin: EdgeInsets.only(top: 10),
- height: 45,
- child: ListTile(
- leading: Container(
- child: Text('People around you',
+ SizedBox(height: 70, child: CategoryScreen()),
+ Container(
+ height: 45,
+ child: ListTile(
+ leading: Container(
+ child: Text('Recommended Job',
+ style: style2.copyWith(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 1))),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ SizedBox(height: 150, child: RecommendedScreen()),
+ Container(
+ height: 50,
+ child: ListTile(
+ leading: Text('Recent Job',
style: style2.copyWith(
fontSize: 16,
fontWeight: FontWeight.bold,
- letterSpacing: 1))),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(
- fontSize: 10,
- color: Color(0xffc9c8c8),
- letterSpacing: 1))),
- onTap: () {},
- )),
- Material(
- child: Container(
- height: 120,
- child: SingleChildScrollView(
- scrollDirection: Axis.horizontal,
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
+ letterSpacing: 1)),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ SizedBox(
+ height: 180,
+ child: RecentScreen(),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10),
+ height: 45,
+ child: ListTile(
+ leading: Container(
+ child: Text('Feed your Dreams',
+ style: style2.copyWith(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 1))),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ Card(
+ margin:
+ EdgeInsets.symmetric(horizontal: 15, vertical: 10),
+ elevation: 3,
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10)),
+ child: Container(
+ padding: EdgeInsets.only(bottom: 10),
+ decoration: BoxDecoration(color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
children: [
+ ClipRRect(
+ borderRadius: BorderRadius.only(
+ topLeft: Radius.circular(10),
+ topRight: Radius.circular(10)),
+ child: Image.asset('assets/blog.png',
+ fit: BoxFit.fitWidth)),
+ Padding(
+ padding: EdgeInsets.all(10),
+ child: Text(
+ "How to success and winning competition",
+ style: style.copyWith(
+ color: Color(0xff3b3b3b),
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 0.5,
+ ))),
Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ padding: EdgeInsets.all(10),
+ child: Text(
+ 'Success story from people around you, encourage, giving nutritions to your dreams. Lorem ipsum dollor',
+ style: style.copyWith(
+ color: Color(0xff3b3b3b),
+ fontSize: 12))),
+ ],
+ ),
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 10),
+ height: 45,
+ child: ListTile(
+ leading: Container(
+ child: Text('People around you',
+ style: style2.copyWith(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 1))),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ Material(
+ child: Container(
+ height: 120,
+ child: SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceAround,
+ children: [
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) =>
+ SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Uray Bawadi',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Uray Bawadi',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_2.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_2.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Yudi Salim',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Yudi Salim',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_3.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_3.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Aprianto',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Aprianto',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_4.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_4.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Gamabunta',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Gamabunta',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Uray Bawadi',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Uray Bawadi',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_2.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_2.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Yudi Salim',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Yudi Salim',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_3.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_3.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Aprianto',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Aprianto',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_4.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_4.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Gamabunta',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Gamabunta',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Uray Bawadi',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Uray Bawadi',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_2.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_2.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Yudi Salim',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Yudi Salim',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_3.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_3.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Aprianto',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Aprianto',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment:
- MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () {
- Navigator.push(
- context,
- new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView()));
- },
- child: CircleAvatar(
- backgroundColor:
- Color(0xff48576a),
- radius: 30.0,
- child: Image.asset(
- 'assets/img_profil_4.png',
- scale: 1.3))),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add,
- color: Colors.white,
- size: 16,
- ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_4.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Gamabunta',
+ style: style.copyWith(fontSize: 10),
),
],
),
- Text(
- 'Gamabunta',
- style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- ]),
+ ),
+ ]),
+ ),
+ ),
),
- ),
+ SizedBox(height: 30)
+ ],
),
- SizedBox(height: 30)
- ],
- ),
+ ),
+ ],
),
- ],
- ),
+ ),
+ ],
);
}
}
diff --git a/lib/src/ui/auth/employer/intro_employer.dart b/lib/src/ui/auth/employer/intro_employer.dart
new file mode 100644
index 0000000..6293c3d
--- /dev/null
+++ b/lib/src/ui/auth/employer/intro_employer.dart
@@ -0,0 +1,92 @@
+import 'package:flutter/material.dart';
+import 'package:intro_views_flutter/Models/page_view_model.dart';
+import 'package:intro_views_flutter/intro_views_flutter.dart';
+import 'package:space/src/ui/auth/employer/ui_get_started_employer.dart';
+
+
+class IntroImployer extends StatelessWidget {
+ final pages = [
+ PageViewModel(
+ pageColor: const Color(0xffff6d00),
+ iconImageAssetPath: 'assets/employer-2.png',
+
+ bubble: Image.asset('assets/employer-2.png'),
+ body: Text(
+ 'Check profile information easier.',
+ ),
+ title: Text(
+ 'Choose Applicants with simple click!', textAlign: TextAlign.center,
+ ),
+ titleTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold),
+ bodyTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21),
+ mainImage: Image.asset(
+ 'assets/employer-2.png',
+ height: 450.0,
+ width: 450.0,
+ alignment: Alignment.center,
+ )),
+ PageViewModel(
+ pageColor: const Color(0xffd50000),
+ iconImageAssetPath: 'assets/employer-1.png',
+ bubble: Image.asset('assets/employer-1.png'),
+ body: Text(
+ 'Faster and Effectives to hired.',
+ ),
+ title: Text(
+ 'New and Easier Way!', textAlign: TextAlign.center,
+ ),
+ titleTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold),
+ bodyTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21),
+ mainImage: Image.asset(
+ 'assets/employer-1.png',
+ height: 285.0,
+ width: 285.0,
+ alignment: Alignment.center,
+ )),
+ PageViewModel(
+ pageColor: const Color(0xff64dd17),
+ bubble: Image.asset('assets/employer-3.png'),
+ iconImageAssetPath: 'assets/employer-3.png',
+ body: Text('Contact your candidate directly with chat and live interview features.',
+ textAlign: TextAlign.center),
+ title: Text('Get in touch directly!',
+ textAlign: TextAlign.center),
+ mainImage: Image.asset(
+ 'assets/employer-3.png',
+ height: 285.0,
+ width: 285.0,
+ alignment: Alignment.center,
+ ),
+ titleTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold),
+ bodyTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21),
+ ),
+ ];
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ body: Builder(
+ builder: (context) => IntroViewsFlutter(
+ pages,
+ showNextButton: true,
+ showBackButton: true,
+ showSkipButton: true,
+ doneText: Text('DONE'),
+ onTapDoneButton: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => UiGetStartedEmployer(),
+ ), //MaterialPageRoute
+ );
+ },
+ pageButtonTextStyles: TextStyle(
+ color: Colors.white,
+ fontSize: 16.0,
+ ),
+ pageButtonTextSize: 5,
+ ), //IntroViewsFlutter
+ ), //Builder
+ ); //Material App
+ }
+}
diff --git a/lib/src/ui/auth/employer/login_employer.dart b/lib/src/ui/auth/employer/login_employer.dart
deleted file mode 100644
index bc1b4df..0000000
--- a/lib/src/ui/auth/employer/login_employer.dart
+++ /dev/null
@@ -1,202 +0,0 @@
-import 'package:flutter/material.dart';
-
-import 'package:space/src/ui/auth/employer/ui_get_started_employer.dart';
-
-
-class LoginEmployer extends StatefulWidget {
-
- static const routeName = 'signup_or_login';
-
- @override
- _LoginEmployerState createState() => _LoginEmployerState();
-}
-
-class _LoginEmployerState extends State {
- TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0);
-
- @override
- Widget build(BuildContext context) {
- final textBody =
- Column(children: [
- Column(
- children: [
- Text('LOGIN TO YOUR ACCOUNT',
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Color(0xff2c4057), fontSize: 12)
- ),
- ],
- ),
- Row(children: [
- Expanded(
- child: new Container(
- margin: const EdgeInsets.symmetric(horizontal: 70),
- child: Divider(
- thickness: 2,
- color: Color(0xff22c0e8),
- height: 30)),
- )
- ]
- )
- ]
- );
-
-
- final emailField = new TextFormField(
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: 'Username',
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Email can\'t be empty' : null
- );
-
- final passwordField = TextFormField(
- obscureText: true,
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: 'Password',
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Password can\'t be empty' : null
- );
-
- final loginButton = Material(
- elevation: 3.0,
- borderRadius: BorderRadius.circular(30.0),
- color: Color(0xff57b22f),
- child: MaterialButton(
- padding: EdgeInsets.fromLTRB(60.0, 15.0, 20.0, 15.0),
- onPressed: () { Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => UiGetStartedEmployer()));
- },
- child: Row(
- children: [
- Text('Login Now',
- textAlign: TextAlign.center,
- style: style.copyWith(
- color: Colors.white, fontSize: 14)),
- const Expanded(
- child: Icon(Icons.arrow_forward, color: Colors.white, size: 18,)),
- ],
- ),
- ),
- );
-
- final linkForgot = Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- MaterialButton(
- padding: EdgeInsets.fromLTRB(5.0, 5.0, 5.0, 5.0),
- onPressed: (){},
- child: Text('FORGOT PASSWORD?',
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Colors.cyan[400], fontSize: 9))),
- Text('|', style: style.copyWith(fontSize: 8, color: Colors.blueGrey)),
- MaterialButton(
- padding: EdgeInsets.fromLTRB(5.0, 5.0, 0.0, 5.0),
- onPressed: () {Navigator.pushNamed(context, 'space/register_account');},
- child: Text('REGISTER AN ACCOUNT',
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Colors.blueGrey, fontSize: 9))),
- ],
- ),
- );
-
- return LayoutBuilder(
- builder: (BuildContext context, BoxConstraints viewportConstraints) {
- return Scaffold(
- body: SingleChildScrollView(
- child: ConstrainedBox(
- constraints: BoxConstraints(
- minHeight: viewportConstraints.maxHeight,
- ),
- child: Container(
- padding: EdgeInsets.only(left: 60, right: 60),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- mainAxisSize: MainAxisSize.min,
- children: [
- textBody,
- SizedBox(
- height: 10.0,
- ),
- SizedBox(height: 50.0),
- emailField,
- SizedBox(height: 20.0),
- passwordField,
- SizedBox(
- height: 30.0,
- ),
- loginButton,
- SizedBox(
- height: 5.0,
- ),
- linkForgot,
- SizedBox(
- height: 80.0,
- ),
-
- Column (
- children: [
- Text('Copyright © 2019 by Dreamjob',
- textAlign: TextAlign.center,
- style: style.copyWith(
- color: Colors.blueGrey, fontSize: 10)
- ),
- Text('www.dreamjob.com',
- textAlign: TextAlign.center,
- style: style.copyWith(
- color: Colors.cyan[400], fontSize: 10)),
- ],
- ),
- SizedBox(
- height: 5
- ),
- ],
- ),),
- ),
- ),
- );
- }
-
-);
- }
- }
-
diff --git a/lib/src/ui/auth/employer/login_signup_employer.dart b/lib/src/ui/auth/employer/login_signup_employer.dart
index bcc00fd..517ad17 100644
--- a/lib/src/ui/auth/employer/login_signup_employer.dart
+++ b/lib/src/ui/auth/employer/login_signup_employer.dart
@@ -1,9 +1,14 @@
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
+import 'package:space/navigator_employer.dart';
import 'package:space/src/core/models/http_exception.dart';
import 'package:space/src/core/models/auth.dart';
+import 'package:space/src/ui/auth/employer/intro_employer.dart';
+import 'package:space/src/ui/auth/employer/ui_get_started_employer.dart';
+import 'package:space/src/ui/components/otp_employer.dart';
enum AuthMode { Signup, Login }
@@ -12,32 +17,34 @@ class LoginSignUpEmployer extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return Container(
- decoration: BoxDecoration(
- image: DecorationImage(
- image: AssetImage('assets/vector-5.png'),
- fit: BoxFit.cover,
- ),
+ return Stack(
+ children: [
+ SvgPicture.asset(
+ 'assets/vector-5.svg',
+ height: MediaQuery.of(context).size.height,
+ width: MediaQuery.of(context).size.width,
+ fit: BoxFit.fill,
+ ),
+ Scaffold(
+ backgroundColor: Colors.transparent,
+ body: Column(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Padding(
+ padding: EdgeInsets.only(top: 20, bottom: 10),
+ child: Container(
+ alignment: Alignment.center,
+ child: Image.asset('assets/logo.png'),
+ height: 130,
),
- child: Scaffold(
- backgroundColor: Colors.transparent,
- body: Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Padding(
- padding: EdgeInsets.only(top: 20, bottom: 10),
- child:Container(
- alignment: Alignment.center,
- child: Image.asset('assets/logo_vertical.png'),
- height: 80,
- ),
- ),
- Flexible(
- child: AuthCard(),
- ),
- ],
),
- ),
+ Flexible(
+ child: AuthCard(),
+ ),
+ ],
+ ),
+ ),
+ ],
);
}
}
@@ -65,67 +72,67 @@ class _AuthCardState extends State {
showDialog(
context: context,
builder: (ctx) => AlertDialog(
- title: Text('An Error Occurred!'),
- content: Text(message),
- actions: [
- FlatButton(
- child: Text('Okay'),
- onPressed: () {
- Navigator.of(ctx).pop();
- },
- )
- ],
- ),
+ title: Text('An Error Occurred!'),
+ content: Text(message),
+ actions: [
+ FlatButton(
+ child: Text('Okay'),
+ onPressed: () {
+ Navigator.of(ctx).pop();
+ },
+ )
+ ],
+ ),
);
}
- Future _submit() async {
- if (!_formKey.currentState.validate()) {
- // Invalid!
- return;
- }
- _formKey.currentState.save();
- setState(() {
- _isLoading = true;
- });
- try {
- if (_authMode == AuthMode.Login) {
- // Log user in
- await Provider.of(context, listen: false).login(
- _authData['email'],
- _authData['password'],
- );
- } else {
- // Sign user up
- await Provider.of(context, listen: false).signup(
- _authData['email'],
- _authData['password'],
- );
- }
- } on HttpException catch (error) {
- var errorMessage = 'Authentication failed';
- if (error.toString().contains('EMAIL_EXISTS')) {
- errorMessage = 'This email address is already in use.';
- } else if (error.toString().contains('INVALID_EMAIL')) {
- errorMessage = 'This is not a valid email address';
- } else if (error.toString().contains('WEAK_PASSWORD')) {
- errorMessage = 'This password is too weak.';
- } else if (error.toString().contains('EMAIL_NOT_FOUND')) {
- errorMessage = 'Could not find a user with that email.';
- } else if (error.toString().contains('INVALID_PASSWORD')) {
- errorMessage = 'Invalid password.';
- }
- _showErrorDialog(errorMessage);
- } catch (error) {
- const errorMessage =
- 'Could not authenticate you. Please try again later.';
- _showErrorDialog(errorMessage);
- }
+ // Future _submit() async {
+ // if (!_formKey.currentState.validate()) {
+ // // Invalid!
+ // return;
+ // }
+ // _formKey.currentState.save();
+ // setState(() {
+ // _isLoading = true;
+ // });
+ // try {
+ // if (_authMode == AuthMode.Login) {
+ // // Log user in
+ // await Provider.of(context, listen: false).login(
+ // _authData['email'],
+ // _authData['password'],
+ // );
+ // } else {
+ // // Sign user up
+ // await Provider.of(context, listen: false).signup(
+ // _authData['email'],
+ // _authData['password'],
+ // );
+ // }
+ // } on HttpException catch (error) {
+ // var errorMessage = 'Authentication failed';
+ // if (error.toString().contains('EMAIL_EXISTS')) {
+ // errorMessage = 'This email address is already in use.';
+ // } else if (error.toString().contains('INVALID_EMAIL')) {
+ // errorMessage = 'This is not a valid email address';
+ // } else if (error.toString().contains('WEAK_PASSWORD')) {
+ // errorMessage = 'This password is too weak.';
+ // } else if (error.toString().contains('EMAIL_NOT_FOUND')) {
+ // errorMessage = 'Could not find a user with that email.';
+ // } else if (error.toString().contains('INVALID_PASSWORD')) {
+ // errorMessage = 'Invalid password.';
+ // }
+ // _showErrorDialog(errorMessage);
+ // } catch (error) {
+ // const errorMessage =
+ // 'Could not authenticate you. Please try again later.';
+ // _showErrorDialog(errorMessage);
+ // }
- setState(() {
- _isLoading = false;
- });
- }
+ // setState(() {
+ // _isLoading = false;
+ // });
+ // }
void _switchAuthMode() {
if (_authMode == AuthMode.Login) {
@@ -142,243 +149,264 @@ class _AuthCardState extends State {
@override
Widget build(BuildContext context) {
return Form(
- key: _formKey,
- child: SingleChildScrollView(
- child: Column(
+ key: _formKey,
+ child: SingleChildScrollView(
+ child: Column(
+ children: [
+ Column(
children: [
- Column(children: [
- Text((_authMode == AuthMode.Login ? 'LOGIN AN ACCOUNT' : 'SIGN UP AN ACCOUNT'),
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: TextStyle(
- color: Colors.white, fontSize: 14)
- ),
- ],
- ),
- Row(children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(left: 120, right: 120),
- child: Divider(
- thickness: 2,
- color: Color(0xff22c0e8),
- height: 30)),
- )
- ]
- ),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
- child: TextFormField(
- decoration: InputDecoration(
- contentPadding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
- errorStyle: TextStyle(color: Theme.of(context).errorColor),
- hintText: 'E-mail',
- hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedErrorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- errorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8)),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- ),
- keyboardType: TextInputType.emailAddress,
- validator: (value) {
- if (value.isEmpty || !value.contains('@')) {
- return 'Invalid email!';
- }
- },
- onSaved: (value) {
- _authData['email'] = value;
- },
+ Text(
+ (_authMode == AuthMode.Login
+ ? 'LOGIN AN ACCOUNT'
+ : 'SIGN UP AN ACCOUNT'),
+ textAlign: TextAlign.center,
+ overflow: TextOverflow.ellipsis,
+ style: TextStyle(color: Colors.white, fontSize: 14)),
+ ],
+ ),
+ Row(children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(left: 120, right: 120),
+ child: Divider(
+ thickness: 2, color: Color(0xff22c0e8), height: 30)),
+ )
+ ]),
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
+ child: TextFormField(
+ decoration: InputDecoration(
+ contentPadding:
+ EdgeInsets.symmetric(horizontal: 20, vertical: 10),
+ errorStyle: TextStyle(color: Theme.of(context).errorColor),
+ hintText: 'E-mail',
+ hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
+ filled: true,
+ fillColor: Color(0xffdcdfe3),
+ focusedErrorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ errorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xff22c0e8)),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Colors.transparent),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
),
+ keyboardType: TextInputType.emailAddress,
+ validator: (value) {
+ if (value.isEmpty || !value.contains('@')) {
+ return 'Invalid email!';
+ }
+ },
+ onSaved: (value) {
+ _authData['email'] = value;
+ },
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
+ child: TextFormField(
+ decoration: InputDecoration(
+ contentPadding:
+ EdgeInsets.symmetric(horizontal: 20, vertical: 10),
+ errorStyle: TextStyle(color: Theme.of(context).errorColor),
+ hintText: 'Password',
+ hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
+ filled: true,
+ fillColor: Color(0xffdcdfe3),
+ focusedErrorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ errorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xff22c0e8)),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Colors.transparent),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
- child: TextFormField(
+ obscureText: true,
+ controller: _passwordController,
+ validator: (value) {
+ if (value.isEmpty || value.length < 5) {
+ return 'Password is too short!';
+ }
+ },
+ onSaved: (value) {
+ _authData['password'] = value;
+ },
+ ),
+ ),
+ if (_authMode == AuthMode.Signup)
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
+ child: TextFormField(
+ enabled: _authMode == AuthMode.Signup,
decoration: InputDecoration(
- contentPadding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
- errorStyle: TextStyle(color: Theme.of(context).errorColor),
- hintText: 'Password',
- hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedErrorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- errorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8)),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.all(Radius.circular(30))),
+ contentPadding:
+ EdgeInsets.symmetric(horizontal: 20, vertical: 10),
+ errorStyle: TextStyle(color: Theme.of(context).errorColor),
+ hintText: 'Confirm Password',
+ hintStyle:
+ TextStyle(color: Color(0xff8997a7), fontSize: 14),
+ filled: true,
+ fillColor: Color(0xffdcdfe3),
+ focusedErrorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ errorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xff22c0e8)),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Colors.transparent),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
),
obscureText: true,
- controller: _passwordController,
- validator: (value) {
- if (value.isEmpty || value.length < 5) {
- return 'Password is too short!';
- }
- },
- onSaved: (value) {
- _authData['password'] = value;
- },
- ),
- ),
- if (_authMode == AuthMode.Signup)
-
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
- child: TextFormField(
- enabled: _authMode == AuthMode.Signup,
- decoration: InputDecoration(
- contentPadding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
- errorStyle: TextStyle(color: Theme.of(context).errorColor),
- hintText: 'Confirm Password',
- hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedErrorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- errorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8)),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- ),
- obscureText: true,
- validator: _authMode == AuthMode.Signup
- ? (value) {
- if (value != _passwordController.text) {
- return 'Passwords do not match!';
- }
+ validator: _authMode == AuthMode.Signup
+ ? (value) {
+ if (value != _passwordController.text) {
+ return 'Passwords do not match!';
}
- : null,
- ),
- ),
- SizedBox(
- height: 20,
+ }
+ : null,
),
- if (_isLoading)
- CircularProgressIndicator(
- backgroundColor: Color(0xff22c0e8),
- )
- else
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
+ ),
+ SizedBox(
+ height: 20,
+ ),
+ if (_isLoading)
+ CircularProgressIndicator(
+ backgroundColor: Color(0xff22c0e8),
+ )
+ else
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
MaterialButton(
minWidth: 160,
child:
Text(_authMode == AuthMode.Login ? 'Login' : 'Sign Up'),
- onPressed: _submit,
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => OTPEmployer()));
+ },
+ // _submit,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
),
padding:
EdgeInsets.symmetric(horizontal: 30.0, vertical: 8.0),
- color: (_authMode == AuthMode.Login ? Color(0xff57b22f) : Color(0xff22c0e8)),
+ color: (_authMode == AuthMode.Login
+ ? Color(0xff57b22f)
+ : Color(0xff22c0e8)),
textColor: Colors.white,
),
- SizedBox(width: 10),
+ SizedBox(width: 10),
MaterialButton(
minWidth: 160,
child: Text(
'${_authMode == AuthMode.Login ? 'Sign up' : 'Login'} an account'),
onPressed: _switchAuthMode,
shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(30.0),
- ),
- padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 4),
+ borderRadius: BorderRadius.circular(30.0),
+ ),
+ padding:
+ EdgeInsets.symmetric(horizontal: 30.0, vertical: 4),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
- color: (_authMode == AuthMode.Login ? Color(0xff22c0e8) : Color(0xff57b22f)),
+ color: (_authMode == AuthMode.Login
+ ? Color(0xff22c0e8)
+ : Color(0xff57b22f)),
textColor: Colors.white,
),
- ],
+ ],
+ ),
+ SizedBox(height: 15),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(left: 20, right: 10),
+ child: Divider(
+ thickness: 0.5,
+ color: Colors.white,
+ ),
+ ),
+ ),
+ Text('OR',
+ style: TextStyle(fontSize: 11, color: Colors.white70)),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(right: 20, left: 10),
+ child: Divider(
+ thickness: 0.5,
+ color: Colors.white,
+ ),
+ ),
),
- SizedBox(height: 15),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(left: 20, right: 10),
- child: Divider(thickness: 0.5, color: Colors.white,),
- ),
- ),
- Text('OR', style: TextStyle(fontSize: 11, color: Colors.white70)),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(right: 20, left: 10),
- child: Divider(thickness: 0.5, color: Colors.white,),
- ),
- ),
- ],
- ),
- SizedBox(height: 15),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- MaterialButton(
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(30.0),
- ),
- color: Color(0xff2d67a5),
- minWidth: 160,
- onPressed: () {},
- child: Row(
- children: [
- Icon(MdiIcons.facebook, size: 20, color: Colors.white),
- Text("Login with Facebook",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: Colors.white, fontSize: 11)),
- ],
- ),
- ),
-
- SizedBox(width: 10),
-
- MaterialButton(
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(30.0),
- ),
- color: Colors.white,
- minWidth: 160,
- onPressed: () {},
- child: Row(
- children: [
- Image.asset('assets/gmail.png', height: 12),
- Text(" Login with Gmail",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: Color(0xff8997a7), fontSize: 11)),
- ],
- ),
- ),
- ],
- ),
- SizedBox(height: 70)
],
),
- ),
-
+ SizedBox(height: 15),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ MaterialButton(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(30.0),
+ ),
+ color: Color(0xff2d67a5),
+ minWidth: 160,
+ onPressed: () {},
+ child: Row(
+ children: [
+ Icon(MdiIcons.facebook, size: 20, color: Colors.white),
+ Text("Login with Facebook",
+ textAlign: TextAlign.center,
+ style: TextStyle(color: Colors.white, fontSize: 11)),
+ ],
+ ),
+ ),
+ SizedBox(width: 10),
+ MaterialButton(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(30.0),
+ ),
+ color: Colors.white,
+ minWidth: 160,
+ onPressed: () {},
+ child: Row(
+ children: [
+ Image.asset('assets/gmail.png', height: 12),
+ Text(" Login with Gmail",
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ color: Color(0xff8997a7), fontSize: 11)),
+ ],
+ ),
+ ),
+ ],
+ ),
+ SizedBox(height: 70)
+ ],
+ ),
+ ),
);
}
}
-
diff --git a/lib/src/ui/auth/employer/register_employer.dart b/lib/src/ui/auth/employer/register_employer.dart
deleted file mode 100644
index f0b2451..0000000
--- a/lib/src/ui/auth/employer/register_employer.dart
+++ /dev/null
@@ -1,278 +0,0 @@
-import 'package:flutter/material.dart';
-
-
-class RegisterEmployer extends StatefulWidget {
-
- static const routeName = 'register_employer';
-
- @override
- _RegisterEmployerState createState() => _RegisterEmployerState();
-}
-
-class _RegisterEmployerState extends State {
-TextStyle style = TextStyle(fontFamily: 'VarelaRound');
-
- String dropdownValue = 'Seeker';
-
- @override
- Widget build(BuildContext context) {
-
- final textBody =
- Column(children: [
- Column(children: [
- Text("REGISTER AN ACCOUNT",
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Color(0xff2c4057), fontSize: 12)
- ),
- ],
- ),
- Row(children: [
- Expanded(
- child: new Container(
- margin: const EdgeInsets.only(left: 70.0, right: 70.0),
- child: Divider(
- thickness: 2,
- color: Color(0xff22c0e8),
- height: 30)),
- )
- ]
- )
- ]
- );
-
-
- final usernameField = new TextFormField(
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Choose a Username",
- hintStyle: style.copyWith(color: Color(0xff8997a7)),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final emailField = TextFormField(
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Enter Your Email Address",
- hintStyle: style.copyWith(color: Color(0xff8997a7)),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final passwordField = new TextFormField(
- obscureText: true,
- style: style.copyWith(
-
- color: Colors.black45,
- fontSize: 12,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Password",
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final confirmPassword = new TextFormField(
- obscureText: true,
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Confirm Password",
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final selectField = FormField(
- builder: (FormFieldState state) {
- return InputDecorator(
- decoration: InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 0.0, 30.0, 0.0),
- errorStyle: style.copyWith(color: Colors.redAccent, fontSize: 12),
- hintStyle: style.copyWith(color: Color(0xff8997a7)),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- child: DropdownButtonHideUnderline(
- child: DropdownButton(
- value: dropdownValue,
- onChanged: (String newValue) {
- setState(() {
- dropdownValue = newValue;
- });
- },
- icon: Icon(Icons.expand_more, color: Colors.blueGrey, size: 18,),
- items: ['Seeker', 'Employer']
- .map>((String value) {
- return DropdownMenuItem(
- value: value,
- child: Text(value, style: style.copyWith(
- color: Color(0xff8997a7),
- fontSize: 12,
- letterSpacing: 0.25,
- )),
- );
- }).toList(),
- ),
- ),
- );
- }
- );
-
- final regButton = Material(
- elevation: 3.0,
- borderRadius: BorderRadius.all(Radius.circular(50)),
- color: Color(0xff22c0e8),
- child: MaterialButton(
- padding: EdgeInsets.fromLTRB(20.0, 15.0, 20.0, 15.0),
- onPressed: () {
- // showDialog(
- // context: context,builder: (_) => FlareGiffyDialog(
- // flarePath: 'assets/space_demo.flr',
- // flareAnimation: 'loading',
- // title: Text('Sedang Loading',
- // style: style.copyWith(
- // fontSize: 22.0, fontWeight: FontWeight.w500),
- // ),
- // description: Text('Silahkan tunggu...',
- // textAlign: TextAlign.center,
- // style: style.copyWith(),
- // ),
- // onOkButtonPressed: () {},
- // ) );
- },
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
- Text('Register Now',
- textAlign: TextAlign.center,
- style: style.copyWith(
-
- color: Color(0xffffffff),
- fontSize: 14,
- fontWeight: FontWeight.w500,
- )
- ),
- Icon(Icons.arrow_forward, color: Colors.white, size: 18,),
- ],
- ),
- ),
- );
-
-return LayoutBuilder(
- builder: (BuildContext context, BoxConstraints viewportConstraints) {
- return Scaffold(
- body: SingleChildScrollView(
- child: ConstrainedBox(
- constraints: BoxConstraints(
- minHeight: viewportConstraints.maxHeight,
- ),
- child: Container(
- padding: EdgeInsets.only(left: 60, right: 60, bottom: 30),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- mainAxisSize: MainAxisSize.max,
- children: [
- textBody,
- SizedBox(
- height: 10.0,
- ),
- usernameField,
- SizedBox(
- height: 25.0),
- emailField,
- SizedBox(
- height: 25.0),
- passwordField,
- SizedBox(
- height: 25.0),
- confirmPassword,
- SizedBox(
- height: 25.0,
- ),
- selectField,
- SizedBox(
- height: 25.0),
- regButton,
- SizedBox(
- height: 15.0,
- ),
- Text("LOGIN TO YOUR EXISTING ACCOUNT",
- style: style.copyWith(
- color: Color(0xff8997a7),
- fontSize: 9,
-
- fontStyle: FontStyle.normal,
- letterSpacing: 0.55,
- )
- ),
- ],
-
- ),
- ),
- ),
- ),
- );
- }
- );
- }
- }
diff --git a/lib/src/ui/auth/employer/ui_get_started_employer.dart b/lib/src/ui/auth/employer/ui_get_started_employer.dart
index ef1b816..7c76f8e 100644
--- a/lib/src/ui/auth/employer/ui_get_started_employer.dart
+++ b/lib/src/ui/auth/employer/ui_get_started_employer.dart
@@ -1,60 +1,91 @@
import 'package:flutter/material.dart';
import 'package:space/navigator_employer.dart';
+import 'package:flutter_svg/flutter_svg.dart';
class UiGetStartedEmployer extends StatelessWidget {
-
+ static const routeName = '/ui-employer';
@override
Widget build(BuildContext context) {
- TextStyle style = TextStyle(fontFamily: 'Quicksand-Regular', fontSize: 20.0);
- return new Scaffold(
- body: Padding(
- padding: EdgeInsets.fromLTRB(50, 30, 50, 30),
- child: Container(
- height: MediaQuery.of(context).size.height,
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Container(
- padding: EdgeInsets.symmetric(horizontal: 70),
- child: Image.asset('assets/logo_vertical.png')
- ),
- Text('Are you ready to find your dream team?',
- textAlign: TextAlign.center,
- style: style.copyWith(fontSize: 40, color: Color(0xff3b3b3b), fontWeight: FontWeight.bold)),
- Text('Find your best team now is easiers. Easy to post a job, get in touch via chat, interviewing anywhere via live. Just type and upload.',
- textAlign: TextAlign.center,
- style: style.copyWith(fontSize: 17.2, color: Color(0x99383839), fontWeight: FontWeight.w600)),
- ButtonTheme(
- minWidth: 190,
- height: 55,
- child: RaisedButton(
- color: Color(0xff57b22f),
- onPressed: () { Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => EmployerNavigator()));
- },
- child: Text('Get Started', style: style.copyWith(fontSize: 24, color: Colors.white, fontWeight: FontWeight.bold)),
- ),
- ),
- ButtonTheme(
- minWidth: 190,
- height: 55,
- child: OutlineButton(
- highlightedBorderColor: Color(0xff57b22f),
- borderSide: BorderSide(color: Color(0xff57b22f)),
- onPressed: () { Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => EmployerNavigator()));
- },
- child: Text('Try Trial', style: style.copyWith(fontSize: 24, color: Color(0xff57b22f), fontWeight: FontWeight.bold)),
- ),
+ TextStyle style =
+ TextStyle(fontFamily: 'Quicksand-Regular', fontSize: 20.0, color: Colors.white);
+ return Stack(
+ children: [
+ SvgPicture.asset(
+ 'assets/vector-5.svg',
+ height: MediaQuery.of(context).size.height,
+ width: MediaQuery.of(context).size.width,
+ fit: BoxFit.fill,
+ ),
+ Scaffold(
+ backgroundColor: Colors.transparent,
+ body: Container(
+ padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
+ height: MediaQuery.of(context).size.height,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ Container(
+ child: Image.asset('assets/logo.png', height: 150,)),
+ Text('Are you ready to find your dream team?',
+ textAlign: TextAlign.center,
+ style: style.copyWith(
+ fontSize: 32,
+ color: Colors.white,
+ fontWeight: FontWeight.bold)),
+ SizedBox(height: 30),
+ Text(
+ 'Find your best team now is easiers. Easy to post a job, get in touch via chat, interviewing anywhere via live. Just type and upload.',
+ textAlign: TextAlign.center,
+ style: style.copyWith(
+ fontSize: 16,
+ color: Colors.white,
+ fontWeight: FontWeight.w600)),
+ SizedBox(height: 50),
+ ButtonTheme(
+ minWidth: 190,
+ height: 55,
+ child: RaisedButton(
+ color: Color(0xff57b22f),
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) =>
+ EmployerNavigator()));
+ },
+ child: Text('Get Started',
+ style: style.copyWith(
+ fontSize: 24,
+ color: Colors.white,
+ fontWeight: FontWeight.bold)),
+ ),
+ ),
+ SizedBox(height: 20),
+ ButtonTheme(
+ minWidth: 190,
+ height: 55,
+ child: OutlineButton(
+ highlightedBorderColor: Colors.white,
+ borderSide: BorderSide(color: Colors.white),
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) =>
+ EmployerNavigator()));
+ },
+ child: Text('Try Trial',
+ style: style.copyWith(
+ fontSize: 24,
+ color: Colors.white,
+ fontWeight: FontWeight.bold)),
+ ),
+ ),
+ ],
),
- ],
),
),
- ),
+ ],
);
}
-}
\ No newline at end of file
+}
diff --git a/lib/src/ui/auth/seeker/home_seeker.dart b/lib/src/ui/auth/seeker/home_seeker.dart
index d6c2e85..da1b7b0 100644
--- a/lib/src/ui/auth/seeker/home_seeker.dart
+++ b/lib/src/ui/auth/seeker/home_seeker.dart
@@ -1,666 +1,674 @@
import 'package:carousel_slider/carousel_slider.dart';
import 'package:feather_icons_flutter/feather_icons_flutter.dart';
import 'package:flutter/material.dart';
+import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
+import 'package:gradient_app_bar/gradient_app_bar.dart';
+import 'package:carousel_pro/carousel_pro.dart';
+import 'package:space/src/ui/components/category_job_screen.dart';
-import 'package:space/src/ui/seeker/widgets/seeker_app_drawer.dart';
+import 'package:space/src/ui/employer/widgets/employer_app_drawer.dart';
import 'package:space/src/ui/components/horizontal_screen.dart';
import 'package:space/src/ui/components/recommended_screen.dart';
import 'package:space/src/ui/seeker/layout/seeker_profile_view.dart';
-class HomePageSeeker extends StatefulWidget {
-
- static const routeName = 'home_page_seeker';
+class HomePageSeeker extends StatefulWidget {
+ static const routeName = '/home_page_seeker';
@override
_HomePageSeekerState createState() => _HomePageSeekerState();
}
class _HomePageSeekerState extends State {
- TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0, color: Color(0xff3b3b3b));
- TextStyle style2= TextStyle(fontFamily: 'TitilliumWeb', fontSize: 20.0, color: Color(0xff3b3b3b));
- int _current = 0;
+ TextStyle style = TextStyle(
+ fontFamily: 'VarelaRound', fontSize: 20.0, color: Color(0xff3b3b3b));
+ TextStyle style2 = TextStyle(
+ fontFamily: 'TitilliumWeb', fontSize: 20.0, color: Color(0xff3b3b3b));
+ int _current = 0;
- final List imgList = [
- Image.asset('assets/home.png', fit: BoxFit.contain),
- Image.asset('assets/vector-3.png', fit: BoxFit.contain),
- Image.asset('assets/job.png', fit: BoxFit.contain),
- Image.asset('assets/job2.png', fit: BoxFit.contain),
- Image.asset('assets/blog.png', fit: BoxFit.contain),
-];
+ List map(List list, Function handler) {
+ List result = [];
+ for (var i = 0; i < list.length; i++) {
+ result.add(handler(i, list[i]));
+ }
-List map(List list, Function handler) {
- List result = [];
- for (var i = 0; i < list.length; i++) {
- result.add(handler(i, list[i]));
+ return result;
}
- return result;
-}
-
@override
Widget build(BuildContext context) {
- return Scaffold(
- drawer: AppDrawer(),
- backgroundColor: Colors.grey[200],
- appBar: AppBar(
- automaticallyImplyLeading: false,
- elevation: 0.0,
- backgroundColor: Colors.grey[200],
- leading: Builder(
- builder: (context) => IconButton(
- icon: Icon(Icons.menu),
- onPressed: () => Scaffold.of(context).openDrawer(),
- ),
- ),
- title: TextFormField(
- textInputAction: TextInputAction.search,
- style: style.copyWith(
- fontSize: 16,
- color: Color(0xffc9c8c8),
- decoration: TextDecoration.none,
- ),
- decoration: InputDecoration(
- focusedBorder: InputBorder.none,
- contentPadding: EdgeInsets.fromLTRB(20.0, 15.0, 20.0, 15.0),
- prefixIcon: IconButton(
- onPressed: (){
-
- },
- icon: Icon(FeatherIcons.search, size: 18,),
- color: Color(0xffc9c8c8)),
- fillColor: Colors.white,
- filled: true,
- hintText: 'Try "Barista"',
- hintStyle: style.copyWith(color: Color(0xffc9c8c8), fontSize: 16),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xffc5cfda)),
- )),
- ),
- ),
- body: ListView(
- children: [
- Container(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
-
- Column(
- children: [
- CarouselSlider(
- items: imgList,
- autoPlay: true,
- enlargeCenterPage: true,
- aspectRatio: 2.0,
- onPageChanged: (index) {
- setState(() {
- _current = index;
- });
- },
- ),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 35),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: map(
- imgList,
- (index, url) {
- return Container(
- width: 8.0,
- height: 8.0,
- margin: EdgeInsets.symmetric(horizontal: 2.0),
- decoration: BoxDecoration(
- shape: BoxShape.circle,
- color: _current == index
- ? Color.fromRGBO(0, 0, 0, 0.9)
- : Color.fromRGBO(0, 0, 0, 0.4)),
- );
- },
- ),
- ),
- Text('See All',
- style: style2.copyWith(fontSize: 10, color: Color(0xffc9c8c8), letterSpacing: 1)),
- ],),
- ),
- ]),
- SizedBox(height: 10),
- Container(
- margin: EdgeInsets.only(top: 10),
- height: 45,
- child: ListTile(
- leading: Container(
- child: Text('Recent Job',
- style: style2.copyWith(fontSize: 16, fontWeight: FontWeight.bold, letterSpacing: 1))),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(fontSize: 10, color: Color(0xffc9c8c8), letterSpacing: 1))),
- onTap: () {},
- )),
-
- SizedBox(
- height: 180,
- child: HorizontalScreen()),
-
- Container(
- height: 50,
- child: ListTile(
- leading: Text('Recomended Job', style: style2.copyWith(fontSize: 16, fontWeight: FontWeight.bold, letterSpacing: 1)),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(fontSize: 10, color: Color(0xffc9c8c8), letterSpacing: 1))),
- onTap: () {},
- )),
-
- SizedBox(
- height: 180,
- child: RecommendedScreen(),
- ),
-
- Container(
- margin: EdgeInsets.only(top: 10),
- height: 45,
- child: ListTile(
- leading: Container(
- child: Text('Feed your Dreams',
- style: style2.copyWith(fontSize: 16, fontWeight: FontWeight.bold, letterSpacing: 1))),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(fontSize: 10, color: Color(0xffc9c8c8), letterSpacing: 1))),
- onTap: () {},
- )),
-
- Container(
- padding: EdgeInsets.symmetric(horizontal: 16),
- child: Column(
- children: [
- Text(
- 'Success story from people around you, encourage, giving nutritions to your dreams.',
- style: style.copyWith(fontSize: 13)),
- ],
- ),
- ),
-
- Container(
- margin: EdgeInsets.only(top: 10, left: 16, right: 16),
- padding: EdgeInsets.only(bottom: 10),
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.only(bottomLeft: Radius.circular(5), bottomRight: Radius.circular(5))
+ return Stack(
+ children: [
+ Container(
+ height: 94,
+ width: MediaQuery.of(context).size.width,
+ child: Image.asset(
+ 'assets/vector-5.png',
+ fit: BoxFit.fitWidth,
),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.min,
- children: [
- SizedBox(
- width: MediaQuery.of(context).size.width,
- height: 200,
- child: Image.asset('assets/blog.png', fit: BoxFit.cover)),
- Padding(
- padding: EdgeInsets.all(10),
- child: Text("How to success and winning competition",
- style: style.copyWith(
- color: Color(0xff3b3b3b),
- fontSize: 16,
- fontWeight: FontWeight.bold,
- letterSpacing: 0.5,
- ))),
- Padding(
- padding: EdgeInsets.all(10),
- child: Text('Success story from people around you, encourage, giving nutritions to your dreams. Lorem ipsum dollor',
- style: style.copyWith(
- color: Color(0xff3b3b3b),
- fontSize: 12))),
- ],
- ),),
-
- Container(
- margin: EdgeInsets.only(top: 10),
- height: 45,
- child: ListTile(
- leading: Container(
- child: Text('People around you',
- style: style2.copyWith(fontSize: 16, fontWeight: FontWeight.bold, letterSpacing: 1))),
- trailing: Container(
- margin: EdgeInsets.only(bottom: 5),
- child: Text('See All',
- style: style2.copyWith(fontSize: 10, color: Color(0xffc9c8c8), letterSpacing: 1))),
- onTap: () {},
- )),
-
- Material(
- child: Container(
- height: 120,
- child: SingleChildScrollView(
- scrollDirection: Axis.horizontal,
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Uray Bawadi', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_2.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Yudi Salim', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
+ ),
+ Scaffold(
+ drawer: EmployerDrawer(),
+ backgroundColor: Colors.transparent,
+ appBar: PreferredSize(
+ preferredSize: Size.fromHeight(70), // here the desired height
+ child: AppBar(
+ backgroundColor: Colors.transparent,
+ automaticallyImplyLeading: false,
+ leading: Builder(
+ builder: (context) => IconButton(
+ icon: Icon(Icons.menu, color: Colors.white),
+ onPressed: () => Scaffold.of(context).openDrawer(),
),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_3.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Aprianto', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_4.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Gamabunta', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Uray Bawadi', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_2.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Yudi Salim', style: style.copyWith(fontSize: 10),
- ),
- ],
),
+ title: TextFormField(
+ textInputAction: TextInputAction.search,
+ style: style.copyWith(
+ fontSize: 16,
+ color: Color(0xffc9c8c8),
+ decoration: TextDecoration.none,
),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_3.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Aprianto', style: style.copyWith(fontSize: 10),
- ),
- ],
+ decoration: InputDecoration(
+ focusedBorder: InputBorder.none,
+ contentPadding: EdgeInsets.fromLTRB(20.0, 15.0, 20.0, 15.0),
+ prefixIcon: IconButton(
+ onPressed: () {},
+ icon: Icon(
+ FeatherIcons.search,
+ size: 18,
+ ),
+ color: Color(0xffc9c8c8)),
+ fillColor: Colors.white,
+ filled: true,
+ hintText: 'Try "Barista"',
+ hintStyle:
+ style.copyWith(color: Color(0xffc9c8c8), fontSize: 16),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xffc5cfda)),
+ )),
),
),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_4.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
- ),
- ],
- ),
- Text(
- 'Gamabunta', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
+ ),
+ body: ListView(
+ children: [
+ Container(
+ child: Column(
+ children: [
+ Container(
+ padding:
+ EdgeInsets.symmetric(horizontal: 10, vertical: 10),
+ height: 120,
+ child: Carousel(
+ borderRadius: true,
+ boxFit: BoxFit.fill,
+ autoplay: true,
+ animationCurve: Curves.fastOutSlowIn,
+ animationDuration: Duration(milliseconds: 2000),
+ dotSize: 4.0,
+ dotSpacing: 15,
+ dotIncreasedColor: Colors.amber,
+ dotBgColor: Colors.transparent,
+ dotPosition: DotPosition.bottomLeft,
+ dotVerticalPadding: 5.0,
+ showIndicator: true,
+ dotHorizontalPadding: 10.0,
+ indicatorBgPadding: 0,
+ images: [
+ NetworkImage(
+ 'https://www.theatreartlife.com/wp-content/uploads/TheMarket-Ad-TD-800x200-768x192.png'),
+ NetworkImage(
+ 'http://tapsbus.com/wp-content/uploads/2015/06/driver-job-fi.png'),
+ NetworkImage(
+ 'https://i0.wp.com/www.thehtn.co.uk/wp-content/uploads/2019/08/Latest-News-3-copy-3.png?fit=800%2C200&ssl=1'),
+ ],
),
),
- ],
- ),
- Text(
- 'Uray Bawadi', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_2.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
- ),
+ SizedBox(height: 70, child: CategoryScreen()),
+ Container(
+ height: 45,
+ child: ListTile(
+ leading: Container(
+ child: Text('Recommended Job',
+ style: style2.copyWith(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 1))),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ SizedBox(height: 150, child: RecommendedScreen()),
+ Container(
+ height: 50,
+ child: ListTile(
+ leading: Text('Job Around You',
+ style: style2.copyWith(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 1)),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ SizedBox(
+ height: 180,
+ child: RecentScreen(),
),
- ],
- ),
- Text(
- 'Yudi Salim', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_3.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
+ Container(
+ margin: EdgeInsets.only(top: 10),
+ height: 45,
+ child: ListTile(
+ leading: Container(
+ child: Text('Feed your Dreams',
+ style: style2.copyWith(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 1))),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ Card(
+ margin:
+ EdgeInsets.symmetric(horizontal: 15, vertical: 10),
+ elevation: 3,
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10)),
+ child: Container(
+ padding: EdgeInsets.only(bottom: 10),
+ decoration: BoxDecoration(color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ ClipRRect(
+ borderRadius: BorderRadius.only(
+ topLeft: Radius.circular(10),
+ topRight: Radius.circular(10)),
+ child: Image.asset('assets/blog.png',
+ fit: BoxFit.fitWidth)),
+ Padding(
+ padding: EdgeInsets.all(10),
+ child: Text(
+ "How to success and winning competition",
+ style: style.copyWith(
+ color: Color(0xff3b3b3b),
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 0.5,
+ ))),
+ Padding(
+ padding: EdgeInsets.all(10),
+ child: Text(
+ 'Success story from people around you, encourage, giving nutritions to your dreams. Lorem ipsum dollor',
+ style: style.copyWith(
+ color: Color(0xff3b3b3b),
+ fontSize: 12))),
+ ],
+ ),
),
),
- ],
- ),
- Text(
- 'Aprianto', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(vertical: 10),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [
- Stack(
- alignment: Alignment(0.6, -1),
- children: [
- MaterialButton(
- shape: CircleBorder(),
- onPressed: () { Navigator.push(context, new MaterialPageRoute(
- builder: (context) =>
- new SeekerProfileView())
- ); },
- child: CircleAvatar(
- backgroundColor: Color(0xff48576a),
- radius: 30.0,
- child: Image.asset('assets/img_profil_4.png', scale: 1.3)
- )),
- CircleAvatar(
- backgroundColor: Color(0xff22c0e8),
- radius: 10,
- child: Icon(
- Icons.add, color: Colors.white, size: 16,
+ Container(
+ margin: EdgeInsets.only(top: 10),
+ height: 45,
+ child: ListTile(
+ leading: Container(
+ child: Text('People around you',
+ style: style2.copyWith(
+ fontSize: 16,
+ fontWeight: FontWeight.bold,
+ letterSpacing: 1))),
+ trailing: Container(
+ margin: EdgeInsets.only(bottom: 5),
+ child: Text('See All',
+ style: style2.copyWith(
+ fontSize: 10,
+ color: Color(0xffc9c8c8),
+ letterSpacing: 1))),
+ onTap: () {},
+ )),
+ Material(
+ child: Container(
+ height: 120,
+ child: SingleChildScrollView(
+ scrollDirection: Axis.horizontal,
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceAround,
+ children: [
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) =>
+ SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Uray Bawadi',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_2.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Yudi Salim',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_3.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Aprianto',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_4.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Gamabunta',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Uray Bawadi',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_2.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Yudi Salim',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_3.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Aprianto',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_4.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Gamabunta',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Uray Bawadi',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_2.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Yudi Salim',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_3.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Aprianto',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(vertical: 10),
+ child: Column(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceEvenly,
+ children: [
+ Stack(
+ alignment: Alignment(0.6, -1),
+ children: [
+ MaterialButton(
+ shape: CircleBorder(),
+ onPressed: () {
+ Navigator.push(
+ context,
+ new MaterialPageRoute(
+ builder: (context) =>
+ new SeekerProfileView()));
+ },
+ child: CircleAvatar(
+ backgroundColor:
+ Color(0xff48576a),
+ radius: 30.0,
+ child: Image.asset(
+ 'assets/img_profil_4.png',
+ scale: 1.3))),
+ ],
+ ),
+ Text(
+ 'Gamabunta',
+ style: style.copyWith(fontSize: 10),
+ ),
+ ],
+ ),
+ ),
+ ]),
+ ),
),
),
- ],
- ),
- Text(
- 'Gamabunta', style: style.copyWith(fontSize: 10),
- ),
- ],
- ),
+ SizedBox(height: 30)
+ ],
+ ),
),
- ]
- ),
+ ],
),
),
- ),
- SizedBox(height: 30)
-
- ],
- ),
- ),
],
- ),
- );
-
+ );
}
-
}
diff --git a/lib/src/ui/auth/seeker/intro_seeker.dart b/lib/src/ui/auth/seeker/intro_seeker.dart
new file mode 100644
index 0000000..f9a26d9
--- /dev/null
+++ b/lib/src/ui/auth/seeker/intro_seeker.dart
@@ -0,0 +1,109 @@
+import 'package:flutter/material.dart';
+import 'package:intro_views_flutter/Models/page_view_model.dart';
+import 'package:intro_views_flutter/intro_views_flutter.dart';
+import 'package:space/src/ui/auth/employer/ui_get_started_employer.dart';
+import 'package:space/src/ui/auth/seeker/ui_get_started_seeker.dart';
+
+
+class IntroSeeker extends StatelessWidget {
+ final pages = [
+ PageViewModel(
+ pageColor: const Color(0xffff6d00),
+ iconImageAssetPath: 'assets/seeker-1.png',
+ bubble: Image.asset('assets/seeker-1.png'),
+ body: Text(
+ 'More than 100+ Job may suite you.',
+ ),
+ title: Text(
+ 'Get job and Start your dreams!', textAlign: TextAlign.center,
+ ),
+ titleTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold),
+ bodyTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21),
+ mainImage: Image.asset(
+ 'assets/seeker-1.png',
+ height: 285.0,
+ width: 285.0,
+ alignment: Alignment.center,
+ )),
+ PageViewModel(
+ pageColor: const Color(0xffd50000),
+ iconImageAssetPath: 'assets/seeker-2.png',
+ bubble: Image.asset('assets/seeker-2.png'),
+ body: Text(
+ 'Say goodbay to paper, More Effectives and Efficients.',
+ ),
+ title: Text(
+ 'New and Easier way!', textAlign: TextAlign.center,
+ ),
+ titleTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold),
+ bodyTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21),
+ mainImage: Image.asset(
+ 'assets/seeker-2.png',
+ height: 285.0,
+ width: 285.0,
+ alignment: Alignment.center,
+ )),
+ PageViewModel(
+ pageColor: const Color(0xff64dd17),
+ bubble: Image.asset('assets/seeker-3.png'),
+ iconImageAssetPath: 'assets/seeker-3.png',
+ body: Text('Check your applied status. No need to wait for another chances.',
+ textAlign: TextAlign.center),
+ title: Text('No worry!',
+ textAlign: TextAlign.center),
+ mainImage: Image.asset(
+ 'assets/seeker-3.png',
+ height: 285.0,
+ width: 285.0,
+ alignment: Alignment.center,
+ ),
+ titleTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold),
+ bodyTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21),
+ ),
+ PageViewModel(
+ pageColor: const Color(0xff64dd17),
+ bubble: Image.asset('assets/employer-3.png'),
+ iconImageAssetPath: 'assets/employer-3.png',
+ body: Text('Contact your employer directly with chat and live interview Features.',
+ textAlign: TextAlign.center),
+ title: Text('Get in touch directly!',
+ textAlign: TextAlign.center),
+ mainImage: Image.asset(
+ 'assets/employer-3.png',
+ height: 285.0,
+ width: 285.0,
+ alignment: Alignment.center,
+ ),
+ titleTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 32, fontWeight: FontWeight.bold),
+ bodyTextStyle: TextStyle(fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21),
+ ),
+ ];
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ body: Builder(
+ builder: (context) => IntroViewsFlutter(
+ pages,
+ showNextButton: true,
+ showBackButton: true,
+ showSkipButton: true,
+ doneText: Text('DONE'),
+ onTapDoneButton: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => UiGetStartedSeeker(),
+ ), //MaterialPageRoute
+ );
+ },
+ pageButtonTextStyles: TextStyle(
+ color: Colors.white,
+ fontSize: 16.0,
+ ),
+ pageButtonTextSize: 5,
+ ), //IntroViewsFlutter
+ ), //Builder
+ ); //Material App
+ }
+}
diff --git a/lib/src/ui/auth/seeker/login_seeker.dart b/lib/src/ui/auth/seeker/login_seeker.dart
deleted file mode 100644
index daa65ee..0000000
--- a/lib/src/ui/auth/seeker/login_seeker.dart
+++ /dev/null
@@ -1,257 +0,0 @@
-import 'package:flutter/material.dart';
-
-import 'package:space/src/ui/auth/seeker/ui_get_started_seeker.dart';
-
-
-class LoginSeeker extends StatefulWidget {
-
- static const routeName = 'login_seeker';
-
- @override
- _LoginSeekerState createState() => _LoginSeekerState();
-}
-
-class _LoginSeekerState extends State {
- TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0);
- final GlobalKey _formKey = GlobalKey();
- Map _authData = {
- 'email': '',
- 'password': '',
- };
- var _isLoading = false;
- final _passwordController = TextEditingController();
-
- void _showErrorDialog(String message) {
- showDialog(
- context: context,
- builder: (ctx) => AlertDialog(
- title: Text('An Error Occurred!'),
- content: Text(message),
- actions: [
- FlatButton(
- child: Text('Ok'),
- onPressed: () {
- Navigator.of(ctx).pop();
- },
- )
- ],
- ),
- );
- }
-
- Future _submit() async {
- if (!_formKey.currentState.validate()) {
- // Invalid!
- return;
- }
- _formKey.currentState.save();
- setState(() {
- _isLoading = true;
- });
-
- setState(() {
- _isLoading = false;
- });
- }
-
- @override
- Widget build(BuildContext context) {
- final textBody =
- Column(children: [
- Column(
- children: [
- Text('LOGIN TO YOUR ACCOUNT',
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Color(0xff2c4057), fontSize: 12)
- ),
- ],
- ),
- Row(children: [
- Expanded(
- child: new Container(
- margin: const EdgeInsets.symmetric(horizontal: 70),
- child: Divider(
- thickness: 2,
- color: Color(0xff22c0e8),
- height: 30)),
- )
- ]
- )
- ]
- );
-
-
- final emailField = new TextFormField(
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: 'Email Address',
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- keyboardType: TextInputType.emailAddress,
- validator: (value) {
- if (value.isEmpty || !value.contains('@')) {
- return 'Invalid email!';
- }
- },
- onSaved: (value) {
- _authData['email'] = value;
- },
- );
- final passwordField = TextFormField(
- obscureText: true,
- controller: _passwordController,
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: 'Password',
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) {
- if (value.isEmpty || value.length < 5) {
- return 'Password is too short!';
- }
- },
- onSaved: (value) {
- _authData['password'] = value;
- },
- );
-
- final loginButton = Material(
- elevation: 3.0,
- borderRadius: BorderRadius.circular(30.0),
- color: Color(0xff57b22f),
- child: MaterialButton(
- padding: EdgeInsets.fromLTRB(60.0, 15.0, 20.0, 15.0),
- onPressed: () { Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => UiGetStartedSeeker()));
- },
- child: Row(
- children: [
- Text('Login Now',
- textAlign: TextAlign.center,
- style: style.copyWith(
- color: Colors.white, fontSize: 14)),
- const Expanded(
- child: Icon(Icons.arrow_forward, color: Colors.white, size: 18,)),
- ],
- ),
- ),
- );
-
- final linkForgot = Container(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- MaterialButton(
- padding: EdgeInsets.fromLTRB(5.0, 5.0, 5.0, 5.0),
- onPressed: _submit,
- child: Text('FORGOT PASSWORD?',
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Colors.cyan[400], fontSize: 9))),
- Text('|', style: style.copyWith(fontSize: 8, color: Colors.blueGrey)),
- MaterialButton(
- padding: EdgeInsets.fromLTRB(5.0, 5.0, 0.0, 5.0),
- onPressed: () {Navigator.pushNamed(context, 'space/register_account');},
- child: Text('REGISTER AN ACCOUNT',
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Colors.blueGrey, fontSize: 9))),
- ],
- ),
- );
-
- return LayoutBuilder(
- builder: (BuildContext context, BoxConstraints viewportConstraints) {
- return Scaffold(
- body: SingleChildScrollView(
- child: ConstrainedBox(
- constraints: BoxConstraints(
- minHeight: viewportConstraints.maxHeight,
- ),
- child: Container(
- padding: EdgeInsets.only(left: 60, right: 60),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- mainAxisSize: MainAxisSize.min,
- children: [
- textBody,
- SizedBox(
- height: 10.0,
- ),
- SizedBox(height: 50.0),
- emailField,
- SizedBox(height: 20.0),
- passwordField,
- SizedBox(
- height: 30.0,
- ),
- loginButton,
- SizedBox(
- height: 5.0,
- ),
- linkForgot,
- SizedBox(
- height: 80.0,
- ),
-
- Column (
- children: [
- Text('Copyright © 2019 by Dreamjob',
- textAlign: TextAlign.center,
- style: style.copyWith(
- color: Colors.blueGrey, fontSize: 10)
- ),
- Text('www.dreamjob.com',
- textAlign: TextAlign.center,
- style: style.copyWith(
- color: Colors.cyan[400], fontSize: 10)),
- ],
- ),
- SizedBox(
- height: 5
- ),
- ],
- ),),
- ),
- ),
- );
- }
-
-);
- }
- }
-
diff --git a/lib/src/ui/auth/seeker/login_signup_seeker.dart b/lib/src/ui/auth/seeker/login_signup_seeker.dart
index b4cdf63..116aaba 100644
--- a/lib/src/ui/auth/seeker/login_signup_seeker.dart
+++ b/lib/src/ui/auth/seeker/login_signup_seeker.dart
@@ -1,43 +1,51 @@
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
+import 'package:space/navigator_employer.dart';
import 'package:space/src/core/models/http_exception.dart';
import 'package:space/src/core/models/auth.dart';
+import 'package:space/src/ui/auth/employer/ui_get_started_employer.dart';
+import 'package:space/src/ui/auth/seeker/intro_seeker.dart';
+import 'package:space/src/ui/auth/seeker/ui_get_started_seeker.dart';
+import 'package:space/src/ui/components/otp_seeker.dart';
enum AuthMode { Signup, Login }
class LoginSignUpSeeker extends StatelessWidget {
- static const routeName = '/auth';
+ static const routeName = '/auth-seeker';
@override
Widget build(BuildContext context) {
- return Container(
- decoration: BoxDecoration(
- image: DecorationImage(
- image: AssetImage('assets/vector-5.png'),
- fit: BoxFit.cover,
- ),
+ return Stack(
+ children: [
+ SvgPicture.asset(
+ 'assets/vector-5.svg',
+ height: MediaQuery.of(context).size.height,
+ width: MediaQuery.of(context).size.width,
+ fit: BoxFit.fill,
+ ),
+ Scaffold(
+ backgroundColor: Colors.transparent,
+ body: Column(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Padding(
+ padding: EdgeInsets.only(top: 20, bottom: 10),
+ child: Container(
+ alignment: Alignment.center,
+ child: Image.asset('assets/logo.png'),
+ height: 130,
),
- child: Scaffold(
- backgroundColor: Colors.transparent,
- body: Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Padding(
- padding: EdgeInsets.only(top: 20, bottom: 10),
- child:Container(
- alignment: Alignment.center,
- child: Image.asset('assets/logo_vertical.png'),
- height: 80,
- ),
- ),
- Flexible(
- child: AuthCard(),
- ),
- ],
),
- ),
+ Flexible(
+ child: AuthCard(),
+ ),
+ ],
+ ),
+ ),
+ ],
);
}
}
@@ -65,67 +73,67 @@ class _AuthCardState extends State {
showDialog(
context: context,
builder: (ctx) => AlertDialog(
- title: Text('An Error Occurred!'),
- content: Text(message),
- actions: [
- FlatButton(
- child: Text('Okay'),
- onPressed: () {
- Navigator.of(ctx).pop();
- },
- )
- ],
- ),
+ title: Text('An Error Occurred!'),
+ content: Text(message),
+ actions: [
+ FlatButton(
+ child: Text('Okay'),
+ onPressed: () {
+ Navigator.of(ctx).pop();
+ },
+ )
+ ],
+ ),
);
}
- Future _submit() async {
- if (!_formKey.currentState.validate()) {
- // Invalid!
- return;
- }
- _formKey.currentState.save();
- setState(() {
- _isLoading = true;
- });
- try {
- if (_authMode == AuthMode.Login) {
- // Log user in
- await Provider.of(context, listen: false).login(
- _authData['email'],
- _authData['password'],
- );
- } else {
- // Sign user up
- await Provider.of(context, listen: false).signup(
- _authData['email'],
- _authData['password'],
- );
- }
- } on HttpException catch (error) {
- var errorMessage = 'Authentication failed';
- if (error.toString().contains('EMAIL_EXISTS')) {
- errorMessage = 'This email address is already in use.';
- } else if (error.toString().contains('INVALID_EMAIL')) {
- errorMessage = 'This is not a valid email address';
- } else if (error.toString().contains('WEAK_PASSWORD')) {
- errorMessage = 'This password is too weak.';
- } else if (error.toString().contains('EMAIL_NOT_FOUND')) {
- errorMessage = 'Could not find a user with that email.';
- } else if (error.toString().contains('INVALID_PASSWORD')) {
- errorMessage = 'Invalid password.';
- }
- _showErrorDialog(errorMessage);
- } catch (error) {
- const errorMessage =
- 'Could not authenticate you. Please try again later.';
- _showErrorDialog(errorMessage);
- }
+ // Future _submit() async {
+ // if (!_formKey.currentState.validate()) {
+ // // Invalid!
+ // return;
+ // }
+ // _formKey.currentState.save();
+ // setState(() {
+ // _isLoading = true;
+ // });
+ // try {
+ // if (_authMode == AuthMode.Login) {
+ // // Log user in
+ // await Provider.of(context, listen: false).login(
+ // _authData['email'],
+ // _authData['password'],
+ // );
+ // } else {
+ // // Sign user up
+ // await Provider.of(context, listen: false).signup(
+ // _authData['email'],
+ // _authData['password'],
+ // );
+ // }
+ // } on HttpException catch (error) {
+ // var errorMessage = 'Authentication failed';
+ // if (error.toString().contains('EMAIL_EXISTS')) {
+ // errorMessage = 'This email address is already in use.';
+ // } else if (error.toString().contains('INVALID_EMAIL')) {
+ // errorMessage = 'This is not a valid email address';
+ // } else if (error.toString().contains('WEAK_PASSWORD')) {
+ // errorMessage = 'This password is too weak.';
+ // } else if (error.toString().contains('EMAIL_NOT_FOUND')) {
+ // errorMessage = 'Could not find a user with that email.';
+ // } else if (error.toString().contains('INVALID_PASSWORD')) {
+ // errorMessage = 'Invalid password.';
+ // }
+ // _showErrorDialog(errorMessage);
+ // } catch (error) {
+ // const errorMessage =
+ // 'Could not authenticate you. Please try again later.';
+ // _showErrorDialog(errorMessage);
+ // }
- setState(() {
- _isLoading = false;
- });
- }
+ // setState(() {
+ // _isLoading = false;
+ // });
+ // }
void _switchAuthMode() {
if (_authMode == AuthMode.Login) {
@@ -142,242 +150,262 @@ class _AuthCardState extends State {
@override
Widget build(BuildContext context) {
return Form(
- key: _formKey,
- child: SingleChildScrollView(
- child: Column(
+ key: _formKey,
+ child: SingleChildScrollView(
+ child: Column(
+ children: [
+ Column(
children: [
- Column(children: [
- Text((_authMode == AuthMode.Login ? 'LOGIN AN ACCOUNT' : 'SIGN UP AN ACCOUNT'),
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: TextStyle(
- color: Colors.white, fontSize: 14)
- ),
- ],
- ),
- Row(children: [
- Expanded(
- child: new Container(
- margin: const EdgeInsets.only(left: 120, right: 120),
- child: Divider(
- thickness: 2,
- color: Color(0xff22c0e8),
- height: 30)),
- )
- ]
- ),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
- child: TextFormField(
- decoration: InputDecoration(
- contentPadding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
- errorStyle: TextStyle(color: Theme.of(context).errorColor),
- hintText: 'E-mail',
- hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedErrorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- errorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8)),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- ),
- keyboardType: TextInputType.emailAddress,
- validator: (value) {
- if (value.isEmpty || !value.contains('@')) {
- return 'Invalid email!';
- }
- },
- onSaved: (value) {
- _authData['email'] = value;
- },
+ Text(
+ (_authMode == AuthMode.Login
+ ? 'LOGIN AN ACCOUNT'
+ : 'SIGN UP AN ACCOUNT'),
+ textAlign: TextAlign.center,
+ overflow: TextOverflow.ellipsis,
+ style: TextStyle(color: Colors.white, fontSize: 14)),
+ ],
+ ),
+ Row(children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(left: 120, right: 120),
+ child: Divider(
+ thickness: 2, color: Color(0xff22c0e8), height: 30)),
+ )
+ ]),
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
+ child: TextFormField(
+ decoration: InputDecoration(
+ contentPadding:
+ EdgeInsets.symmetric(horizontal: 20, vertical: 10),
+ errorStyle: TextStyle(color: Theme.of(context).errorColor),
+ hintText: 'E-mail',
+ hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
+ filled: true,
+ fillColor: Color(0xffdcdfe3),
+ focusedErrorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ errorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xff22c0e8)),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Colors.transparent),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
),
+ keyboardType: TextInputType.emailAddress,
+ validator: (value) {
+ if (value.isEmpty || !value.contains('@')) {
+ return 'Invalid email!';
+ }
+ },
+ onSaved: (value) {
+ _authData['email'] = value;
+ },
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
+ child: TextFormField(
+ decoration: InputDecoration(
+ contentPadding:
+ EdgeInsets.symmetric(horizontal: 20, vertical: 10),
+ errorStyle: TextStyle(color: Theme.of(context).errorColor),
+ hintText: 'Password',
+ hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
+ filled: true,
+ fillColor: Color(0xffdcdfe3),
+ focusedErrorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ errorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xff22c0e8)),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Colors.transparent),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
- child: TextFormField(
+ obscureText: true,
+ controller: _passwordController,
+ validator: (value) {
+ if (value.isEmpty || value.length < 5) {
+ return 'Password is too short!';
+ }
+ },
+ onSaved: (value) {
+ _authData['password'] = value;
+ },
+ ),
+ ),
+ if (_authMode == AuthMode.Signup)
+ Padding(
+ padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
+ child: TextFormField(
+ enabled: _authMode == AuthMode.Signup,
decoration: InputDecoration(
- contentPadding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
- errorStyle: TextStyle(color: Theme.of(context).errorColor),
- hintText: 'Password',
- hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedErrorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- errorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8)),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.all(Radius.circular(30))),
+ contentPadding:
+ EdgeInsets.symmetric(horizontal: 20, vertical: 10),
+ errorStyle: TextStyle(color: Theme.of(context).errorColor),
+ hintText: 'Confirm Password',
+ hintStyle:
+ TextStyle(color: Color(0xff8997a7), fontSize: 14),
+ filled: true,
+ fillColor: Color(0xffdcdfe3),
+ focusedErrorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ errorBorder: OutlineInputBorder(
+ borderSide:
+ BorderSide(color: Theme.of(context).errorColor),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ focusedBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Color(0xff22c0e8)),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
+ enabledBorder: OutlineInputBorder(
+ borderSide: BorderSide(color: Colors.transparent),
+ borderRadius: BorderRadius.all(Radius.circular(30))),
),
obscureText: true,
- controller: _passwordController,
- validator: (value) {
- if (value.isEmpty || value.length < 5) {
- return 'Password is too short!';
- }
- },
- onSaved: (value) {
- _authData['password'] = value;
- },
- ),
- ),
- if (_authMode == AuthMode.Signup)
-
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 50, vertical: 5),
- child: TextFormField(
- enabled: _authMode == AuthMode.Signup,
- decoration: InputDecoration(
- contentPadding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
- errorStyle: TextStyle(color: Theme.of(context).errorColor),
- hintText: 'Confirm Password',
- hintStyle: TextStyle(color: Color(0xff8997a7), fontSize: 14),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedErrorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- errorBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Theme.of(context).errorColor),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8)),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- enabledBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Colors.transparent),
- borderRadius: BorderRadius.all(Radius.circular(30))),
- ),
- obscureText: true,
- validator: _authMode == AuthMode.Signup
- ? (value) {
- if (value != _passwordController.text) {
- return 'Passwords do not match!';
- }
+ validator: _authMode == AuthMode.Signup
+ ? (value) {
+ if (value != _passwordController.text) {
+ return 'Passwords do not match!';
}
- : null,
- ),
- ),
- SizedBox(
- height: 20,
+ }
+ : null,
),
- if (_isLoading)
- CircularProgressIndicator(
- backgroundColor: Color(0xff22c0e8),
- )
- else
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
+ ),
+ SizedBox(
+ height: 20,
+ ),
+ if (_isLoading)
+ CircularProgressIndicator(
+ backgroundColor: Color(0xff22c0e8),
+ )
+ else
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
MaterialButton(
minWidth: 160,
child:
Text(_authMode == AuthMode.Login ? 'Login' : 'Sign Up'),
- onPressed: _submit,
+ onPressed: () {
+ Navigator.push(context,
+ MaterialPageRoute(builder: (context) => OTPSeeker()));
+ },
+ // _submit,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
),
padding:
EdgeInsets.symmetric(horizontal: 30.0, vertical: 8.0),
- color: (_authMode == AuthMode.Login ? Color(0xff57b22f) : Color(0xff22c0e8)),
+ color: (_authMode == AuthMode.Login
+ ? Color(0xff57b22f)
+ : Color(0xff22c0e8)),
textColor: Colors.white,
),
- SizedBox(width: 10),
+ SizedBox(width: 10),
MaterialButton(
minWidth: 160,
child: Text(
'${_authMode == AuthMode.Login ? 'Sign up' : 'Login'} an account'),
onPressed: _switchAuthMode,
shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(30.0),
- ),
- padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 4),
+ borderRadius: BorderRadius.circular(30.0),
+ ),
+ padding:
+ EdgeInsets.symmetric(horizontal: 30.0, vertical: 4),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
- color: (_authMode == AuthMode.Login ? Color(0xff22c0e8) : Color(0xff57b22f)),
+ color: (_authMode == AuthMode.Login
+ ? Color(0xff22c0e8)
+ : Color(0xff57b22f)),
textColor: Colors.white,
),
- ],
+ ],
+ ),
+ SizedBox(height: 15),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(left: 20, right: 10),
+ child: Divider(
+ thickness: 0.5,
+ color: Colors.white,
+ ),
+ ),
+ ),
+ Text('OR',
+ style: TextStyle(fontSize: 11, color: Colors.white70)),
+ Expanded(
+ child: Container(
+ margin: EdgeInsets.only(right: 20, left: 10),
+ child: Divider(
+ thickness: 0.5,
+ color: Colors.white,
+ ),
+ ),
),
- SizedBox(height: 15),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Expanded(
- child: Container(
- margin: EdgeInsets.only(left: 20, right: 10),
- child: Divider(thickness: 0.5, color: Colors.white,),
- ),
- ),
- Text('OR', style: TextStyle(fontSize: 11, color: Colors.white70)),
- Expanded(
- child: Container(
- margin: EdgeInsets.only(right: 20, left: 10),
- child: Divider(thickness: 0.5, color: Colors.white,),
- ),
- ),
- ],
- ),
- SizedBox(height: 15),
- Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- MaterialButton(
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(30.0),
- ),
- color: Color(0xff2d67a5),
- minWidth: 160,
- onPressed: () {},
- child: Row(
- children: [
- Icon(MdiIcons.facebook, size: 20, color: Colors.white),
- Text("Login with Facebook",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: Colors.white, fontSize: 11)),
- ],
- ),
- ),
-
- SizedBox(width: 10),
-
- MaterialButton(
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(30.0),
- ),
- color: Colors.white,
- minWidth: 160,
- onPressed: () {},
- child: Row(
- children: [
- Image.asset('assets/gmail.png', height: 12),
- Text(" Login with Gmail",
- textAlign: TextAlign.center,
- style: TextStyle(
- color: Color(0xff8997a7), fontSize: 11)),
- ],
- ),
- ),
- ],
- ),
- SizedBox(height: 70)
],
),
- ),
-
+ SizedBox(height: 15),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ MaterialButton(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(30.0),
+ ),
+ color: Color(0xff2d67a5),
+ minWidth: 160,
+ onPressed: () {},
+ child: Row(
+ children: [
+ Icon(MdiIcons.facebook, size: 20, color: Colors.white),
+ Text("Login with Facebook",
+ textAlign: TextAlign.center,
+ style: TextStyle(color: Colors.white, fontSize: 11)),
+ ],
+ ),
+ ),
+ SizedBox(width: 10),
+ MaterialButton(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(30.0),
+ ),
+ color: Colors.white,
+ minWidth: 160,
+ onPressed: () {},
+ child: Row(
+ children: [
+ Image.asset('assets/gmail.png', height: 12),
+ Text(" Login with Gmail",
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ color: Color(0xff8997a7), fontSize: 11)),
+ ],
+ ),
+ ),
+ ],
+ ),
+ SizedBox(height: 70)
+ ],
+ ),
+ ),
);
}
}
diff --git a/lib/src/ui/auth/seeker/register_seeker.dart b/lib/src/ui/auth/seeker/register_seeker.dart
deleted file mode 100644
index f864cf2..0000000
--- a/lib/src/ui/auth/seeker/register_seeker.dart
+++ /dev/null
@@ -1,233 +0,0 @@
-import 'package:flutter/material.dart';
-
-class RegisterSeeker extends StatefulWidget {
-
- static const routeName = 'register_seeker';
-
- @override
- _RegisterSeekerState createState() => _RegisterSeekerState();
-}
-
-class _RegisterSeekerState extends State {
-TextStyle style = TextStyle(fontFamily: 'VarelaRound');
-
- @override
- Widget build(BuildContext context) {
-
- final textBody =
- Column(children: [
- Column(children: [
- Text("REGISTER AN ACCOUNT",
- textAlign: TextAlign.center,
- overflow: TextOverflow.ellipsis,
- style: style.copyWith(
- color: Color(0xff2c4057), fontSize: 12)
- ),
- ],
- ),
- Row(children: [
- Expanded(
- child: new Container(
- margin: const EdgeInsets.only(left: 70.0, right: 70.0),
- child: Divider(
- thickness: 2,
- color: Color(0xff22c0e8),
- height: 30)),
- )
- ]
- )
- ]
- );
-
-
- final usernameField = TextFormField(
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Choose a Username",
- hintStyle: style.copyWith(color: Color(0xff8997a7)),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final emailField = TextFormField(
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Enter Your Email Address",
- hintStyle: style.copyWith(color: Color(0xff8997a7)),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final passwordField = new TextFormField(
- obscureText: true,
- style: style.copyWith(
-
- color: Colors.black45,
- fontSize: 12,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Password",
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final confirmPassword = new TextFormField(
- obscureText: true,
- style: style.copyWith(
- color: Colors.black45,
- fontSize: 12,
- fontStyle: FontStyle.normal,
- letterSpacing: 0.25,
- ),
- decoration: new InputDecoration(
- contentPadding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
- hintText: "Confirm Password",
- hintStyle: style.copyWith(color: Color(0xff8997a7), fontSize: 12),
- filled: true,
- fillColor: Color(0xffdcdfe3),
- focusedBorder: OutlineInputBorder(
- borderSide: BorderSide(color: Color(0xff22c0e8), width: 1),
- borderRadius: BorderRadius.circular(30.0)),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(30.0),
- borderSide: BorderSide(color: Colors.transparent, width: 1),
- )),
- validator: (value) => value.isEmpty ? 'Column can\'t be empty' : null
- );
-
- final regButton = Material(
- elevation: 3.0,
- borderRadius: BorderRadius.all(Radius.circular(50)),
- color: Color(0xff22c0e8),
- child: MaterialButton(
- padding: EdgeInsets.fromLTRB(20.0, 15.0, 20.0, 15.0),
- onPressed: () {
- // showDialog(
- // context: context,builder: (_) => FlareGiffyDialog(
- // flarePath: 'assets/space_demo.flr',
- // flareAnimation: 'loading',
- // title: Text('Sedang Loading',
- // style: style.copyWith(
- // fontSize: 22.0, fontWeight: FontWeight.w500),
- // ),
- // description: Text('Silahkan tunggu...',
- // textAlign: TextAlign.center,
- // style: style.copyWith(),
- // ),
- // onOkButtonPressed: () {},
- // ) );
- },
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: [
- Text('Register Now',
- textAlign: TextAlign.center,
- style: style.copyWith(
-
- color: Color(0xffffffff),
- fontSize: 14,
- fontWeight: FontWeight.w500,
- )
- ),
- Icon(Icons.arrow_forward, color: Colors.white, size: 18,),
- ],
- ),
- ),
- );
-
-return LayoutBuilder(
- builder: (BuildContext context, BoxConstraints viewportConstraints) {
- return Scaffold(
- body: SingleChildScrollView(
- child: ConstrainedBox(
- constraints: BoxConstraints(
- minHeight: viewportConstraints.maxHeight,
- ),
- child: Container(
- padding: EdgeInsets.only(left: 60, right: 60, bottom: 30),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.end,
- mainAxisSize: MainAxisSize.max,
- children: [
- textBody,
- SizedBox(
- height: 10.0,
- ),
- usernameField,
- SizedBox(
- height: 25.0),
- emailField,
- SizedBox(
- height: 25.0),
- passwordField,
- SizedBox(
- height: 25.0),
- confirmPassword,
- SizedBox(
- height: 25.0,
- ),
- regButton,
- SizedBox(
- height: 15.0,
- ),
- Text("LOGIN TO YOUR EXISTING ACCOUNT",
- style: style.copyWith(
- color: Color(0xff8997a7),
- fontSize: 9,
-
- fontStyle: FontStyle.normal,
- letterSpacing: 0.55,
- )
- ),
- SizedBox(
- height: 50.0,
- ),
- ],
-
- ),
- ),
- ),
- ),
- );
- }
- );
- }
- }
diff --git a/lib/src/ui/auth/seeker/ui_get_started_seeker.dart b/lib/src/ui/auth/seeker/ui_get_started_seeker.dart
index b0bd8d7..76cd991 100644
--- a/lib/src/ui/auth/seeker/ui_get_started_seeker.dart
+++ b/lib/src/ui/auth/seeker/ui_get_started_seeker.dart
@@ -1,60 +1,92 @@
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+import 'package:space/navigator_employer.dart';
import 'package:space/navigator_seeker.dart';
class UiGetStartedSeeker extends StatelessWidget {
-
+ static const routeName = '/ui-seeker';
@override
- Widget build(BuildContext context) {
- TextStyle style = TextStyle(fontFamily: 'Quicksand-Regular', fontSize: 20.0);
- return Scaffold(
- body: Padding(
- padding: EdgeInsets.fromLTRB(40, 50, 40, 50),
- child: Container(
+ Widget build(BuildContext context) {
+ TextStyle style =
+ TextStyle(fontFamily: 'Quicksand-Regular', fontSize: 20.0, color: Colors.white);
+ return Stack(
+ children: [
+ SvgPicture.asset(
+ 'assets/vector-5.svg',
+ height: MediaQuery.of(context).size.height,
+ width: MediaQuery.of(context).size.width,
+ fit: BoxFit.fill,
+ ),
+ Scaffold(
+ backgroundColor: Colors.transparent,
+ body: Container(
+ padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
height: MediaQuery.of(context).size.height,
child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ mainAxisAlignment: MainAxisAlignment.end,
children: [
- Container(
- padding: EdgeInsets.symmetric(horizontal: 60),
- child: Image.asset('assets/logo_vertical.png')
- ),
- Text('Are you ready to chase your dreams?',
- textAlign: TextAlign.center,
- style: style.copyWith(fontSize: 40, color: Color(0xff3b3b3b), fontWeight: FontWeight.bold)),
- Text('Make your dreams come true by start working. Find jobs which suit you. Easy to apply, no paper, no writing. Just type and upload.',
- textAlign: TextAlign.center,
- style: style.copyWith(fontSize: 17.2, color: Color(0x99383839), fontWeight: FontWeight.w600)),
- ButtonTheme(
- minWidth: 190,
- height: 55,
- child: RaisedButton(
- color: Color(0xff57b22f),
- onPressed: () { Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => SeekerNavigator()));
- },
- child: Text('Get Started', style: style.copyWith(fontSize: 24, color: Colors.white, fontWeight: FontWeight.bold)),
- ),
- ),
- ButtonTheme(
- minWidth: 190,
- height: 55,
- child: OutlineButton(
- highlightedBorderColor: Color(0xff57b22f),
- borderSide: BorderSide(color: Color(0xff57b22f)),
- onPressed: () { Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => SeekerNavigator()));
- },
- child: Text('Try Trial', style: style.copyWith(fontSize: 24, color: Color(0xff57b22f), fontWeight: FontWeight.bold)),
- ),
- ),
+ Container(
+ child: Image.asset('assets/logo.png', height: 150,)),
+ Text('Are you ready to chase your dreams?',
+ textAlign: TextAlign.center,
+ style: style.copyWith(
+ fontSize: 32,
+ color: Colors.white,
+ fontWeight: FontWeight.bold)),
+ SizedBox(height: 30),
+ Text(
+ 'Make your dreams come true by start working. Find jobs which suit you. Easy to apply, no paper, no writing. Just type and upload.',
+ textAlign: TextAlign.center,
+ style: style.copyWith(
+ fontSize: 16,
+ color: Colors.white,
+ fontWeight: FontWeight.w600)),
+ SizedBox(height: 50),
+ ButtonTheme(
+ minWidth: 190,
+ height: 55,
+ child: RaisedButton(
+ color: Color(0xff57b22f),
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) =>
+ SeekerNavigator()));
+ },
+ child: Text('Get Started',
+ style: style.copyWith(
+ fontSize: 24,
+ color: Colors.white,
+ fontWeight: FontWeight.bold)),
+ ),
+ ),
+ SizedBox(height: 20),
+ ButtonTheme(
+ minWidth: 190,
+ height: 55,
+ child: OutlineButton(
+ highlightedBorderColor: Colors.white,
+ borderSide: BorderSide(color: Colors.white),
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) =>
+ SeekerNavigator()));
+ },
+ child: Text('Try Trial',
+ style: style.copyWith(
+ fontSize: 24,
+ color: Colors.white,
+ fontWeight: FontWeight.bold)),
+ ),
+ ),
],
),
),
- ),
+ ),
+ ],
);
}
-}
\ No newline at end of file
+}
diff --git a/lib/src/ui/chat/inbox_ui_chat.dart b/lib/src/ui/chat/inbox_ui_chat.dart
index c43cdfb..e8e81f2 100644
--- a/lib/src/ui/chat/inbox_ui_chat.dart
+++ b/lib/src/ui/chat/inbox_ui_chat.dart
@@ -1,299 +1,518 @@
import 'package:flutter/material.dart';
import 'package:feather_icons_flutter/feather_icons_flutter.dart';
+import 'package:space/src/ui/chat/video_ui_calling.dart';
-
-class InboxUiList extends StatefulWidget {
- const InboxUiList({ Key key, String title }) : super(key: key);
- @override
- _InboxUiListState createState() => _InboxUiListState();
-}
-
-class _InboxUiListState extends State with SingleTickerProviderStateMixin {
-
-
- TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0);
-
+class InboxUiChat extends StatelessWidget {
@override
Widget build(BuildContext context) {
-
- return new Scaffold(
- backgroundColor: Colors.white,
+ TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0);
+ return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: true,
leading: IconButton(
- onPressed: () {
- Navigator.pop(context,true);
- },
- icon: Icon(FeatherIcons.chevronLeft, color: Color(0xff2c4057), size: 16)),
+ onPressed: () {
+ Navigator.pop(context, true);
+ },
+ icon: Icon(FeatherIcons.chevronLeft,
+ color: Color(0xff2c4057), size: 14)),
elevation: 1,
backgroundColor: Colors.white,
- title: Row(children:[
+ title: Row(
+ children: [
Stack(
alignment: Alignment(1, -1),
- children:[
- CircleAvatar(
- backgroundColor: Color(0xff757575),
- radius: 20.0,
- child: Image.asset('assets/img_profile-2.png', scale: 3.3,),
- ),
- Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(20),
- color: Colors.white,
+ children: [
+ CircleAvatar(
+ backgroundColor: Color(0xff757575),
+ radius: 20.0,
+ child: Image.asset(
+ 'assets/img_profile-2.png',
+ scale: 3.3,
+ ),
),
- child: Icon(Icons.brightness_1, size: 10, color: Color(0xff81c784)),
- ),
-
- ],
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20),
+ color: Colors.white,
+ ),
+ child: Icon(Icons.brightness_1,
+ size: 10, color: Color(0xff81c784)),
+ ),
+ ],
+ ),
+ Container(
+ padding: EdgeInsets.only(left: 20),
+ child: Text('Mekuru Ramen',
+ style: style.copyWith(
+ color: Color(0xff2c4057),
+ fontSize: 14,
+ fontWeight: FontWeight.w600,
+ letterSpacing: 1)),
),
- Container(
- padding: EdgeInsets.only(left: 20),
- child:Text('Mekuru Ramen', style: style.copyWith(color: Color(0xff2c4057),
- fontSize: 18, fontWeight: FontWeight.w600,letterSpacing: 1)),
- ),
],
),
centerTitle: true,
actions: [
- // action button
- IconButton(
- icon: Icon(Icons.videocam, color: Color(0xff4d4d4d), size: 33),
- onPressed: () {},
- ),
- ],
- ),
- body: SingleChildScrollView(
- child: Container(
- margin: EdgeInsets.only(top: 15),
- child: Column(
- children: [
- Stack(
- children: [
- Container(
- alignment: AlignmentDirectional.topEnd,
- margin: EdgeInsets.fromLTRB(0, 10, 15, 0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- new Container(
- width: 350,
- padding: EdgeInsets.fromLTRB(35, 15, 15, 15),
- margin: EdgeInsets.only(bottom: 5),
- decoration: new BoxDecoration(
- color: Color(0xffffffff),
- borderRadius: BorderRadius.circular(5),
- boxShadow: [BoxShadow(
- color: Color(0x11000000),
- offset: Offset(2.121320343559643,2.1213203435596424),
- blurRadius: 21,
- spreadRadius: 0
- ) ],
- ),
- child: Column(
- children: [
- Text('Hello, nice to see you again today. Hope you are well.',
- style: style.copyWith(fontSize: 16, color: Color(0xff757575))),
-
- ],
+ // action button
+ IconButton(
+ icon: Icon(Icons.videocam, color: Color(0xff4d4d4d), size: 33),
+ onPressed: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) =>
+ Calling()));
+ },
),
- ),
- Text('03:41 PM', style: style.copyWith(fontSize: 12, color: Color(0xff757575))),
],
- ),
- ),
- Stack(
- alignment: AlignmentDirectional.topStart,
- children: [
- Container(),
- Container(
- margin: EdgeInsets.only(top: 20, left: 30),
- child: Stack(
- alignment: Alignment(1, -1),
- children:[
- CircleAvatar(
- backgroundColor: Color(0xff757575),
- radius: 20.0,
- child: Image.asset('assets/img_profile-2.png', scale: 3.3,),
- ),
- Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(20),
- color: Colors.white,
- ),
- child: Icon(Icons.brightness_1, size: 10, color: Color(0xff81c784)),
- ),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
-
- Stack(
- children: [
- Container(
- alignment: AlignmentDirectional.topStart,
- margin: EdgeInsets.fromLTRB(10, 10, 0, 0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- new Container(
- width: 350,
- padding: EdgeInsets.fromLTRB(15, 15, 35, 15),
- margin: EdgeInsets.only(bottom: 5),
- decoration: new BoxDecoration(
- color: Color(0xffffffff),
- borderRadius: BorderRadius.circular(5),
- boxShadow: [BoxShadow(
- color: Color(0x11000000),
- offset: Offset(2.121320343559643,2.1213203435596424),
- blurRadius: 21,
- spreadRadius: 0
- ) ],
- ),
+ ),
+ body: SingleChildScrollView(
+ child: Container(
+ margin: EdgeInsets.only(top: 15, bottom: 80),
child: Column(
- children: [
- Text('This is my office location. You can visit as per your time.',
- style: style.copyWith(fontSize: 16, color: Color(0xff757575))),
- new Container(
- height: 200,
- decoration: new BoxDecoration(
- color: Color(0xffbdbdbd),
- boxShadow: [BoxShadow(
- color: Color(0x11000000),
- offset: Offset(2.121320343559643,2.1213203435596424),
- blurRadius: 21,
- spreadRadius: 0
- ) ],
- )
- ),
- ],
- ),
- ),
- Text('03:42 PM', style: style.copyWith(fontSize: 12, color: Color(0xff757575))),
- ],
- ),
- ),
- Stack(
- alignment: AlignmentDirectional.topEnd,
children: [
- Container(),
- Container(
- margin: EdgeInsets.only(top: 20, right: 30),
- child: Stack(
- alignment: Alignment(1, -1),
- children:[
- CircleAvatar(
- backgroundColor: Color(0xff757575),
- radius: 20.0,
- child: Image.asset('assets/img_profile-1.png', scale: 3.3,),
- ),
- Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(20),
- color: Colors.white,
- ),
- child: Icon(Icons.brightness_1, size: 10, color: Color(0xff81c784)),
- ),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
-
- Stack(
- children: [
- Container(
- alignment: AlignmentDirectional.topEnd,
- margin: EdgeInsets.fromLTRB(0, 10, 15, 0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- new Container(
- width: 350,
- padding: EdgeInsets.fromLTRB(35, 15, 15, 15),
- margin: EdgeInsets.only(bottom: 5),
- decoration: new BoxDecoration(
- color: Color(0xffffffff),
- borderRadius: BorderRadius.circular(5),
- boxShadow: [BoxShadow(
- color: Color(0x11000000),
- offset: Offset(2.121320343559643,2.1213203435596424),
- blurRadius: 21,
- spreadRadius: 0
- ) ],
- ),
- child: Column(
- children: [
- Text('Sure, I will visit the location in evening. Is that alright for you.',
- style: style.copyWith(fontSize: 16, color: Color(0xff757575))),
-
+ Stack(
+ children: [
+ Container(
+ alignment: AlignmentDirectional.topEnd,
+ margin: EdgeInsets.fromLTRB(0, 10, 15, 0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ padding: EdgeInsets.fromLTRB(40, 10, 10, 10),
+ margin: EdgeInsets.only(bottom: 5, left: 38),
+ decoration: BoxDecoration(
+ color: Color(0xffffffff),
+ borderRadius: BorderRadius.circular(5),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0x11000000),
+ offset: Offset(
+ 2.121320343559643, 2.1213203435596424),
+ blurRadius: 21,
+ spreadRadius: 0)
+ ],
+ ),
+ child: Column(
+ children: [
+ Text(
+ 'Hello, nice to see you again today. Hope you are well.',
+ style: style.copyWith(
+ fontSize: 14, color: Color(0xff757575))),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(left: 38),
+ child: Text('03:41 PM',
+ style: style.copyWith(
+ fontSize: 12, color: Color(0xff757575))),
+ ),
+ ],
+ ),
+ ),
+ Stack(
+ alignment: AlignmentDirectional.topStart,
+ children: [
+ Container(),
+ Container(
+ margin: EdgeInsets.only(top: 20, left: 20),
+ child: Stack(
+ alignment: Alignment(1, -1),
+ children: [
+ CircleAvatar(
+ backgroundColor: Color(0xff757575),
+ radius: 20.0,
+ child: Image.asset(
+ 'assets/img_profile-2.png',
+ scale: 3.3,
+ ),
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20),
+ color: Colors.white,
+ ),
+ child: Icon(Icons.brightness_1,
+ size: 10, color: Color(0xff81c784)),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ Stack(
+ children: [
+ Container(
+ alignment: AlignmentDirectional.topStart,
+ margin: EdgeInsets.fromLTRB(15, 10, 0, 0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.end,
+ children: [
+ Container(
+ padding: EdgeInsets.fromLTRB(10, 10, 40, 10),
+ margin: EdgeInsets.only(bottom: 5, right: 38),
+ decoration: BoxDecoration(
+ color: Color(0xffffffff),
+ borderRadius: BorderRadius.circular(5),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0x11000000),
+ offset: Offset(
+ 2.121320343559643, 2.1213203435596424),
+ blurRadius: 21,
+ spreadRadius: 0)
+ ],
+ ),
+ child: Column(
+ children: [
+ Text(
+ 'This is my office location. You can visit as per your time.',
+ style: style.copyWith(
+ fontSize: 14, color: Color(0xff757575))),
+ Container(
+ height: 200,
+ decoration: BoxDecoration(
+ color: Color(0xffbdbdbd),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0x11000000),
+ offset: Offset(2.121320343559643,
+ 2.1213203435596424),
+ blurRadius: 21,
+ spreadRadius: 0)
+ ],
+ )),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(right: 38),
+ child: Text('03:42 PM',
+ style: style.copyWith(
+ fontSize: 12, color: Color(0xff757575)))),
+ ],
+ ),
+ ),
+ Stack(
+ alignment: AlignmentDirectional.topEnd,
+ children: [
+ Container(),
+ Container(
+ margin: EdgeInsets.only(top: 20, right: 20),
+ child: Stack(
+ alignment: Alignment(1, -1),
+ children: [
+ CircleAvatar(
+ backgroundColor: Color(0xff757575),
+ radius: 20.0,
+ child: Image.asset(
+ 'assets/img_profile-1.png',
+ scale: 3.3,
+ ),
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20),
+ color: Colors.white,
+ ),
+ child: Icon(Icons.brightness_1,
+ size: 10, color: Color(0xff81c784)),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ Stack(
+ children: [
+ Container(
+ alignment: AlignmentDirectional.topEnd,
+ margin: EdgeInsets.fromLTRB(0, 10, 15, 0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+
+ padding: EdgeInsets.fromLTRB(40, 10, 10, 10),
+ margin: EdgeInsets.only(bottom: 5, left: 38),
+ decoration: BoxDecoration(
+ color: Color(0xffffffff),
+ borderRadius: BorderRadius.circular(5),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0x11000000),
+ offset: Offset(
+ 2.121320343559643, 2.1213203435596424),
+ blurRadius: 21,
+ spreadRadius: 0)
+ ],
+ ),
+ child: Column(
+ children: [
+ Text(
+ 'Sure, I will visit the location in evening. Is that alright for you.',
+ style: style.copyWith(
+ fontSize: 14, color: Color(0xff757575))),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(left: 38),
+ child: Text('03:43 PM',
+ style: style.copyWith(
+ fontSize: 12, color: Color(0xff757575)))),
+ ],
+ ),
+ ),
+ Stack(
+ alignment: AlignmentDirectional.topStart,
+ children: [
+ Container(),
+ Container(
+ margin: EdgeInsets.only(top: 20, left: 20),
+ child: Stack(
+ alignment: Alignment(1, -1),
+ children: [
+ CircleAvatar(
+ backgroundColor: Color(0xff757575),
+ radius: 20.0,
+ child: Image.asset(
+ 'assets/img_profile-2.png',
+ scale: 3.3,
+ ),
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20),
+ color: Colors.white,
+ ),
+ child: Icon(Icons.brightness_1,
+ size: 10, color: Color(0xff81c784)),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ Stack(
+ children: [
+ Container(
+ alignment: AlignmentDirectional.topStart,
+ margin: EdgeInsets.fromLTRB(15, 10, 0, 0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.end,
+ children: [
+ Container(
+ padding: EdgeInsets.fromLTRB(10, 10, 40, 10),
+ margin: EdgeInsets.only(bottom: 5, right: 38),
+ decoration: BoxDecoration(
+ color: Color(0xffffffff),
+ borderRadius: BorderRadius.circular(5),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0x11000000),
+ offset: Offset(
+ 2.121320343559643, 2.1213203435596424),
+ blurRadius: 21,
+ spreadRadius: 0)
+ ],
+ ),
+ child: Column(
+ children: [
+ Text(
+ 'This is my office location. You can visit as per your time.',
+ style: style.copyWith(
+ fontSize: 14, color: Color(0xff757575))),
+ Container(
+ height: 200,
+ decoration: BoxDecoration(
+ color: Color(0xffbdbdbd),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0x11000000),
+ offset: Offset(2.121320343559643,
+ 2.1213203435596424),
+ blurRadius: 21,
+ spreadRadius: 0)
+ ],
+ )),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(right: 38),
+ child: Text('03:44 PM',
+ style: style.copyWith(
+ fontSize: 12, color: Color(0xff757575)))),
+ ],
+ ),
+ ),
+ Stack(
+ alignment: AlignmentDirectional.topEnd,
+ children: [
+ Container(),
+ Container(
+ margin: EdgeInsets.only(top: 20, right: 20),
+ child: Stack(
+ alignment: Alignment(1, -1),
+ children: [
+ CircleAvatar(
+ backgroundColor: Color(0xff757575),
+ radius: 20.0,
+ child: Image.asset(
+ 'assets/img_profile-1.png',
+ scale: 3.3,
+ ),
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20),
+ color: Colors.white,
+ ),
+ child: Icon(Icons.brightness_1,
+ size: 10, color: Color(0xff81c784)),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ Stack(
+ children: [
+ Container(
+ alignment: AlignmentDirectional.topEnd,
+ margin: EdgeInsets.fromLTRB(0, 10, 15, 0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+
+ padding: EdgeInsets.fromLTRB(40, 10, 10, 10),
+ margin: EdgeInsets.only(bottom: 5, left: 38),
+ decoration: BoxDecoration(
+ color: Color(0xffffffff),
+ borderRadius: BorderRadius.circular(5),
+ boxShadow: [
+ BoxShadow(
+ color: Color(0x11000000),
+ offset: Offset(
+ 2.121320343559643, 2.1213203435596424),
+ blurRadius: 21,
+ spreadRadius: 0)
+ ],
+ ),
+ child: Column(
+ children: [
+ Text(
+ 'Sure, I will visit the location in evening. Is that alright for you.',
+ style: style.copyWith(
+ fontSize: 14, color: Color(0xff757575))),
+ ],
+ ),
+ ),
+ Padding(
+ padding: EdgeInsets.only(left: 38),
+ child: Text('03:44 PM',
+ style: style.copyWith(
+ fontSize: 12, color: Color(0xff757575)))),
+ ],
+ ),
+ ),
+ Stack(
+ alignment: AlignmentDirectional.topStart,
+ children: [
+ Container(),
+ Container(
+ margin: EdgeInsets.only(top: 20, left: 20),
+ child: Stack(
+ alignment: Alignment(1, -1),
+ children: [
+ CircleAvatar(
+ backgroundColor: Color(0xff757575),
+ radius: 20.0,
+ child: Image.asset(
+ 'assets/img_profile-2.png',
+ scale: 3.3,
+ ),
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20),
+ color: Colors.white,
+ ),
+ child: Icon(Icons.brightness_1,
+ size: 10, color: Color(0xff81c784)),
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
],
),
- ),
- Text('03:43 PM', style: style.copyWith(fontSize: 12, color: Color(0xff757575))),
- ],
- ),
- ),
- Stack(
- alignment: AlignmentDirectional.topStart,
- children: [
- Container(),
- Container(
- margin: EdgeInsets.only(top: 20, left: 30),
- child: Stack(
- alignment: Alignment(1, -1),
- children:[
- CircleAvatar(
- backgroundColor: Color(0xff757575),
- radius: 20.0,
- child: Image.asset('assets/img_profile-2.png', scale: 3.3,),
- ),
- Container(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(20),
- color: Colors.white,
- ),
- child: Icon(Icons.brightness_1, size: 10, color: Color(0xff81c784)),
- ),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
-
- ],
- ),
+ ),
),
+ floatingActionButton: Padding(
+ padding: EdgeInsets.only(left: 30.0),
+ child: Row(
+ children: [
+ Expanded(
+ child: Material(
+ elevation: 1,
+ borderRadius: BorderRadius.circular(20.0),
+ child: Container(
+ child: Row(
+ children: [
+ SizedBox(width: 8.0),
+ Icon(Icons.insert_emoticon,
+ size: 25.0, color: Theme.of(context).hintColor),
+ SizedBox(width: 8.0),
+ Expanded(
+ child: TextField(
+ style: TextStyle(fontSize: 14, color: Color(0xff757575)),
+ textInputAction: TextInputAction.newline,
+ decoration: InputDecoration(
+ hintText: 'Type a message',
+ hintStyle: TextStyle(fontSize: 14, color: Colors.black26),
+ border: InputBorder.none,
+ ),
+ ),
+ ),
+ Icon(Icons.attach_file,
+ size: 25.0, color: Theme.of(context).hintColor),
+ SizedBox(width: 8.0),
+ Icon(Icons.camera_alt,
+ size: 25.0, color: Theme.of(context).hintColor),
+ SizedBox(width: 8.0),
+ ],
),
- floatingActionButton: Container(
- padding: EdgeInsets.fromLTRB(40, 10, 10, 0),
- child: new TextField(
- style: style.copyWith(fontSize: 16, color: Color(0xff757575)),
- decoration: new InputDecoration(
- suffixIcon: Padding(
- padding: const EdgeInsetsDirectional.only(end: 12.0),
- child: Icon(Icons.place),
- ),
-
- border: new OutlineInputBorder(
- borderRadius: const BorderRadius.all(
- const Radius.circular(100.0),
),
+ ),
+),
+ SizedBox(
+ width: 5.0,
),
- filled: true,
- hintStyle: style.copyWith(color: Color(0xffaaaaaa), fontSize: 16),
- hintText: "Message",
- fillColor: Colors.white),
+ GestureDetector(
+ onTap: () {},
+ child: CircleAvatar(
+ child: Icon(Icons.send, size: 20,),
+ ),
),
- ),
-
-
+ ],
+ ),
+),
);
}
-}
\ No newline at end of file
+}
diff --git a/lib/src/ui/chat/inbox_ui_empty.dart b/lib/src/ui/chat/inbox_ui_empty.dart
index 018b41c..992042c 100644
--- a/lib/src/ui/chat/inbox_ui_empty.dart
+++ b/lib/src/ui/chat/inbox_ui_empty.dart
@@ -1,345 +1,30 @@
-// import 'package:flutter/material.dart';
-// import 'dart:async';
-
-// import 'package:agora_rtm/agora_rtm.dart';
-
-
-// class InboxNoMessage extends StatefulWidget {
-// @override
-// _InboxNoMessageState createState() => _InboxNoMessageState();
-// }
-
-// class _InboxNoMessageState extends State with SingleTickerProviderStateMixin {
-
-// TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0);
-// bool _isLogin = false;
-// bool _isInChannel = false;
-
-// final _userNameController = TextEditingController();
-// final _peerUserIdController = TextEditingController();
-// final _peerMessageController = TextEditingController();
-// final _channelNameController = TextEditingController();
-// final _channelMessageController = TextEditingController();
-
-// final _infoStrings = [];
-
-// AgoraRtmClient _client;
-// AgoraRtmChannel _channel;
-
-// @override
-// void initState() {
-// super.initState();
-// _createClient();
-// }
-
-// @override
-// Widget build(BuildContext context) {
-
-// return new Scaffold(
-// backgroundColor: Colors.white,
-// body: Container(
-// padding: EdgeInsets.only(top: 50, left: 30, right: 30),
-// child: Column(
-// children: [
-// _buildLogin(),
-// _buildQueryOnlineStatus(),
-// _buildSendPeerMessage(),
-// _buildJoinChannel(),
-// _buildGetMembers(),
-// _buildSendChannelMessage(),
-// _buildInfoList(),
-// ],
-// ),
-
-// ),
-// );
-// }
-
-
-// void _createClient() async {
-// _client =
-// await AgoraRtmClient.createInstance('6389279af2b74d949734539ba2fb66d8');
-// _client.onMessageReceived = (AgoraRtmMessage message, String peerId) {
-// _log("Peer msg: " + peerId + ", msg: " + message.text);
-// };
-// _client.onConnectionStateChanged = (int state, int reason) {
-// _log('Connection state changed: ' +
-// state.toString() +
-// ', reason: ' +
-// reason.toString());
-// if (state == 5) {
-// _client.logout();
-// _log('Logout.');
-// setState(() {
-// _isLogin = false;
-// });
-// }
-// };
-// }
-
-// Future _createChannel(String name) async {
-// AgoraRtmChannel channel = await _client.createChannel(name);
-// channel.onMemberJoined = (AgoraRtmMember member) {
-// _log(
-// "Member joined: " + member.userId + ', channel: ' + member.channelId);
-// };
-// channel.onMemberLeft = (AgoraRtmMember member) {
-// _log("Member left: " + member.userId + ', channel: ' + member.channelId);
-// };
-// channel.onMessageReceived =
-// (AgoraRtmMessage message, AgoraRtmMember member) {
-// _log("Channel msg: " + member.userId + ", msg: " + message.text);
-// };
-// return channel;
-// }
-
-// static TextStyle textStyle = TextStyle(fontSize: 18, color: Colors.blue);
-
-// Widget _buildLogin() {
-// return Row(children: [
-// _isLogin
-// ? new Expanded(
-// child: new Text('User Id: ' + _userNameController.text,
-// style: textStyle))
-// : new Expanded(
-// child: new TextField(
-// controller: _userNameController,
-// decoration: InputDecoration(hintText: 'Input your user id'))),
-// new OutlineButton(
-// child: Text(_isLogin ? 'Logout' : 'Login', style: textStyle),
-// onPressed: _toggleLogin,
-// )
-// ]);
-// }
-
-// Widget _buildQueryOnlineStatus() {
-// if (!_isLogin) {
-// return Container();
-// }
-// return Row(children: [
-// new Expanded(
-// child: new TextField(
-// controller: _peerUserIdController,
-// decoration: InputDecoration(hintText: 'Input peer user id'))),
-// new OutlineButton(
-// child: Text('Query Online', style: textStyle),
-// onPressed: _toggleQuery,
-// )
-// ]);
-// }
-
-// Widget _buildSendPeerMessage() {
-// if (!_isLogin) {
-// return Container();
-// }
-// return Row(children: [
-// new Expanded(
-// child: new TextField(
-// controller: _peerMessageController,
-// decoration: InputDecoration(hintText: 'Input peer message'))),
-// new OutlineButton(
-// child: Text('Send to Peer', style: textStyle),
-// onPressed: _toggleSendPeerMessage,
-// )
-// ]);
-// }
-
-// Widget _buildJoinChannel() {
-// if (!_isLogin) {
-// return Container();
-// }
-// return Row(children: [
-// _isInChannel
-// ? new Expanded(
-// child: new Text('Channel: ' + _channelNameController.text,
-// style: textStyle))
-// : new Expanded(
-// child: new TextField(
-// controller: _channelNameController,
-// decoration: InputDecoration(hintText: 'Input channel id'))),
-// new OutlineButton(
-// child: Text(_isInChannel ? 'Leave Channel' : 'Join Channel',
-// style: textStyle),
-// onPressed: _toggleJoinChannel,
-// )
-// ]);
-// }
-
-// Widget _buildSendChannelMessage() {
-// if (!_isLogin || !_isInChannel) {
-// return Container();
-// }
-// return Row(children: [
-// new Expanded(
-// child: new TextField(
-// controller: _channelMessageController,
-// decoration: InputDecoration(hintText: 'Input channel message'))),
-// new OutlineButton(
-// child: Text('Send to Channel', style: textStyle),
-// onPressed: _toggleSendChannelMessage,
-// )
-// ]);
-// }
-
-// Widget _buildGetMembers() {
-// if (!_isLogin || !_isInChannel) {
-// return Container();
-// }
-// return Row(children: [
-// new OutlineButton(
-// child: Text('Get Members in Channel', style: textStyle),
-// onPressed: _toggleGetMembers,
-// )
-// ]);
-// }
-
-// Widget _buildInfoList() {
-// return Expanded(
-// child: Container(
-// child: ListView.builder(
-// itemExtent: 24,
-// itemBuilder: (context, i) {
-// return ListTile(
-// contentPadding: const EdgeInsets.all(0.0),
-// title: Text(_infoStrings[i]),
-// );
-// },
-// itemCount: _infoStrings.length,
-// )));
-// }
-
-// void _toggleLogin() async {
-// if (_isLogin) {
-// try {
-// await _client.logout();
-// _log('Logout success.');
-
-// setState(() {
-// _isLogin = false;
-// _isInChannel = false;
-// });
-// } catch (errorCode) {
-// _log('Logout error: ' + errorCode.toString());
-// }
-// } else {
-// String userId = _userNameController.text;
-// if (userId.isEmpty) {
-// _log('Please input your user id to login.');
-// return;
-// }
-
-// try {
-// await _client.login(null, userId);
-// _log('Login success: ' + userId);
-// setState(() {
-// _isLogin = true;
-// });
-// } catch (errorCode) {
-// _log('Login error: ' + errorCode.toString());
-// }
-// }
-// }
-
-// void _toggleQuery() async {
-// String peerUid = _peerUserIdController.text;
-// if (peerUid.isEmpty) {
-// _log('Please input peer user id to query.');
-// return;
-// }
-// try {
-// Map