diff --git a/assets/employer-1.png b/assets/employer-1.png deleted file mode 100644 index cbe028c..0000000 Binary files a/assets/employer-1.png and /dev/null differ diff --git a/assets/employer-1.svg b/assets/employer-1.svg new file mode 100644 index 0000000..688d0df --- /dev/null +++ b/assets/employer-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/employer-2.png b/assets/employer-2.png deleted file mode 100644 index 2e3e9f9..0000000 Binary files a/assets/employer-2.png and /dev/null differ diff --git a/assets/employer-2.svg b/assets/employer-2.svg new file mode 100644 index 0000000..ff07acf --- /dev/null +++ b/assets/employer-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/employer-3.png b/assets/employer-3.png deleted file mode 100644 index b245bb5..0000000 Binary files a/assets/employer-3.png and /dev/null differ diff --git a/assets/employer-3.svg b/assets/employer-3.svg new file mode 100644 index 0000000..8c03499 --- /dev/null +++ b/assets/employer-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/grunge.png b/assets/grunge.png index b86676b..96cfaf7 100644 Binary files a/assets/grunge.png and b/assets/grunge.png differ diff --git a/assets/grunge.svg b/assets/grunge.svg new file mode 100644 index 0000000..1c32408 --- /dev/null +++ b/assets/grunge.svg @@ -0,0 +1 @@ +grunge \ No newline at end of file diff --git a/assets/icon17.png b/assets/icon17.png new file mode 100644 index 0000000..9aedb87 Binary files /dev/null and b/assets/icon17.png differ diff --git a/assets/icon18.png b/assets/icon18.png new file mode 100644 index 0000000..15e46e9 Binary files /dev/null and b/assets/icon18.png differ diff --git a/assets/icon19.png b/assets/icon19.png new file mode 100644 index 0000000..3bdb079 Binary files /dev/null and b/assets/icon19.png differ diff --git a/assets/icon20.png b/assets/icon20.png new file mode 100644 index 0000000..1462cd8 Binary files /dev/null and b/assets/icon20.png differ diff --git a/assets/icon21.png b/assets/icon21.png new file mode 100644 index 0000000..f2d3040 Binary files /dev/null and b/assets/icon21.png differ diff --git a/assets/ketapang.png b/assets/ketapang.png index 5106778..94df377 100644 Binary files a/assets/ketapang.png and b/assets/ketapang.png differ diff --git a/assets/ketapang.svg b/assets/ketapang.svg deleted file mode 100644 index 4b225ec..0000000 --- a/assets/ketapang.svg +++ /dev/null @@ -1 +0,0 @@ -ketapang \ No newline at end of file diff --git a/assets/ktp.jpg b/assets/ktp.jpg new file mode 100644 index 0000000..485ae71 Binary files /dev/null and b/assets/ktp.jpg differ diff --git a/assets/logo-hitam.png b/assets/logo-hitam.png deleted file mode 100644 index b3b41c0..0000000 Binary files a/assets/logo-hitam.png and /dev/null differ diff --git a/assets/seeker-1.png b/assets/seeker-1.png deleted file mode 100644 index 3d6442d..0000000 Binary files a/assets/seeker-1.png and /dev/null differ diff --git a/assets/seeker-1.svg b/assets/seeker-1.svg new file mode 100644 index 0000000..432a7d4 --- /dev/null +++ b/assets/seeker-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/seeker-2.png b/assets/seeker-2.png deleted file mode 100644 index 9fa4bc3..0000000 Binary files a/assets/seeker-2.png and /dev/null differ diff --git a/assets/seeker-2.svg b/assets/seeker-2.svg new file mode 100644 index 0000000..ff9f39d --- /dev/null +++ b/assets/seeker-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/seeker-3.png b/assets/seeker-3.png deleted file mode 100644 index 55d73c5..0000000 Binary files a/assets/seeker-3.png and /dev/null differ diff --git a/assets/seeker-3.svg b/assets/seeker-3.svg new file mode 100644 index 0000000..4b7e3a6 --- /dev/null +++ b/assets/seeker-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/vector-3.png b/assets/vector-3.png index d00c740..caf2a6b 100644 Binary files a/assets/vector-3.png and b/assets/vector-3.png differ diff --git a/assets/vector-5.png b/assets/vector-5.png index 1bb3f1c..73a297d 100644 Binary files a/assets/vector-5.png and b/assets/vector-5.png differ diff --git a/lib/main.dart b/lib/main.dart index 84be004..1641a24 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,25 +3,18 @@ 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'; +import 'package:space/src/ui/employer/widgets/flare_interview_employer.dart'; import 'package:space/src/ui/seeker/layout/job_details.dart'; -import 'package:space/src/ui/seeker/screens/applys_screen.dart'; -import 'package:space/src/ui/seeker/screens/cart_screen.dart'; import 'package:space/src/ui/seeker/screens/seeker_tabs.dart'; -import 'package:space/src/ui/components/splash_screen.dart'; +import 'package:space/src/ui/seeker/widgets/flare_interview_seeker.dart'; import 'package:space/src/ui/theme/theme.dart'; @@ -36,12 +29,12 @@ class DreamJobApp extends StatelessWidget { // ChangeNotifierProvider.value( // value: Auth(), // ), - ChangeNotifierProvider.value( - value: Jobs(), - ), - ChangeNotifierProvider.value( - value: Save(), - ), + // ChangeNotifierProvider.value( + // value: Jobs(), + // ), + // ChangeNotifierProvider.value( + // value: Save(), + // ), // ChangeNotifierProxyProvider( // builder: (ctx, auth, previousApplys) => Applys( // auth.token, @@ -61,6 +54,7 @@ class DreamJobApp extends StatelessWidget { EditPost.routeName: (ctx) => EditPost(), EmployerNavigator.routeName: (ctx) => EmployerNavigator(), UiGetStartedEmployer.routeName: (ctx) => UiGetStartedEmployer(), + InterviewEmployer.routeName: (ctx) => InterviewEmployer(), HomePageSeeker.routeName: (ctx) => HomePageSeeker(), JobDetails.routeName: (ctx) => JobDetails(), @@ -69,6 +63,7 @@ class DreamJobApp extends StatelessWidget { // // ApplysScreen.routeName: (ctx) => ApplysScreen(), SeekerNavigator.routeName: (ctx) => SeekerNavigator(), UiGetStartedSeeker.routeName: (ctx) => UiGetStartedSeeker(), + InterviewSeeker.routeName: (ctx) => InterviewSeeker(), }, ), ); diff --git a/lib/main1.dart b/lib/main1.dart deleted file mode 100644 index 3a6238c..0000000 --- a/lib/main1.dart +++ /dev/null @@ -1,22 +0,0 @@ -// import 'package:flutter/material.dart'; -// import 'package:provider/provider.dart'; -// import 'package:space/app.dart'; -// import 'package:space/navigator_employer.dart'; -// import 'package:space/navigator_seeker.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/auth/seeker/home_seeker.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/job_details.dart'; -// import 'package:space/src/ui/screens/save_screen.dart'; -// import 'package:space/src/ui/screens/seeker_tabs.dart'; -// import 'package:space/src/ui/screens/splash_screen.dart'; - -// import 'package:space/src/ui/theme/theme.dart'; - -// void main() => runApp(DreamApp()); diff --git a/lib/navigator_employer.dart b/lib/navigator_employer.dart index 1064f31..48f1acd 100644 --- a/lib/navigator_employer.dart +++ b/lib/navigator_employer.dart @@ -3,8 +3,7 @@ import 'package:feather_icons_flutter/feather_icons_flutter.dart'; import 'package:flutter/services.dart'; 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/chat/chat_list_employer.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'; @@ -28,7 +27,7 @@ class _EmployerNavigatorState extends State { HomePageEmployer(), EmployerTabs(), EditPost(), - InboxUiList(), + ChatListEmployer(), NotificationUi(), ]; @override diff --git a/lib/navigator_seeker.dart b/lib/navigator_seeker.dart index 07bc592..6255d05 100644 --- a/lib/navigator_seeker.dart +++ b/lib/navigator_seeker.dart @@ -3,7 +3,7 @@ import 'package:feather_icons_flutter/feather_icons_flutter.dart'; 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/chat/chat_list_seeker.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'; @@ -28,7 +28,7 @@ class _SeekerNavigatorState extends State { HomePageSeeker(), SeekerTabs(), JobSearch(), - InboxUiList(), + ChatListSeeker(), NotificationUi(), ]; @override diff --git a/lib/root.dart b/lib/root.dart deleted file mode 100644 index d965923..0000000 --- a/lib/root.dart +++ /dev/null @@ -1,19 +0,0 @@ -// import 'package:flutter/material.dart'; - -// import 'package:space/src/ui/screens/job_details.dart'; -// import 'package:space/src/ui/screens/save_screen.dart'; - -// class Root extends StatefulWidget { -// Root({Key key}) : super(key: key); - -// _RootState createState() => _RootState(); -// } - -// class _RootState extends State { -// @override -// Widget build(BuildContext context) { -// return -// ); -// } -// } - diff --git a/lib/routes.dart b/lib/routes.dart deleted file mode 100644 index b506926..0000000 --- a/lib/routes.dart +++ /dev/null @@ -1,45 +0,0 @@ -// import 'package:flutter/material.dart'; -// import 'package:flutter/services.dart'; -// import 'package:provider/provider.dart'; - -// import 'package:space/root.dart'; -// import 'package:space/src/core/models/jobs.dart'; -// import 'package:space/src/core/models/save.dart'; -// import 'package:space/src/ui/screens/job_details.dart'; -// import 'package:space/src/ui/screens/save_screen.dart'; -// import 'package:space/src/ui/screens/seeker_tabs.dart'; -// import 'package:space/src/ui/theme/theme.dart'; - -// class Routes extends StatelessWidget { - -// @override -// Widget build(BuildContext context) { -// final theme = buildTheme(); -// SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( -// statusBarColor: Colors.black, -// statusBarBrightness: Brightness.dark, -// statusBarIconBrightness: Brightness.dark, -// systemNavigationBarIconBrightness: Brightness.dark, -// systemNavigationBarColor: Colors.transparent, -// )); -// return MultiProvider( -// providers: [ -// ChangeNotifierProvider.value( -// value: Jobs(), -// ), -// ChangeNotifierProvider.value( -// value: Save(), -// ) -// ], -// child: MaterialApp( -// debugShowCheckedModeBanner: false, -// theme: theme, -// home: SeekerTabs(), -// routes: { -// JobDetails.routeName: (ctx) => JobDetails(), -// SaveScreen.routeName: (ctx) => SaveScreen(), -// }, -// ) -// ); -// } -// } \ No newline at end of file diff --git a/lib/seeker_app.dart b/lib/seeker_app.dart deleted file mode 100644 index 0fbe129..0000000 --- a/lib/seeker_app.dart +++ /dev/null @@ -1,61 +0,0 @@ -// import 'package:flutter/material.dart'; -// import 'package:provider/provider.dart'; -// import 'package:space/main.dart'; -// import 'package:space/navigator_seeker.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/seeker/home_seeker.dart'; -// import 'package:space/src/ui/screens/job_details.dart'; -// import 'package:space/src/ui/screens/save_screen.dart'; -// import 'package:space/src/ui/screens/seeker_tabs.dart'; -// import 'package:space/src/ui/screens/splash_screen.dart'; - -// import 'package:space/src/ui/theme/theme.dart'; - -// class SeekerApp 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 -// ? SeekerNavigator() -// : FutureBuilder( -// future: auth.tryAutoLogin(), -// builder: (ctx, authResultSnapshot) => -// authResultSnapshot.connectionState == -// ConnectionState.waiting -// ? SplashScreen() -// : DreamApp(), -// ), -// routes: { -// HomePageSeeker.routeName: (ctx) => HomePageSeeker(), -// JobDetails.routeName: (ctx) => JobDetails(), -// SaveScreen.routeName: (ctx) => SaveScreen(), -// SeekerTabs.routeName: (ctx) => SeekerTabs(), -// }, -// ), -// ), -// ); -// } -// } diff --git a/lib/src/app.dart b/lib/src/app.dart index 056a863..78dbd9a 100644 --- a/lib/src/app.dart +++ b/lib/src/app.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:space/seeker_app.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:space/src/ui/auth/employer/login_signup_employer.dart'; import 'package:space/src/ui/auth/seeker/login_signup_seeker.dart'; @@ -12,108 +12,121 @@ class DreamApp extends StatelessWidget { statusBarBrightness: Brightness.light, statusBarIconBrightness: Brightness.light, systemNavigationBarIconBrightness: Brightness.light, - systemNavigationBarColor: Colors.black, + 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,)), - ], + child: Stack( + children: [ + SvgPicture.asset( + 'assets/vector-5.svg', + fit: BoxFit.cover, + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, ), - ), - 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, + Padding( + padding: EdgeInsets.only(top: 50, right: 30), + child: Stack( + alignment: Alignment.topRight, children: [ - MaterialButton( - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30)), - color: Color(0xff22c0e8), - minWidth: 220, - onPressed: () { - Navigator.push( + 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()), + 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( + }, + 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)), + 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 d2a5c79..3bfac84 100644 --- a/lib/src/core/models/apply.dart +++ b/lib/src/core/models/apply.dart @@ -1,97 +1,96 @@ -import 'dart:convert'; +// import 'dart:convert'; -import 'package:flutter/foundation.dart'; -import 'package:http/http.dart' as http; -import 'package:space/src/core/models/job.dart'; +// import 'package:flutter/foundation.dart'; +// import 'package:http/http.dart' as http; +// import 'package:space/src/core/models/job.dart'; -import './cart.dart'; -class ApplyPost { - final String id; - final List job; - final DateTime dateTime; +// class ApplyPost { +// final String id; +// final List job; +// final DateTime dateTime; - ApplyPost({ - @required this.id, - @required this.job, - @required this.dateTime, - }); -} +// ApplyPost({ +// @required this.id, +// @required this.job, +// @required this.dateTime, +// }); +// } -class Applys with ChangeNotifier { - List _applys = []; - final String authToken; - final String userId; +// class Applys with ChangeNotifier { +// List _applys = []; +// final String authToken; +// final String userId; - Applys(this.authToken, this.userId, this._applys); +// Applys(this.authToken, this.userId, this._applys); - List get applys { - return [..._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 extractedData = json.decode(response.body) as Map; - if (extractedData == null) { - return; - } - extractedData.forEach((applyId, applyData) { - loadedApplys.add( - ApplyPost( - id: applyId, - dateTime: DateTime.parse(applyData['dateTime']), - job: (applyData['job'] as List) - .map( - (item) => Job( - id: item['id'], - title: item['title'], - type: item['type'], - workingday: item['workingday'], - workinghour: item['workinghour'], - salary: item['salary'], - description: item['description'], - location: item['location'], - industry: item['industry'], - skill: item['skill'], - education: item['education'], - gender: item['gender'], - typeSalary: item['typeSalary'], - ), - ) - .toList(), - ), - ); - }); - _applys = loadedApplys.reversed.toList(); - notifyListeners(); - } +// 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 extractedData = json.decode(response.body) as Map; +// if (extractedData == null) { +// return; +// } +// extractedData.forEach((applyId, applyData) { +// loadedApplys.add( +// ApplyPost( +// id: applyId, +// dateTime: DateTime.parse(applyData['dateTime']), +// job: (applyData['job'] as List) +// .map( +// (item) => Job( +// id: item['id'], +// title: item['title'], +// type: item['type'], +// workingday: item['workingday'], +// workinghour: item['workinghour'], +// salary: item['salary'], +// description: item['description'], +// location: item['location'], +// industry: item['industry'], +// skill: item['skill'], +// education: item['education'], +// gender: item['gender'], +// typeSalary: item['typeSalary'], +// ), +// ) +// .toList(), +// ), +// ); +// }); +// _applys = loadedApplys.reversed.toList(); +// notifyListeners(); +// } - Future addApply(List addJobs) async { - final url = 'https://dreamjob-id.firebaseio.com/applys/$userId.json?auth=$authToken'; - final timestamp = DateTime.now(); - final response = await http.post( - url, - body: json.encode({ - 'dateTime': timestamp.toIso8601String(), - 'jobs': addJobs - .map((cp) => { - 'id': cp.id, - 'title': cp.title, - 'salary': cp.salary, - }) - .toList(), - }), - ); - _applys.insert( - 0, - ApplyPost( - id: json.decode(response.body)['name'], - dateTime: timestamp, - job: addJobs, - ), - ); - notifyListeners(); - } -} +// Future addApply(List addJobs) async { +// final url = 'https://dreamjob-id.firebaseio.com/applys/$userId.json?auth=$authToken'; +// final timestamp = DateTime.now(); +// final response = await http.post( +// url, +// body: json.encode({ +// 'dateTime': timestamp.toIso8601String(), +// 'jobs': addJobs +// .map((cp) => { +// 'id': cp.id, +// 'title': cp.title, +// 'salary': cp.salary, +// }) +// .toList(), +// }), +// ); +// _applys.insert( +// 0, +// ApplyPost( +// id: json.decode(response.body)['name'], +// dateTime: timestamp, +// job: addJobs, +// ), +// ); +// notifyListeners(); +// } +// } diff --git a/lib/src/core/models/job.dart b/lib/src/core/models/job.dart index a449fb9..38d4d3b 100644 --- a/lib/src/core/models/job.dart +++ b/lib/src/core/models/job.dart @@ -1,44 +1,46 @@ -import 'package:flutter/foundation.dart'; +// import 'package:flutter/foundation.dart'; -class Job with ChangeNotifier { - final String id; - final String title; - final String employerName; - final String location; - final String workingday; - final String workinghour; - final String description; - final String industry; - final String education; - final String skill; - final double salary; - final String type; - final String imageUrl; - final String gender; - final String typeSalary; - bool isSave; +// class Job with ChangeNotifier { +// final String id; +// final String title; +// final String employerName; +// final String location; +// final String workingday; +// final String workinghour; +// final String description; +// final String industry; +// final String education; +// final String skill; +// final double salary; +// final String type; +// final String imageUrl; +// final String gender; +// final String typeSalary; +// final String status; +// bool isSave; - Job({ - @required this.id, - @required this.title, - this.employerName, - @required this.location, - @required this.workingday, - @required this.workinghour, - @required this.description, - @required this.industry, - @required this.education, - @required this.skill, - @required this.salary, - @required this.type, - @required this.typeSalary, - this.imageUrl, - @required this.gender, - this.isSave = false, - }); +// Job({ +// @required this.id, +// @required this.title, +// this.employerName, +// @required this.location, +// @required this.workingday, +// @required this.workinghour, +// @required this.description, +// @required this.industry, +// @required this.education, +// @required this.skill, +// @required this.salary, +// @required this.type, +// @required this.typeSalary, +// this.imageUrl, +// @required this.gender, +// this.status, +// this.isSave = false, +// }); - void toggleSavePosts() { - isSave = !isSave; - notifyListeners(); - } -} \ No newline at end of file +// void toggleSavePosts() { +// isSave = !isSave; +// notifyListeners(); +// } +// } \ No newline at end of file diff --git a/lib/src/core/models/jobs.dart b/lib/src/core/models/jobs.dart index 257250a..b896829 100644 --- a/lib/src/core/models/jobs.dart +++ b/lib/src/core/models/jobs.dart @@ -1,155 +1,150 @@ -import 'package:flutter/material.dart'; +// import 'package:flutter/material.dart'; -import './job.dart'; +// import './job.dart'; -class Jobs with ChangeNotifier { - 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; +// class Jobs with ChangeNotifier { +// 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', +// 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', +// status: 'Applied', +// ), +// 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', +// 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', +// status: 'Hold', +// ), +// 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', +// skill: 'required: ' +// '• -' +// '• -' +// '• -' +// '• -' +// '• -' +// '• -', +// status: 'Rejected', +// ), +// 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', +// skill: 'required: ' +// '• -' +// '• -' +// '• -' +// '• -' +// '• -' +// '• -', +// status: 'Hired', +// ), +// 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', +// skill: 'required: ' +// '• -' +// '• -' +// '• -' +// '• -' +// '• -' +// '• -', +// status: 'Rejected', +// ), +// ]; +// // var _showFavoritesOnly = false; - List get posts { - return [..._posts]; - } +// List get posts { +// return [..._posts]; +// } - List get savePosts { - return _posts.where((jobPost) => jobPost.isSave).toList(); - } +// List get savePosts { +// return _posts.where((jobPost) => jobPost.isSave).toList(); +// } - Job findById(String id) { - return _posts.firstWhere((job) => job.id == id); - } +// Job findById(String id) { +// return _posts.firstWhere((job) => job.id == id); +// } - // void showFavoritesOnly() { - // _showFavoritesOnly = true; - // notifyListeners(); - // } +// // void showFavoritesOnly() { +// // _showFavoritesOnly = true; +// // notifyListeners(); +// // } - // void showAll() { - // _showFavoritesOnly = false; - // notifyListeners(); - // } +// // void showAll() { +// // _showFavoritesOnly = false; +// // notifyListeners(); +// // } - void addJob() { - // _posts.add(value); - notifyListeners(); - } -} +// void addJob() { +// // _posts.add(value); +// notifyListeners(); +// } +// } diff --git a/lib/src/ui/auth/employer/home_employer.dart b/lib/src/ui/auth/employer/home_employer.dart index 477b7ce..2f4d81d 100644 --- a/lib/src/ui/auth/employer/home_employer.dart +++ b/lib/src/ui/auth/employer/home_employer.dart @@ -1,15 +1,12 @@ -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/components/near_job_screen.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 HomePageEmployer extends StatefulWidget { @@ -104,8 +101,9 @@ class _HomePageEmployerState extends State { dotSpacing: 15, dotIncreasedColor: Colors.amber, dotBgColor: Colors.transparent, + dotColor: Colors.amber[100], dotPosition: DotPosition.bottomLeft, - dotVerticalPadding: 5.0, + dotVerticalPadding: 0.0, showIndicator: true, dotHorizontalPadding: 10.0, indicatorBgPadding: 0, @@ -167,7 +165,7 @@ class _HomePageEmployerState extends State { Container( height: 50, child: ListTile( - leading: Text('Recent Job', + leading: Text('Job Near You', style: style2.copyWith( fontSize: 16, fontWeight: FontWeight.bold, @@ -183,7 +181,7 @@ class _HomePageEmployerState extends State { )), SizedBox( height: 180, - child: RecentScreen(), + child: NearJobScreen(), ), Container( margin: EdgeInsets.only(top: 10), diff --git a/lib/src/ui/auth/employer/intro_employer.dart b/lib/src/ui/auth/employer/intro_employer.dart index 6293c3d..6fe356a 100644 --- a/lib/src/ui/auth/employer/intro_employer.dart +++ b/lib/src/ui/auth/employer/intro_employer.dart @@ -1,64 +1,80 @@ import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.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'), + bubble: SvgPicture.asset('assets/employer-2.svg'), body: Text( 'Check profile information easier.', ), title: Text( - 'Choose Applicants with simple click!', textAlign: TextAlign.center, + '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', + titleTextStyle: TextStyle( + fontFamily: 'VarelaRound', + color: Colors.white, + fontSize: 32, + fontWeight: FontWeight.bold), + bodyTextStyle: TextStyle( + fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21), + mainImage: SvgPicture.asset( + 'assets/employer-2.svg', 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'), + bubble: SvgPicture.asset( + 'assets/employer-1.svg', + ), body: Text( 'Faster and Effectives to hired.', ), title: Text( - 'New and Easier Way!', textAlign: TextAlign.center, + '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', + titleTextStyle: TextStyle( + fontFamily: 'VarelaRound', + color: Colors.white, + fontSize: 32, + fontWeight: FontWeight.bold), + bodyTextStyle: TextStyle( + fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21), + mainImage: SvgPicture.asset( + 'assets/employer-1.svg', height: 285.0, width: 285.0, + fit: BoxFit.contain, 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', + bubble: SvgPicture.asset('assets/employer-3.svg'), + 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: SvgPicture.asset( + 'assets/employer-3.svg', 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), + titleTextStyle: TextStyle( + fontFamily: 'VarelaRound', + color: Colors.white, + fontSize: 32, + fontWeight: FontWeight.bold), + bodyTextStyle: TextStyle( + fontFamily: 'VarelaRound', color: Colors.white, fontSize: 21), ), ]; 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 7c76f8e..74693a0 100644 --- a/lib/src/ui/auth/employer/ui_get_started_employer.dart +++ b/lib/src/ui/auth/employer/ui_get_started_employer.dart @@ -14,18 +14,18 @@ class UiGetStartedEmployer extends StatelessWidget { 'assets/vector-5.svg', height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, - fit: BoxFit.fill, + fit: BoxFit.cover, ), Scaffold( backgroundColor: Colors.transparent, body: Container( - padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 20), height: MediaQuery.of(context).size.height, child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ Container( - child: Image.asset('assets/logo.png', height: 150,)), + child: Image.asset('assets/logo.png', height: 120,)), Text('Are you ready to find your dream team?', textAlign: TextAlign.center, style: style.copyWith( diff --git a/lib/src/ui/auth/seeker/home_seeker.dart b/lib/src/ui/auth/seeker/home_seeker.dart index da1b7b0..b9f9202 100644 --- a/lib/src/ui/auth/seeker/home_seeker.dart +++ b/lib/src/ui/auth/seeker/home_seeker.dart @@ -1,15 +1,13 @@ -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:flutter_svg/flutter_svg.dart'; import 'package:carousel_pro/carousel_pro.dart'; import 'package:space/src/ui/components/category_job_screen.dart'; +import 'package:space/src/ui/components/near_job_screen.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'; +import 'package:space/src/ui/seeker/widgets/seeker_app_drawer.dart'; class HomePageSeeker extends StatefulWidget { static const routeName = '/home_page_seeker'; @@ -41,13 +39,13 @@ class _HomePageSeekerState extends State { Container( height: 94, width: MediaQuery.of(context).size.width, - child: Image.asset( - 'assets/vector-5.png', + child: SvgPicture.asset( + 'assets/vector-5.svg', fit: BoxFit.fitWidth, ), ), Scaffold( - drawer: EmployerDrawer(), + drawer: AppDrawer(), backgroundColor: Colors.transparent, appBar: PreferredSize( preferredSize: Size.fromHeight(70), // here the desired height @@ -94,12 +92,8 @@ class _HomePageSeekerState extends State { child: Column( children: [ Container( - padding: - EdgeInsets.symmetric(horizontal: 10, vertical: 10), - height: 120, + height: 110, child: Carousel( - borderRadius: true, - boxFit: BoxFit.fill, autoplay: true, animationCurve: Curves.fastOutSlowIn, animationDuration: Duration(milliseconds: 2000), @@ -107,18 +101,44 @@ class _HomePageSeekerState extends State { dotSpacing: 15, dotIncreasedColor: Colors.amber, dotBgColor: Colors.transparent, + dotColor: Colors.amber[100], dotPosition: DotPosition.bottomLeft, - dotVerticalPadding: 5.0, + dotVerticalPadding: 0.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'), + 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, + ), + ), + ), + 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, + ), + ), + ), ], ), ), @@ -145,7 +165,7 @@ class _HomePageSeekerState extends State { Container( height: 50, child: ListTile( - leading: Text('Job Around You', + leading: Text('Job Near You', style: style2.copyWith( fontSize: 16, fontWeight: FontWeight.bold, @@ -161,7 +181,7 @@ class _HomePageSeekerState extends State { )), SizedBox( height: 180, - child: RecentScreen(), + child: NearJobScreen(), ), Container( margin: EdgeInsets.only(top: 10), diff --git a/lib/src/ui/auth/seeker/intro_seeker.dart b/lib/src/ui/auth/seeker/intro_seeker.dart index f9a26d9..6f14bb7 100644 --- a/lib/src/ui/auth/seeker/intro_seeker.dart +++ b/lib/src/ui/auth/seeker/intro_seeker.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.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'; @@ -9,8 +9,7 @@ class IntroSeeker extends StatelessWidget { final pages = [ PageViewModel( pageColor: const Color(0xffff6d00), - iconImageAssetPath: 'assets/seeker-1.png', - bubble: Image.asset('assets/seeker-1.png'), + bubble: SvgPicture.asset('assets/seeker-1.svg'), body: Text( 'More than 100+ Job may suite you.', ), @@ -19,16 +18,15 @@ class IntroSeeker extends StatelessWidget { ), 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', + mainImage: SvgPicture.asset( + 'assets/seeker-1.svg', 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'), + bubble: SvgPicture.asset('assets/seeker-2.svg'), body: Text( 'Say goodbay to paper, More Effectives and Efficients.', ), @@ -37,22 +35,21 @@ class IntroSeeker extends StatelessWidget { ), 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', + mainImage: SvgPicture.asset( + 'assets/seeker-2.svg', 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', + bubble: SvgPicture.asset('assets/seeker-3.svg'), 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', + mainImage: SvgPicture.asset( + 'assets/seeker-3.svg', height: 285.0, width: 285.0, alignment: Alignment.center, @@ -62,14 +59,13 @@ class IntroSeeker extends StatelessWidget { ), PageViewModel( pageColor: const Color(0xff64dd17), - bubble: Image.asset('assets/employer-3.png'), - iconImageAssetPath: 'assets/employer-3.png', + bubble: SvgPicture.asset('assets/employer-3.svg'), 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', + mainImage: SvgPicture.asset( + 'assets/employer-3.svg', height: 285.0, width: 285.0, alignment: Alignment.center, diff --git a/lib/src/ui/auth/seeker/login_signup_seeker.dart b/lib/src/ui/auth/seeker/login_signup_seeker.dart index 116aaba..c8479e4 100644 --- a/lib/src/ui/auth/seeker/login_signup_seeker.dart +++ b/lib/src/ui/auth/seeker/login_signup_seeker.dart @@ -1,14 +1,7 @@ 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 } 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 76cd991..8b07de8 100644 --- a/lib/src/ui/auth/seeker/ui_get_started_seeker.dart +++ b/lib/src/ui/auth/seeker/ui_get_started_seeker.dart @@ -1,6 +1,5 @@ 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 { @@ -15,18 +14,18 @@ class UiGetStartedSeeker extends StatelessWidget { 'assets/vector-5.svg', height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, - fit: BoxFit.fill, + fit: BoxFit.cover, ), Scaffold( backgroundColor: Colors.transparent, body: Container( - padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 20), height: MediaQuery.of(context).size.height, child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ Container( - child: Image.asset('assets/logo.png', height: 150,)), + child: Image.asset('assets/logo.png', height: 120,)), Text('Are you ready to chase your dreams?', textAlign: TextAlign.center, style: style.copyWith( diff --git a/lib/src/ui/chat/chat_employer.dart b/lib/src/ui/chat/chat_employer.dart new file mode 100644 index 0000000..d2b8664 --- /dev/null +++ b/lib/src/ui/chat/chat_employer.dart @@ -0,0 +1,519 @@ +import 'package:flutter/material.dart'; +import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:space/src/ui/chat/employer_calling.dart'; +import 'package:space/src/ui/chat/ongoing_call_employer.dart'; + +class ChatEmployer extends StatelessWidget { + @override + Widget build(BuildContext context) { + 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: 14)), + elevation: 1, + backgroundColor: Colors.white, + 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, + ), + 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)), + ), + ], + ), + centerTitle: true, + actions: [ + // action button + IconButton( + icon: Icon(Icons.videocam, color: Color(0xff4d4d4d), size: 33), + onPressed: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => EmployerCalling())); + }, + ), + ], + ), + body: SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(top: 15, bottom: 80), + child: Column( + children: [ + 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)), + ), + ], + ), + ), + ], + ), + ], + ), + ], + ), + ), + ), + 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), + ], + ), + ), + ), + ), + SizedBox( + width: 5.0, + ), + GestureDetector( + onTap: () {}, + child: CircleAvatar( + child: Icon( + Icons.send, + size: 20, + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/src/ui/chat/chat_list_employer.dart b/lib/src/ui/chat/chat_list_employer.dart new file mode 100644 index 0000000..c07a6dd --- /dev/null +++ b/lib/src/ui/chat/chat_list_employer.dart @@ -0,0 +1,159 @@ +import 'package:flutter/material.dart'; +import 'package:space/src/ui/chat/chat_employer.dart'; +import 'package:space/src/ui/seeker/layout/seeker_profile_view.dart'; + +class ChatListEmployer extends StatefulWidget { + @override + _ChatListEmployerState createState() => _ChatListEmployerState(); +} + +class _ChatListEmployerState extends State + with SingleTickerProviderStateMixin { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + margin: EdgeInsets.only(top: 20), + child: ListView( + children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 15, vertical: 10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Inbox', + style: TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + color: Color(0xff3b3b3b))), + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: ListTile( + leading: Stack( + alignment: Alignment(1, -1), + children: [ + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SeekerProfileView())); + }, + child: 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)), + ), + ], + ), + title: Text('Mekuru Ramen', + style: TextStyle(fontSize: 16, color: Color(0xff757575))), + subtitle: Text('Hello, New job offers for you', + style: TextStyle(fontSize: 14, color: Color(0xff757575))), + trailing: Text('03:57 AM', + style: TextStyle(fontSize: 12, color: Color(0xff757575))), + onTap: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => ChatEmployer())); + }), + ), + Container( + height: 30, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: ListTile( + leading: 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(0xfffca467)), + ), + ], + ), + title: Text('Diamonds Group', + style: TextStyle(fontSize: 16, color: Color(0xff757575))), + subtitle: Text('Hello, New job offers for you', + style: TextStyle(fontSize: 14, color: Color(0xff757575))), + trailing: Text('03:57 AM', + style: TextStyle(fontSize: 12, color: Color(0xff757575))), + ), + ), + Container( + height: 30, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 10), + child: ListTile( + leading: 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(0xfffc6767)), + ), + ], + ), + title: Text('Pull n Beat', + style: TextStyle(fontSize: 16, color: Color(0xff757575))), + subtitle: Text('Hello, New job offers for you', + style: TextStyle(fontSize: 14, color: Color(0xff757575))), + trailing: Text('03:57 AM', + style: TextStyle(fontSize: 12, color: Color(0xff757575))), + ), + ), + Container( + height: 30, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ], + ), + ), + ); + } +} diff --git a/lib/src/ui/chat/inbox_ui_list.dart b/lib/src/ui/chat/chat_list_seeker.dart similarity index 96% rename from lib/src/ui/chat/inbox_ui_list.dart rename to lib/src/ui/chat/chat_list_seeker.dart index 52b0874..5223c87 100644 --- a/lib/src/ui/chat/inbox_ui_list.dart +++ b/lib/src/ui/chat/chat_list_seeker.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; -import 'package:space/src/ui/chat/inbox_ui_chat.dart'; +import 'package:space/src/ui/chat/chat_seeker.dart'; import 'package:space/src/ui/seeker/layout/seeker_profile_view.dart'; -class InboxUiList extends StatefulWidget { +class ChatListSeeker extends StatefulWidget { @override - _InboxUiListState createState() => _InboxUiListState(); + _ChatListSeekerState createState() => _ChatListSeekerState(); } -class _InboxUiListState extends State +class _ChatListSeekerState extends State with SingleTickerProviderStateMixin { @override Widget build(BuildContext context) { @@ -69,7 +69,7 @@ class _InboxUiListState extends State style: TextStyle(fontSize: 12, color: Color(0xff757575))), onTap: () { Navigator.push(context, - MaterialPageRoute(builder: (context) => InboxUiChat())); + MaterialPageRoute(builder: (context) => ChatSeeker())); }), ), Container( diff --git a/lib/src/ui/chat/inbox_ui_chat.dart b/lib/src/ui/chat/chat_seeker.dart similarity index 99% rename from lib/src/ui/chat/inbox_ui_chat.dart rename to lib/src/ui/chat/chat_seeker.dart index e8e81f2..4af442f 100644 --- a/lib/src/ui/chat/inbox_ui_chat.dart +++ b/lib/src/ui/chat/chat_seeker.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; -import 'package:space/src/ui/chat/video_ui_calling.dart'; +import 'package:space/src/ui/chat/seeker_calling.dart'; -class InboxUiChat extends StatelessWidget { +class ChatSeeker extends StatelessWidget { @override Widget build(BuildContext context) { TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0); @@ -61,7 +61,7 @@ class InboxUiChat extends StatelessWidget { context, MaterialPageRoute( builder: (context) => - Calling())); + SeekerCalling())); }, ), ], diff --git a/lib/src/ui/chat/employer_calling.dart b/lib/src/ui/chat/employer_calling.dart new file mode 100644 index 0000000..9d1f00c --- /dev/null +++ b/lib/src/ui/chat/employer_calling.dart @@ -0,0 +1,98 @@ +import 'package:flutter/material.dart'; +import 'package:space/src/ui/chat/ongoing_call_employer.dart'; +import 'package:space/src/ui/chat/video_ui_incoming.dart'; + +class EmployerCalling extends StatefulWidget { + const EmployerCalling({Key key, String title}) : super(key: key); + @override + _EmployerCallingState createState() => _EmployerCallingState(); +} + +class _EmployerCallingState extends State with SingleTickerProviderStateMixin { + TextStyle style = + TextStyle(fontFamily: 'VarelaRound', fontSize: 18.0, color: Colors.white); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + actions: [ + RaisedButton( + child: Text('In Coming Call'), + onPressed: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => IncomingCall())); + }, + ), + RaisedButton( + child: Text('On Going Call'), + onPressed: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => OnCallingEMployer())); + }, + ), + ], + ), + body: Container( + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/background-2.png'), + colorFilter: new ColorFilter.mode( + Colors.black.withOpacity(0.7), BlendMode.multiply), + fit: BoxFit.cover), + ), + child: Container( + margin: EdgeInsets.only(top: 80, bottom: 60), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + children: [ + CircleAvatar( + backgroundColor: Colors.white, + radius: 60, + child: + Image.asset('assets/mekuru_2.png', fit: BoxFit.cover), + ), + SizedBox(height: 20), + Text('Mekuru Ramen', style: style.copyWith(fontSize: 20)), + SizedBox(height: 20), + Text('contacting...', style: style.copyWith(fontSize: 16)), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + MaterialButton( + padding: EdgeInsets.all(20), + onPressed: () {}, + child: Icon(Icons.mic_off, color: Colors.white, size: 30), + color: Colors.transparent, + shape: + CircleBorder(side: BorderSide(color: Colors.white))), + MaterialButton( + padding: EdgeInsets.all(20), + onPressed: () {}, + child: + Icon(Icons.call_end, color: Colors.white, size: 30), + color: Color(0xfffd2e61), + shape: CircleBorder()), + MaterialButton( + padding: EdgeInsets.all(20), + onPressed: () {}, + child: + Icon(Icons.volume_up, color: Colors.white, size: 30), + color: Colors.transparent, + shape: + CircleBorder(side: BorderSide(color: Colors.white))), + ], + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/src/ui/chat/ongoing_call_employer.dart b/lib/src/ui/chat/ongoing_call_employer.dart new file mode 100644 index 0000000..1c170a4 --- /dev/null +++ b/lib/src/ui/chat/ongoing_call_employer.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; + +class OnCallingEMployer extends StatefulWidget { + @override + _OnCallingEMployerState createState() => _OnCallingEMployerState(); +} + +class _OnCallingEMployerState extends State + with SingleTickerProviderStateMixin { + TextStyle style = + TextStyle(fontFamily: 'VarelaRound', fontSize: 24.0, color: Colors.white); + + @override + Widget build(BuildContext context) { + return new Scaffold( + body: Container( + padding: EdgeInsets.only(bottom: 30, left: 30), + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/background-2.png'), fit: BoxFit.cover), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + MaterialButton( + padding: EdgeInsets.all(10), + onPressed: () {}, + child: Icon(Icons.mic_off, color: Colors.white, size: 35), + color: Colors.transparent, + shape: CircleBorder(side: BorderSide(color: Colors.white))), + SizedBox( + height: 10, + ), + MaterialButton( + padding: EdgeInsets.all(10), + onPressed: () { + Navigator.popAndPushNamed( + context, + '/employer-interview'); + }, + child: Icon(Icons.call_end, color: Colors.white, size: 35), + color: Color(0xfffd2e61), + shape: CircleBorder()), + SizedBox( + height: 10, + ), + MaterialButton( + padding: EdgeInsets.all(10), + onPressed: () {}, + child: Icon(Icons.volume_up, color: Colors.white, size: 35), + color: Colors.transparent, + shape: CircleBorder(side: BorderSide(color: Colors.white))), + SizedBox( + height: 10, + ), + Container( + height: 200, + width: 140, + child: Image.asset('assets/ketapang.png', fit: BoxFit.cover), + ) + ], + ), + ), + ); + } +} diff --git a/lib/src/ui/chat/ongoing_call_seeker.dart b/lib/src/ui/chat/ongoing_call_seeker.dart new file mode 100644 index 0000000..0b69069 --- /dev/null +++ b/lib/src/ui/chat/ongoing_call_seeker.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; + +class OnCallingSeeker extends StatefulWidget { + @override + _OnCallingSeekerState createState() => _OnCallingSeekerState(); +} + +class _OnCallingSeekerState extends State + with SingleTickerProviderStateMixin { + TextStyle style = + TextStyle(fontFamily: 'VarelaRound', fontSize: 24.0, color: Colors.white); + + @override + Widget build(BuildContext context) { + return new Scaffold( + body: Container( + padding: EdgeInsets.only(bottom: 30, left: 30), + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/background-2.png'), fit: BoxFit.cover), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + MaterialButton( + padding: EdgeInsets.all(10), + onPressed: () {}, + child: Icon(Icons.mic_off, color: Colors.white, size: 35), + color: Colors.transparent, + shape: CircleBorder(side: BorderSide(color: Colors.white))), + SizedBox( + height: 10, + ), + MaterialButton( + padding: EdgeInsets.all(10), + onPressed: () { + Navigator.popAndPushNamed( + context, + '/seeker-interview'); + }, + child: Icon(Icons.call_end, color: Colors.white, size: 35), + color: Color(0xfffd2e61), + shape: CircleBorder()), + SizedBox( + height: 10, + ), + MaterialButton( + padding: EdgeInsets.all(10), + onPressed: () {}, + child: Icon(Icons.volume_up, color: Colors.white, size: 35), + color: Colors.transparent, + shape: CircleBorder(side: BorderSide(color: Colors.white))), + SizedBox( + height: 10, + ), + Container( + height: 200, + width: 140, + child: Image.asset('assets/ketapang.png', fit: BoxFit.cover), + ) + ], + ), + ), + ); + } +} diff --git a/lib/src/ui/chat/video_ui_calling.dart b/lib/src/ui/chat/seeker_calling.dart similarity index 88% rename from lib/src/ui/chat/video_ui_calling.dart rename to lib/src/ui/chat/seeker_calling.dart index 096d53b..804b2ea 100644 --- a/lib/src/ui/chat/video_ui_calling.dart +++ b/lib/src/ui/chat/seeker_calling.dart @@ -1,14 +1,14 @@ import 'package:flutter/material.dart'; -import 'package:space/src/ui/chat/video_ongoing_call.dart'; +import 'package:space/src/ui/chat/ongoing_call_employer.dart'; +import 'package:space/src/ui/chat/ongoing_call_seeker.dart'; import 'package:space/src/ui/chat/video_ui_incoming.dart'; -class Calling extends StatefulWidget { - const Calling({Key key, String title}) : super(key: key); +class SeekerCalling extends StatefulWidget { @override - _CallingState createState() => _CallingState(); + _SeekerCallingState createState() => _SeekerCallingState(); } -class _CallingState extends State with SingleTickerProviderStateMixin { +class _SeekerCallingState extends State with SingleTickerProviderStateMixin { TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 18.0, color: Colors.white); @@ -28,7 +28,7 @@ class _CallingState extends State with SingleTickerProviderStateMixin { child: Text('On Going Call'), onPressed: () { Navigator.push(context, - MaterialPageRoute(builder: (context) => Oncalling())); + MaterialPageRoute(builder: (context) => OnCallingSeeker())); }, ), ], diff --git a/lib/src/ui/chat/video_ongoing_call.dart b/lib/src/ui/chat/video_ongoing_call.dart deleted file mode 100644 index 3862c3b..0000000 --- a/lib/src/ui/chat/video_ongoing_call.dart +++ /dev/null @@ -1,78 +0,0 @@ -import 'package:flutter/material.dart'; - -class Oncalling extends StatefulWidget { - const Oncalling({ Key key, String title }) : super(key: key); - @override - _OncallingState createState() => _OncallingState(); -} - -class _OncallingState extends State with SingleTickerProviderStateMixin { - - TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 24.0, color: Colors.white); - - @override - Widget build(BuildContext context) { - - return new Scaffold( - body: Container( - padding: EdgeInsets.only(bottom: 30, left: 30), - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/background-2.png'), - fit: BoxFit.cover - ), - ), - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - MaterialButton( - padding: EdgeInsets.all(10), - onPressed: (){}, - child: Icon(Icons.mic_off, color: Colors.white, size: 35), - color: Colors.transparent, - shape: CircleBorder(side: BorderSide(color: Colors.white)) - ), - SizedBox( - height: 10, - ), - MaterialButton( - padding: EdgeInsets.all(10), - onPressed: (){}, - child: Icon(Icons.call_end, color: Colors.white, size: 35), - color: Color(0xfffd2e61), - shape: CircleBorder() - ), - SizedBox( - height: 10, - ), - MaterialButton( - padding: EdgeInsets.all(10), - onPressed: (){}, - child: Icon(Icons.volume_up, color: Colors.white, size: 35), - color: Colors.transparent, - shape: CircleBorder(side: BorderSide(color: Colors.white)) - ), - SizedBox( - height: 10, - ), - Container( - height: 200, - width: 140, - child: Image.asset('assets/ketapang.png', fit: BoxFit.cover), - ) - ],), - - - - - - - ), - - - ); - } -} \ No newline at end of file diff --git a/lib/src/ui/components/category_job.dart b/lib/src/ui/components/category_job.dart index e06bc97..5f0011a 100644 --- a/lib/src/ui/components/category_job.dart +++ b/lib/src/ui/components/category_job.dart @@ -3,7 +3,6 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:space/src/ui/components/category_list_screen.dart'; import 'package:space/src/ui/components/category_post_screen.dart'; -import 'package:space/src/ui/seeker/screens/jobs_list_screen.dart'; class CategoryJob extends StatelessWidget { @override @@ -29,7 +28,8 @@ class CategoryJob extends StatelessWidget { borderRadius: new BorderRadius.circular(10), child: SvgPicture.asset( 'assets/f&b.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), ), @@ -80,7 +80,8 @@ class CategoryJob extends StatelessWidget { borderRadius: new BorderRadius.circular(10), child: SvgPicture.asset( 'assets/Fashion.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), ), @@ -131,7 +132,8 @@ class CategoryJob extends StatelessWidget { borderRadius: new BorderRadius.circular(10), child: SvgPicture.asset( 'assets/market-2.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), ), @@ -182,7 +184,8 @@ class CategoryJob extends StatelessWidget { borderRadius: new BorderRadius.circular(10), child: SvgPicture.asset( 'assets/Corporate.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), ), @@ -233,7 +236,8 @@ class CategoryJob extends StatelessWidget { borderRadius: new BorderRadius.circular(10), child: SvgPicture.asset( 'assets/others.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), ), diff --git a/lib/src/ui/components/category_job_screen.dart b/lib/src/ui/components/category_job_screen.dart index 1c9478c..609983c 100644 --- a/lib/src/ui/components/category_job_screen.dart +++ b/lib/src/ui/components/category_job_screen.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import 'package:space/src/ui/components/category_job.dart'; diff --git a/lib/src/ui/components/category_list.dart b/lib/src/ui/components/category_list.dart index 7eaacb4..60ca4db 100644 --- a/lib/src/ui/components/category_list.dart +++ b/lib/src/ui/components/category_list.dart @@ -1,9 +1,6 @@ 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:space/src/ui/components/category_list_screen.dart'; import 'package:space/src/ui/components/category_post_screen.dart'; -import 'package:space/src/ui/seeker/screens/jobs_list_screen.dart'; class CategoryList extends StatelessWidget { @override @@ -25,7 +22,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/f&b.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -63,7 +61,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/Startup.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -101,7 +100,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/Corporate.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -139,7 +139,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/market-2.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -177,7 +178,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/Goverment.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -215,7 +217,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/IT.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -253,7 +256,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/market.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -291,7 +295,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/Fashion.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -329,7 +334,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/Transport.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( @@ -367,7 +373,8 @@ class CategoryList extends StatelessWidget { height: 100, child: SvgPicture.asset( 'assets/DKV.svg', - fit: BoxFit.fill, + fit: BoxFit.cover, + alignment: Alignment.bottomCenter, ), ), Column( diff --git a/lib/src/ui/components/category_list_screen.dart b/lib/src/ui/components/category_list_screen.dart index 52955ff..ec06574 100644 --- a/lib/src/ui/components/category_list_screen.dart +++ b/lib/src/ui/components/category_list_screen.dart @@ -1,9 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:gradient_app_bar/gradient_app_bar.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/ui/components/category_job.dart'; import 'package:space/src/ui/components/category_list.dart'; class CategoryListScreen extends StatefulWidget { diff --git a/lib/src/ui/components/category_post_screen.dart b/lib/src/ui/components/category_post_screen.dart index 0bd8141..eec84f2 100644 --- a/lib/src/ui/components/category_post_screen.dart +++ b/lib/src/ui/components/category_post_screen.dart @@ -1,9 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:gradient_app_bar/gradient_app_bar.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/jobs.dart'; import 'package:space/src/ui/seeker/layout/job_list.dart'; class CategoryPostScreen extends StatefulWidget { @@ -15,8 +12,8 @@ class _CategoryPostScreenState extends State { @override Widget build(BuildContext context) { - final jobData = Provider.of(context); - final jobs = jobData.posts; + // final jobData = Provider.of(context); + // final jobs = jobData.posts; return Scaffold( backgroundColor: Colors.white, appBar: PreferredSize( @@ -43,16 +40,9 @@ class _CategoryPostScreenState extends State { child: CircularProgressIndicator(), ) : ListView.builder( - itemCount: jobs.length, - itemBuilder: (ctx, i) => ChangeNotifierProvider.value( + itemBuilder: (ctx, i) => ( // builder: (c) => jobs[i], - value: jobs[i], - child: JobsList( - // jobs[i].id, - // jobs[i].title, - // jobs[i].imageUrl, - ), - ), + JobsList()), ), ); } diff --git a/lib/src/ui/components/horizontal_list.dart b/lib/src/ui/components/horizontal_list.dart index a00afc1..3378f3d 100644 --- a/lib/src/ui/components/horizontal_list.dart +++ b/lib/src/ui/components/horizontal_list.dart @@ -1,80 +1,310 @@ import 'package:flutter/material.dart'; import 'package:flutter_money_formatter/flutter_money_formatter.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/job.dart'; -import 'package:space/src/ui/seeker/layout/job_details.dart'; class RecommendedJob extends StatelessWidget { @override Widget build(BuildContext context) { - final job = Provider.of(context, listen: false); - return GestureDetector( - onTap: () { - Navigator.of(context) - .pushNamed(JobDetails.routeName, arguments: job.id); - }, - child: Container( - width: 120, - height: 60, - margin: EdgeInsets.symmetric(horizontal: 5, vertical: 5), - child: Material( - elevation: 3, - shape: - RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), - child: Column( - children: [ - Container( - height: 60, - child: ClipRRect( - borderRadius: new BorderRadius.only(topLeft: Radius.circular(10), topRight: Radius.circular(10)), - child: SvgPicture.asset( - 'assets/ketapang.svg', - fit: BoxFit.cover, + // final job = Provider.of(context, listen: false); + return Row( + children: [ + GestureDetector( + // onTap: () { + // Navigator.of(context) + // .pushNamed(JobDetails.routeName, arguments: job.id); + // }, + child: Container( + width: 120, + margin: EdgeInsets.symmetric(horizontal: 5, vertical: 5), + child: Material( + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10)), + child: Column( + children: [ + Container( + height: 60, + child: ClipRRect( + borderRadius: new BorderRadius.only( + topLeft: Radius.circular(10), + topRight: Radius.circular(10)), + child: Image.asset( + 'assets/ketapang.png', + width: 120, + fit: BoxFit.cover, + ), ), ), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 4), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(job.employerName, - style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.bold, - height: 2)), - Text(job.title, - style: TextStyle( - fontSize: 10, - fontWeight: FontWeight.bold, - )), - Row( + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text('Salary: ', style: TextStyle(fontSize: 8)), - Text( - FlutterMoneyFormatter( - amount: job.salary, - settings: MoneyFormatterSettings( - symbol: 'Rp', - thousandSeparator: '.', - fractionDigits: 0)) - .output - .symbolOnLeft, - style: TextStyle(fontSize: 8)), + Text('Mekuru Ramen', + maxLines: 1, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + height: 2)), + Text('Assistant Chef', + maxLines: 1, + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.bold, + )), + Row( + children: [ + Text('Salary: ', style: TextStyle(fontSize: 8)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + maxLines: 1, + style: TextStyle(fontSize: 8)), + Text(' / M', style: TextStyle(fontSize: 8)), + ], + ), + Text('Tuesday - Sunday', + maxLines: 1, style: TextStyle(fontSize: 8)), + Text('08.00 - 21.30', + maxLines: 1, style: TextStyle(fontSize: 8)), ], ), - Text(job.workingday, style: TextStyle(fontSize: 8)), - Text(job.workinghour, style: TextStyle(fontSize: 8)), - ], - ), + ), + ], + ), + ), + ), + ), + GestureDetector( + // onTap: () { + // Navigator.of(context) + // .pushNamed(JobDetails.routeName, arguments: job.id); + // }, + child: Container( + width: 120, + margin: EdgeInsets.symmetric(horizontal: 5, vertical: 5), + child: Material( + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10)), + child: Column( + children: [ + Container( + height: 60, + child: ClipRRect( + borderRadius: new BorderRadius.only( + topLeft: Radius.circular(10), + topRight: Radius.circular(10)), + child: Image.asset( + 'assets/up2u.png', + width: 120, + fit: BoxFit.cover, + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Up2u', + maxLines: 1, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + height: 2)), + Text('Cleaning Service', + maxLines: 1, + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.bold, + )), + Row( + children: [ + Text('Salary: ', style: TextStyle(fontSize: 8)), + Text( + FlutterMoneyFormatter( + amount: 80000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + maxLines: 1, + style: TextStyle(fontSize: 8)), + Text(' / D', style: TextStyle(fontSize: 8)), + ], + ), + Text('Weekend', + maxLines: 1, style: TextStyle(fontSize: 8)), + Text('08.00 - 21.30', + maxLines: 1, style: TextStyle(fontSize: 8)), + ], + ), + ), + ], + ), + ), + ), + ), + GestureDetector( + // onTap: () { + // Navigator.of(context) + // .pushNamed(JobDetails.routeName, arguments: job.id); + // }, + child: Container( + width: 120, + margin: EdgeInsets.symmetric(horizontal: 5, vertical: 5), + child: Material( + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10)), + child: Column( + children: [ + Container( + height: 60, + child: ClipRRect( + borderRadius: new BorderRadius.only( + topLeft: Radius.circular(10), + topRight: Radius.circular(10)), + child: Image.asset( + 'assets/ketapang.png', + fit: BoxFit.cover, + width: 120, + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + maxLines: 1, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + height: 2)), + Text('Head Chef', + maxLines: 1, + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.bold, + )), + Row( + children: [ + Text('Salary: ', style: TextStyle(fontSize: 8)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + maxLines: 1, + style: TextStyle(fontSize: 8)), + Text(' / M', style: TextStyle(fontSize: 8)), + ], + ), + Text('Tuesday - Sunday', + maxLines: 1, style: TextStyle(fontSize: 8)), + Text('08.00 - 21.30', + maxLines: 1, style: TextStyle(fontSize: 8)), + ], + ), + ), + ], + ), + ), + ), + ), + GestureDetector( + // onTap: () { + // Navigator.of(context) + // .pushNamed(JobDetails.routeName, arguments: job.id); + // }, + child: Container( + width: 120, + margin: EdgeInsets.symmetric(horizontal: 5, vertical: 5), + child: Material( + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10)), + child: Column( + children: [ + Container( + height: 60, + child: ClipRRect( + borderRadius: new BorderRadius.only( + topLeft: Radius.circular(10), + topRight: Radius.circular(10)), + child: Image.asset( + 'assets/IT.png', + width: 120, + fit: BoxFit.cover, + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('PT.CCTV INDONESIA', + maxLines: 1, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + height: 2)), + Text('CCTV Installer', + maxLines: 1, + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.bold, + )), + Row( + children: [ + Text('Salary: ', style: TextStyle(fontSize: 8)), + Text( + FlutterMoneyFormatter( + amount: 20000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + maxLines: 1, + style: TextStyle(fontSize: 8)), + Text(' / H', style: TextStyle(fontSize: 8)), + ], + ), + Text('Freelance', + maxLines: 1, style: TextStyle(fontSize: 8)), + Text('08.00 - 21.30', + maxLines: 1, style: TextStyle(fontSize: 8)), + ], + ), + ), + ], ), - ], + ), ), ), - ), + ], ); } } diff --git a/lib/src/ui/components/horizontal_screen.dart b/lib/src/ui/components/horizontal_screen.dart index 59dcdb1..3918cde 100644 --- a/lib/src/ui/components/horizontal_screen.dart +++ b/lib/src/ui/components/horizontal_screen.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/jobs.dart'; import 'package:space/src/ui/components/horizontal_list.dart'; class RecommendedScreen extends StatefulWidget { @@ -30,8 +28,8 @@ class _RecommendedScreenState extends State { @override Widget build(BuildContext context) { - final jobData = Provider.of(context); - final jobs = jobData.posts; + // final jobData = Provider.of(context); + // final jobs = jobData.posts; return Scaffold( backgroundColor: Colors.transparent, body: _isLoading @@ -41,16 +39,7 @@ class _RecommendedScreenState extends State { : ListView.builder( padding: EdgeInsets.symmetric(horizontal: 5), scrollDirection: Axis.horizontal, - itemCount: jobs.length, - itemBuilder: (ctx, i) => ChangeNotifierProvider.value( - // builder: (c) => jobs[i], - value: jobs[i], - child: RecommendedJob( - // jobs[i].id, - // jobs[i].title, - // jobs[i].imageUrl, - ), - ), + itemBuilder: (ctx, i) => (RecommendedJob()), ), ); } diff --git a/lib/src/ui/components/recommended_job.dart b/lib/src/ui/components/near_job.dart similarity index 72% rename from lib/src/ui/components/recommended_job.dart rename to lib/src/ui/components/near_job.dart index d1c3466..5b108d2 100644 --- a/lib/src/ui/components/recommended_job.dart +++ b/lib/src/ui/components/near_job.dart @@ -1,27 +1,23 @@ import 'package:feather_icons_flutter/feather_icons_flutter.dart'; import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/job.dart'; -import 'package:space/src/ui/seeker/layout/job_details.dart'; - -class RecentJob extends StatelessWidget { +class NearJob extends StatelessWidget { @override Widget build(BuildContext context) { - final job = Provider.of(context, listen: false); + // final job = Provider.of(context, listen: false); return Container( padding: EdgeInsets.symmetric(horizontal: 10), child: Card( elevation: 3, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), child: ListTile( - onTap: () { - Navigator.of(context) - .pushNamed(JobDetails.routeName, arguments: job.id); - }, + // onTap: () { + // Navigator.of(context) + // .pushNamed(JobDetails.routeName, arguments: job.id); + // }, leading: SizedBox( height: 40, - child: Image.network(job.imageUrl, fit: BoxFit.cover), + child: Image.asset('assets/mekuru.png', fit: BoxFit.cover), ), title: Container( padding: EdgeInsets.only(bottom: 10), @@ -31,14 +27,15 @@ class RecentJob extends StatelessWidget { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(job.title, style: TextStyle(fontSize: 18, height: 2)), + Text(('Head Chef'), + style: TextStyle(fontSize: 18, height: 2)), Text('1w', style: TextStyle(fontSize: 10, color: Color(0xffc9c8c8))), ], ), Text( - 'job.employerName', + 'Mekuru Ramen', style: TextStyle( fontSize: 12, color: Color(0xff5f5f5f), height: 1), ), @@ -48,7 +45,7 @@ class RecentJob extends StatelessWidget { padding: EdgeInsets.only(top: 1), child: Icon(FeatherIcons.mapPin, size: 11, color: Color(0xff8997a7))), - Text(job.location, + Text('Pontianak, West Borneo', style: TextStyle( fontSize: 10, color: Color(0xff5f5f5f), diff --git a/lib/src/ui/components/recommended_screen.dart b/lib/src/ui/components/near_job_screen.dart similarity index 54% rename from lib/src/ui/components/recommended_screen.dart rename to lib/src/ui/components/near_job_screen.dart index e8bc986..93bb27c 100644 --- a/lib/src/ui/components/recommended_screen.dart +++ b/lib/src/ui/components/near_job_screen.dart @@ -1,15 +1,12 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; +import 'package:space/src/ui/components/near_job.dart'; -import 'package:space/src/core/models/jobs.dart'; -import 'package:space/src/ui/components/recommended_job.dart'; +class NearJobScreen extends StatefulWidget { -class RecentScreen extends StatefulWidget { - - _RecentScreenState createState() => _RecentScreenState(); + _NearJobScreenState createState() => _NearJobScreenState(); } -class _RecentScreenState extends State { +class _NearJobScreenState extends State { // var _isInit = true; var _isLoading = false; @@ -32,8 +29,8 @@ class _RecentScreenState extends State { @override Widget build(BuildContext context) { - final jobData = Provider.of(context); - final jobs = jobData.posts; + // final jobData = Provider.of(context); + // final jobs = jobData.posts; return Scaffold( backgroundColor: Colors.transparent, body: _isLoading @@ -43,15 +40,9 @@ class _RecentScreenState extends State { : ListView.builder( controller: ScrollController(initialScrollOffset: 0), itemCount: 2, - itemBuilder: (ctx, i) => ChangeNotifierProvider.value( - // builder: (c) => jobs[i], - value: jobs[i], - child: RecentJob( - // jobs[i].id, - // jobs[i].title, - // jobs[i].imageUrl, - ), - ), + itemBuilder: (ctx, i) => ( + NearJob() + ), ), ); diff --git a/lib/src/ui/components/notification.dart b/lib/src/ui/components/notification.dart index b46b940..f7e9db6 100644 --- a/lib/src/ui/components/notification.dart +++ b/lib/src/ui/components/notification.dart @@ -2,8 +2,6 @@ import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; -import 'package:space/src/ui/employer/layout/employer_app_bar.dart'; -import 'package:space/src/ui/employer/layout/employer_edit_post.dart'; class NotificationUi extends StatelessWidget { @override diff --git a/lib/src/ui/components/otp_employer.dart b/lib/src/ui/components/otp_employer.dart index a4d2792..95a6c40 100644 --- a/lib/src/ui/components/otp_employer.dart +++ b/lib/src/ui/components/otp_employer.dart @@ -1,6 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:space/src/ui/auth/employer/intro_employer.dart'; -import 'package:space/src/ui/auth/seeker/intro_seeker.dart'; import 'package:space/src/ui/components/verify_otp_employer.dart'; class OTPEmployer extends StatelessWidget { diff --git a/lib/src/ui/components/otp_seeker.dart b/lib/src/ui/components/otp_seeker.dart index 92fcd22..83af66d 100644 --- a/lib/src/ui/components/otp_seeker.dart +++ b/lib/src/ui/components/otp_seeker.dart @@ -1,6 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:space/src/ui/auth/employer/intro_employer.dart'; -import 'package:space/src/ui/auth/seeker/intro_seeker.dart'; import 'package:space/src/ui/components/verify_otp_seeker.dart'; class OTPSeeker extends StatelessWidget { @@ -18,7 +16,7 @@ class OTPSeeker extends StatelessWidget { alignment: Alignment(0, 1), children: [ Container( - margin: EdgeInsets.symmetric(horizontal: 130,vertical: 75), + margin: EdgeInsets.symmetric(horizontal: 130, vertical: 75), height: 30, decoration: BoxDecoration( color: Color.fromARGB(255, 255, 248, 205), @@ -169,12 +167,11 @@ class OTPSeeker extends StatelessWidget { ), Text('Enter your mobile number', style: TextStyle( - color: Colors.redAccent, fontSize: 18, height: 9)), + color: Colors.redAccent, fontSize: 18, height: 6)), Text('You will get a OTP message', style: TextStyle( color: Colors.white, fontSize: 14, height: 0.3)), Container( - margin: EdgeInsets.symmetric(vertical: 20), padding: const EdgeInsets.symmetric(horizontal: 60), child: TextFormField( decoration: InputDecoration( diff --git a/lib/src/ui/components/verify_otp_seeker.dart b/lib/src/ui/components/verify_otp_seeker.dart index ce7b3f9..7c30419 100644 --- a/lib/src/ui/components/verify_otp_seeker.dart +++ b/lib/src/ui/components/verify_otp_seeker.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:space/src/ui/auth/employer/intro_employer.dart'; import 'package:space/src/ui/auth/seeker/intro_seeker.dart'; class VerifySeeker extends StatelessWidget { diff --git a/lib/src/ui/employer/layout/applicants_list.dart b/lib/src/ui/employer/layout/applicants_list.dart new file mode 100644 index 0000000..5ec1fa6 --- /dev/null +++ b/lib/src/ui/employer/layout/applicants_list.dart @@ -0,0 +1,106 @@ + +import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:flutter/material.dart'; +import 'package:space/src/ui/seeker/layout/seeker_profile_view.dart'; + +class ApplicantsList extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(0), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Color(0xff0c0c0c0), + blurRadius: 1.5, + offset: Offset(1.0, 1.0)) + ], + ), + child: Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => SeekerProfileView()), + ); + }, + leading: Column( + children: [ + CircleAvatar( + backgroundImage: AssetImage('assets/img_profile-2.png'), + backgroundColor: Colors.blue, + radius: 28, + ), + ], + ), + title: Container( + height: 60, + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('James Cahyadi', + style: TextStyle(fontSize: 12, color: Color(0xff3b3b3b))), + Text('Male, 30 years old', + style: TextStyle(fontSize: 12, color: Color(0xff3b3b3b))), + Text('Education: High School', + style: TextStyle(fontSize: 12, color: Color(0xff3b3b3b))), + ], + ), + ), + subtitle: Container( + height: 30, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan(children: [ + TextSpan( + text: "Exp: ", + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff8997a7), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + TextSpan( + text: '2 years as Barista', + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff3b3b3b), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + ])), + Row( + children: [ + Icon(FeatherIcons.mapPin, + size: 10, color: Color(0xff8997a7)), + Text(' Pontianak, West Borneo', + style: + TextStyle(fontSize: 12, color: Color(0xff8997a7))) + ], + ), + ], + ), + ), + trailing: RaisedButton.icon( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30.0)), + color: Color(0xff22c0e8), + onPressed: () {}, + icon: Icon(FeatherIcons.messageCircle, color: Colors.white), + label: Text('Chat', + style: TextStyle(color: Colors.white, fontSize: 14))), + ), + ], + ), + ); + } +} diff --git a/lib/src/ui/employer/layout/employer_app_bar.dart b/lib/src/ui/employer/layout/employer_app_bar.dart index 2f9d6de..f19cf6c 100644 --- a/lib/src/ui/employer/layout/employer_app_bar.dart +++ b/lib/src/ui/employer/layout/employer_app_bar.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:space/src/ui/employer/layout/employer_edit_post.dart'; class EmployerAppBar extends StatelessWidget { @@ -23,13 +24,31 @@ class EmployerAppBar extends StatelessWidget { height: 60, ), actions: [ - IconButton( - icon: Icon(Icons.add), - onPressed: () { + GestureDetector( + onTap: () { Navigator.of(context).pushNamed( EditPost.routeName, ); }, + child: Padding( + padding: const EdgeInsets.only(right: 10), + child: Row( + children: [ + Icon( + MdiIcons.plusBoxMultipleOutline, + size: 22, + color: Colors.grey[800], + ), + Text( + 'Job', + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + color: Colors.grey[800]), + ) + ], + ), + ), ), ], bottom: TabBar( diff --git a/lib/src/ui/employer/layout/employer_edit_post.dart b/lib/src/ui/employer/layout/employer_edit_post.dart index 087e510..202e031 100644 --- a/lib/src/ui/employer/layout/employer_edit_post.dart +++ b/lib/src/ui/employer/layout/employer_edit_post.dart @@ -1,7 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/job.dart'; -import 'package:space/src/core/models/jobs.dart'; class EditPost extends StatefulWidget { static const routeName = '/edit-post'; @@ -18,21 +15,21 @@ class _EditPostState extends State { final _skillFocusNode = FocusNode(); final _salaryFocusNode = FocusNode(); final _form = GlobalKey(); - var _editJob = Job( - id: null, - title: '', - salary: 0, - description: '', - type: '', - workingday: '', - workinghour: '', - skill: '', - education: '', - industry: '', - location: '', - typeSalary: '', - gender: '', - ); + // var _editJob = Job( + // id: null, + // title: '', + // salary: 0, + // description: '', + // type: '', + // workingday: '', + // workinghour: '', + // skill: '', + // education: '', + // industry: '', + // location: '', + // typeSalary: '', + // gender: '', + // ); var _initValues = { 'title': '', 'salary': '', @@ -225,23 +222,23 @@ class _EditPostState extends State { } return null; }, - onSaved: (value) { - _editJob = Job( - title: value, - salary: _editJob.salary, - description: _editJob.description, - gender: _editJob.gender, - industry: _editJob.industry, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - education: _editJob.education, - skill: _editJob.skill, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - id: _editJob.id, - isSave: _editJob.isSave); - }, + // onSaved: (value) { + // _editJob = Job( + // title: value, + // salary: _editJob.salary, + // description: _editJob.description, + // gender: _editJob.gender, + // industry: _editJob.industry, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // education: _editJob.education, + // skill: _editJob.skill, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // id: _editJob.id, + // isSave: _editJob.isSave); + // }, ), ), Padding( @@ -286,23 +283,23 @@ class _EditPostState extends State { } return null; }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - salary: _editJob.salary, - description: _editJob.description, - gender: _editJob.gender, - industry: _editJob.industry, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - education: _editJob.education, - skill: _editJob.skill, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: value, - id: _editJob.id, - isSave: _editJob.isSave); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // salary: _editJob.salary, + // description: _editJob.description, + // gender: _editJob.gender, + // industry: _editJob.industry, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // education: _editJob.education, + // skill: _editJob.skill, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: value, + // id: _editJob.id, + // isSave: _editJob.isSave); + // }, ), ), Padding( @@ -347,23 +344,23 @@ class _EditPostState extends State { } return null; }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - salary: _editJob.salary, - description: value, - gender: _editJob.gender, - industry: _editJob.industry, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - education: _editJob.education, - skill: _editJob.skill, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - id: _editJob.id, - isSave: _editJob.isSave); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // salary: _editJob.salary, + // description: value, + // gender: _editJob.gender, + // industry: _editJob.industry, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // education: _editJob.education, + // skill: _editJob.skill, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // id: _editJob.id, + // isSave: _editJob.isSave); + // }, ), ), Padding( @@ -371,24 +368,24 @@ class _EditPostState extends State { EdgeInsets.symmetric(horizontal: 40, vertical: 8), child: FormField( initialValue: _initValues['gender'], - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - id: _editJob.id, - isSave: _editJob.isSave, - salary: _editJob.salary, - gender: value, - typeSalary: _editJob.typeSalary, - type: _editJob.type, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - industry: _editJob.industry, - education: _editJob.education, - skill: _editJob.skill, - description: _editJob.description, - ); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // id: _editJob.id, + // isSave: _editJob.isSave, + // salary: _editJob.salary, + // gender: value, + // typeSalary: _editJob.typeSalary, + // type: _editJob.type, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // industry: _editJob.industry, + // education: _editJob.education, + // skill: _editJob.skill, + // description: _editJob.description, + // ); + // }, builder: (FormFieldState state) { return InputDecorator( decoration: InputDecoration( @@ -429,24 +426,24 @@ class _EditPostState extends State { gender = newValue; }); }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - id: _editJob.id, - isSave: _editJob.isSave, - salary: _editJob.salary, - gender: value, - typeSalary: _editJob.typeSalary, - type: _editJob.type, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - industry: _editJob.industry, - education: _editJob.education, - skill: _editJob.skill, - description: _editJob.description, - ); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // id: _editJob.id, + // isSave: _editJob.isSave, + // salary: _editJob.salary, + // gender: value, + // typeSalary: _editJob.typeSalary, + // type: _editJob.type, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // industry: _editJob.industry, + // education: _editJob.education, + // skill: _editJob.skill, + // description: _editJob.description, + // ); + // }, items: [ 'Male', 'Female' @@ -518,24 +515,24 @@ class _EditPostState extends State { industry = newValue; }); }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - id: _editJob.id, - isSave: _editJob.isSave, - salary: _editJob.salary, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - gender: _editJob.gender, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - industry: value, - education: _editJob.education, - skill: _editJob.skill, - description: _editJob.description, - ); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // id: _editJob.id, + // isSave: _editJob.isSave, + // salary: _editJob.salary, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // gender: _editJob.gender, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // industry: value, + // education: _editJob.education, + // skill: _editJob.skill, + // description: _editJob.description, + // ); + // }, items: [ 'Resturants', 'Hotels' @@ -608,23 +605,23 @@ class _EditPostState extends State { type = newValue; }); }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - id: _editJob.id, - isSave: _editJob.isSave, - salary: _editJob.salary, - type: value, - typeSalary: _editJob.typeSalary, - gender: _editJob.gender, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - industry: _editJob.industry, - education: _editJob.education, - skill: _editJob.skill, - description: _editJob.description); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // id: _editJob.id, + // isSave: _editJob.isSave, + // salary: _editJob.salary, + // type: value, + // typeSalary: _editJob.typeSalary, + // gender: _editJob.gender, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // industry: _editJob.industry, + // education: _editJob.education, + // skill: _editJob.skill, + // description: _editJob.description); + // }, items: [ 'Full Time', 'Part Time', @@ -700,23 +697,23 @@ class _EditPostState extends State { typeSalary = newValue; }); }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - id: _editJob.id, - isSave: _editJob.isSave, - salary: _editJob.salary, - type: _editJob.type, - typeSalary: value, - gender: _editJob.gender, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - industry: _editJob.industry, - education: _editJob.education, - skill: _editJob.skill, - description: _editJob.description); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // id: _editJob.id, + // isSave: _editJob.isSave, + // salary: _editJob.salary, + // type: _editJob.type, + // typeSalary: value, + // gender: _editJob.gender, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // industry: _editJob.industry, + // education: _editJob.education, + // skill: _editJob.skill, + // description: _editJob.description); + // }, items: [ 'Per Hour', 'Per Day', @@ -791,24 +788,24 @@ class _EditPostState extends State { education = newValue; }); }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - id: _editJob.id, - isSave: _editJob.isSave, - salary: _editJob.salary, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - gender: _editJob.gender, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - industry: _editJob.industry, - education: value, - skill: _editJob.skill, - description: _editJob.description, - ); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // id: _editJob.id, + // isSave: _editJob.isSave, + // salary: _editJob.salary, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // gender: _editJob.gender, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // industry: _editJob.industry, + // education: value, + // skill: _editJob.skill, + // description: _editJob.description, + // ); + // }, items: [ 'SD', 'SMP', @@ -881,23 +878,23 @@ class _EditPostState extends State { } return null; }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - salary: _editJob.salary, - description: _editJob.description, - gender: _editJob.gender, - industry: _editJob.industry, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - education: _editJob.education, - skill: _editJob.skill, - workinghour: _editJob.workinghour, - workingday: value, - location: _editJob.location, - id: _editJob.id, - isSave: _editJob.isSave); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // salary: _editJob.salary, + // description: _editJob.description, + // gender: _editJob.gender, + // industry: _editJob.industry, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // education: _editJob.education, + // skill: _editJob.skill, + // workinghour: _editJob.workinghour, + // workingday: value, + // location: _editJob.location, + // id: _editJob.id, + // isSave: _editJob.isSave); + // }, ), ), Padding( @@ -941,23 +938,23 @@ class _EditPostState extends State { } return null; }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - salary: _editJob.salary, - description: _editJob.description, - gender: _editJob.gender, - industry: _editJob.industry, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - education: _editJob.education, - skill: _editJob.skill, - workinghour: value, - workingday: _editJob.workingday, - location: _editJob.location, - id: _editJob.id, - isSave: _editJob.isSave); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // salary: _editJob.salary, + // description: _editJob.description, + // gender: _editJob.gender, + // industry: _editJob.industry, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // education: _editJob.education, + // skill: _editJob.skill, + // workinghour: value, + // workingday: _editJob.workingday, + // location: _editJob.location, + // id: _editJob.id, + // isSave: _editJob.isSave); + // }, ), ), Padding( @@ -1001,23 +998,23 @@ class _EditPostState extends State { } return null; }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - salary: _editJob.salary, - description: _editJob.description, - gender: _editJob.gender, - industry: _editJob.industry, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - education: _editJob.education, - skill: value, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - id: _editJob.id, - isSave: _editJob.isSave); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // salary: _editJob.salary, + // description: _editJob.description, + // gender: _editJob.gender, + // industry: _editJob.industry, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // education: _editJob.education, + // skill: value, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // id: _editJob.id, + // isSave: _editJob.isSave); + // }, ), ), Padding( @@ -1069,23 +1066,23 @@ class _EditPostState extends State { } return null; }, - onSaved: (value) { - _editJob = Job( - title: _editJob.title, - salary: double.parse(value), - description: _editJob.description, - gender: _editJob.gender, - industry: _editJob.industry, - type: _editJob.type, - typeSalary: _editJob.typeSalary, - education: _editJob.education, - skill: _editJob.skill, - workinghour: _editJob.workinghour, - workingday: _editJob.workingday, - location: _editJob.location, - id: _editJob.id, - isSave: _editJob.isSave); - }, + // onSaved: (value) { + // _editJob = Job( + // title: _editJob.title, + // salary: double.parse(value), + // description: _editJob.description, + // gender: _editJob.gender, + // industry: _editJob.industry, + // type: _editJob.type, + // typeSalary: _editJob.typeSalary, + // education: _editJob.education, + // skill: _editJob.skill, + // workinghour: _editJob.workinghour, + // workingday: _editJob.workingday, + // location: _editJob.location, + // id: _editJob.id, + // isSave: _editJob.isSave); + // }, ), ), Padding( diff --git a/lib/src/ui/employer/layout/employer_post.dart b/lib/src/ui/employer/layout/employer_post.dart index 498ed8a..b82dc0f 100644 --- a/lib/src/ui/employer/layout/employer_post.dart +++ b/lib/src/ui/employer/layout/employer_post.dart @@ -1,25 +1,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_money_formatter/flutter_money_formatter.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/ui/employer/layout/employer_edit_post.dart'; -import 'package:space/src/core/models/jobs.dart'; -import 'package:space/src/ui/seeker/layout/job_details.dart'; class EmployerPost extends StatelessWidget { - final String id; - final double salary; - final String title; - final String type; - final String location; + // final String id; + // final double salary; + // final String title; + // final String type; + // final String location; - EmployerPost( - this.id, - this.salary, - this.title, - this.type, - this.location, - ); + // EmployerPost( + // this.id, + // this.salary, + // this.title, + // this.type, + // this.location, + // ); @override Widget build(BuildContext context) { @@ -34,7 +30,7 @@ class EmployerPost extends StatelessWidget { children: [ Row( children: [ - Text(title, + Text('Mekuru Ramen', style: TextStyle( fontFamily: 'VarelaRound', fontSize: 12, @@ -47,7 +43,7 @@ class EmployerPost extends StatelessWidget { color: Color(0xff65be3e), child: Container( padding: EdgeInsets.symmetric(horizontal: 4), - child: Text(type, + child: Text('Full Time', style: TextStyle( color: Colors.white, fontSize: 9)), ), @@ -67,7 +63,7 @@ class EmployerPost extends StatelessWidget { children: [ Icon(Icons.location_on, size: 10, color: Color(0xff8997a7)), - Text(location, + Text('Pontianak, West Borneo', style: TextStyle( fontSize: 10, color: Color(0xff8997a7))), ], @@ -79,7 +75,7 @@ class EmployerPost extends StatelessWidget { fontSize: 10, color: Color(0xff8997a7))), Text( FlutterMoneyFormatter( - amount: salary, + amount: 5000000, settings: MoneyFormatterSettings( symbol: 'Rp', thousandSeparator: '.', @@ -93,10 +89,11 @@ class EmployerPost extends StatelessWidget { ], ), ), - onTap: () { - Navigator.of(context) - .pushNamed(JobDetails.routeName, arguments: id); - }), + // onTap: () { + // Navigator.of(context) + // .pushNamed(JobDetails.routeName, arguments: id); + // } + ), Padding( padding: EdgeInsets.only(right: 15, top: 10), child: Row( diff --git a/lib/src/ui/employer/layout/employer_profile_setting.dart b/lib/src/ui/employer/layout/employer_profile_setting.dart index 12b02af..7f5b8fb 100644 --- a/lib/src/ui/employer/layout/employer_profile_setting.dart +++ b/lib/src/ui/employer/layout/employer_profile_setting.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; class EmployerProfileSetting extends StatefulWidget { @override @@ -8,129 +9,459 @@ class EmployerProfileSetting extends StatefulWidget { class _EmployerProfileSettingState extends State with SingleTickerProviderStateMixin { - int _selectedIndex = 0; - - void _onItemTapped(int index) { - setState(() { - _selectedIndex = index; - }); - } - TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0); @override Widget build(BuildContext context) { - return Container( - child: Scaffold( - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context, true); - }, - icon: Icon(FeatherIcons.chevronLeft, - color: Color(0xff2c4057), size: 16)), - elevation: 0, - backgroundColor: Colors.transparent, - title: Text('Employers Profile', - style: style.copyWith( - color: Colors.white, - fontSize: 14, - fontWeight: FontWeight.w500, - letterSpacing: 1, - )), - ), - body: Container( - margin: EdgeInsets.only(top: 20), - width: MediaQuery.of(context).size.width, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: new BorderRadius.only( - topLeft: const Radius.circular(30.0), - topRight: const Radius.circular(30.0), + return Material( + color: Colors.grey[100], + child: Stack( + children: [ + Container( + height: 200, + width: MediaQuery.of(context).size.width, + child: Image.asset( + 'assets/ketapang.png', + fit: BoxFit.fitWidth, ), ), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceAround, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - ListTile( - onTap: () {}, - leading: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text('Full Name', - style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - Text('Nakamura Chan', - style: style.copyWith( - color: Color(0xff757575), fontSize: 12)), - Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), - ], - )), - ], - ), - ), - bottomNavigationBar: BottomNavigationBar( - unselectedItemColor: Color(0xffdcdcdc), - showUnselectedLabels: true, - items: const [ - BottomNavigationBarItem( - icon: Icon(FeatherIcons.home, size: 30), - title: Text('HOME', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), + Scaffold( + backgroundColor: Colors.black12, + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon(FeatherIcons.chevronLeft, + color: Colors.white, size: 16)), + elevation: 0, + backgroundColor: Colors.black26, ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.briefcase, size: 30), - title: Text('JOBS', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), - ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.search, size: 30), - title: Text('SEARCH', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), - ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.messageSquare, size: 30), - title: Text('INBOX', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), - ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.user, size: 30), - title: Text('PROFILE', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), + body: Container( + child: Stack( + children: [ + Column( + children: [ + Container( + padding: EdgeInsetsDirectional.only(bottom: 10), + alignment: Alignment.topCenter, + child: CircleAvatar( + radius: 30, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 28, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + Container( + padding: EdgeInsets.only(bottom: 10), + child: Column( + children: [ + Text('Mekuru Ramen', + style: style.copyWith( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.white)), + Text('The Best Ramen in Town', + style: style.copyWith( + fontSize: 12, + color: Colors.white, + height: 2)) + ], + ), + ), + Container( + child: Column( + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + mainAxisSize: MainAxisSize.max, + children: [ + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#restaurant', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#ramen', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#chef', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#japanese', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + ], + )), + ], + ), + ), + ], + ), + Container( + margin: EdgeInsets.only(top: 155), + padding: EdgeInsets.only(top: 10, left: 5, right: 5), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(40.0), + topRight: const Radius.circular(40.0))), + child: ListView( + children: [ + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Company Name', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + 'Mekuru Ramen', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Tagline', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Padding( + padding: const EdgeInsets.only(left: 60.0), + child: Text( + 'The Best Ramen in Town', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Address', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Padding( + padding: const EdgeInsets.only(left: 54.0), + child: Text( + 'Jl. Jendral Urip no.3, Pontianak Kalimantan Barat', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Industry', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 54), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + 'Food & Beverages', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Establish', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 49), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + '26 December 2009', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Description', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 33), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + 'A japanese restaurant with...', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Recent Jobs', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 29), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + '22 Jobs posted previously', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + ], + ), + ), + ], + ), ), - ], - currentIndex: _selectedIndex, - selectedItemColor: Color(0xff4d4d4d), - onTap: _onItemTapped, - ), + ), + ], ), ); } diff --git a/lib/src/ui/employer/layout/employer_profile_view.dart b/lib/src/ui/employer/layout/employer_profile_view.dart index 05f0bf2..61816ec 100644 --- a/lib/src/ui/employer/layout/employer_profile_view.dart +++ b/lib/src/ui/employer/layout/employer_profile_view.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; class EmployerProfileView extends StatefulWidget { @override @@ -8,234 +9,460 @@ class EmployerProfileView extends StatefulWidget { class _EmployerProfileViewState extends State with SingleTickerProviderStateMixin { - int _selectedIndex = 0; - - void _onItemTapped(int index) { - setState(() { - _selectedIndex = index; - }); - } - TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0); @override Widget build(BuildContext context) { - return new Container( - child: new Stack( - children: [ - new Container( - child: new Image.asset('assets/ketapang.png', fit: BoxFit.cover), - ), - new Scaffold( - backgroundColor: Colors.transparent, - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context, true); - }, - icon: Icon(FeatherIcons.chevronLeft, - color: Color(0xff2c4057), size: 16)), - elevation: 1, - backgroundColor: Colors.transparent, - title: Text('Back', - style: style.copyWith( - color: Colors.white, - fontSize: 14, - fontWeight: FontWeight.w500, - letterSpacing: 1, - )), + return Material( + color: Colors.grey[100], + child: Stack( + children: [ + Container( + height: 200, + width: MediaQuery.of(context).size.width, + child: Image.asset( + 'assets/ketapang.png', + fit: BoxFit.fitWidth, + ), ), - body: LayoutBuilder(builder: - (BuildContext context, BoxConstraints viewportConstraints) { - return Column( - children: [ - Stack( - children: [ - Container( - height: 120, - margin: EdgeInsets.only(top: 120), - padding: EdgeInsets.only(top: 20, left: 30, right: 30), - decoration: BoxDecoration( - color: Color(0xff4d4d4d), - borderRadius: new BorderRadius.only( - topLeft: const Radius.circular(40.0), - topRight: const Radius.circular(40.0))), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceBetween, + Scaffold( + backgroundColor: Colors.black12, + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon(FeatherIcons.chevronLeft, + color: Colors.white, size: 16)), + elevation: 0, + backgroundColor: Colors.black26, + ), + body: Container( + child: Stack( + children: [ + Column( + children: [ + Container( + padding: EdgeInsetsDirectional.only(bottom: 10), + alignment: Alignment.topCenter, + child: CircleAvatar( + radius: 30, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 28, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + Container( + padding: EdgeInsets.only(bottom: 10), + child: Column( children: [ - Column( - children: [ - Text('Followers', - style: style.copyWith( - fontSize: 14, color: Colors.white)), - Text('31401', - style: style.copyWith(color: Colors.white)), - ], - ), - RaisedButton( - onPressed: () {}, - color: Color(0xff22c0e8), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(30)), - child: Text('Follow', - style: style.copyWith( - color: Colors.white, fontSize: 15))), + Text('Mekuru Ramen', + style: style.copyWith( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.white)), + Text('The Best Ramen in Town', + style: style.copyWith( + fontSize: 12, + color: Colors.white, + height: 2)) ], - )), - Container( - alignment: AlignmentDirectional.center, - margin: EdgeInsets.only(top: 90), - child: CircleAvatar( - backgroundColor: Colors.white, - radius: 45.0, - child: Image.asset('assets/mekuru_2.png'), + ), ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + Container( + child: Column( + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + mainAxisSize: MainAxisSize.max, + children: [ + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#restaurant', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#ramen', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#chef', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#japanese', + style: + style.copyWith(fontSize: 12, color: Color(0xff898989))), + onPressed: () {}, + )), + ], + )), + ], + ), + ), + ], + ), + Container( + margin: EdgeInsets.only(top: 155), + padding: EdgeInsets.only(top: 10, left: 5, right: 5), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(40.0), + topRight: const Radius.circular(40.0))), + child: ListView( children: [ - //Overflow!! Container( - height: 330, - width: MediaQuery.of(context).size.width, - margin: EdgeInsets.only(top: 200), - padding: - EdgeInsets.only(top: 20, left: 15, right: 15), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: new BorderRadius.only( - topLeft: const Radius.circular(40.0), - topRight: const Radius.circular(40.0))), - child: Column( - children: [ - Text('Mekuru Ramen', - style: style.copyWith( - fontSize: 18, - color: Color(0xff222222), - fontWeight: FontWeight.bold)), - Text('The Best Ramen in Town', - style: style.copyWith( - fontSize: 11, - color: Color(0xff1c1c1c), - fontWeight: FontWeight.bold)), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon(FeatherIcons.mapPin, - size: 12, color: Color(0xff8997a7)), - Text(' Pontianak, West Borneo', - style: style.copyWith( - fontSize: 12, - color: Color(0xff8997a7))), - ], + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Company Name', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + 'Mekuru Ramen', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Tagline', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Padding( + padding: const EdgeInsets.only(left: 60.0), + child: Text( + 'The Best Ramen in Town', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Address', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Padding( + padding: const EdgeInsets.only(left: 54.0), + child: Text( + 'Jl. Jendral Urip no.3, Pontianak Kalimantan Barat', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Industry', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 54), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + 'Food & Beverages', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Establish', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 49), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + '26 December 2009', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Description', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 33), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + 'A japanese restaurant with...', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), ), - SizedBox( - height: 30, + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, ), - Column( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.max, - children: [ - Text('Company Description', - style: style.copyWith( - fontSize: 14, - color: Color(0xff3b3b3b))), - Text( - 'We have a number of different teams within our agency that specialise in different areas of business so you can be sure that you won’t receive a generic service and although we can’t boast years and years of service we can ensure you that is a good thing in this industry. Our teams are up to date with the latest technologies, media trends and are keen to prove themselves in this industry and that’s what you want from an advertising agency.', - style: style.copyWith( - fontSize: 11, - color: Color(0xff8997a7), - height: 2), - ), - Center( - child: RaisedButton( - onPressed: () {}, - color: Color(0xff8997a7), - shape: RoundedRectangleBorder( - borderRadius: - BorderRadius.circular(30)), - child: Text('Apply for a job', - style: style.copyWith( - color: Colors.white, - fontSize: 15))), - ), - ], - ) - ], + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, + ), + ), + Container( + height: 35, + child: ListTile( + onTap: (){}, + leading: Text( + 'Recent Jobs', + style: TextStyle( + fontSize: 14, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + title: Padding( + padding: EdgeInsets.only(left: 29), + child: Padding( + padding: EdgeInsets.only(bottom: 6), + child: Text( + '22 Jobs posted previously', + maxLines: 2, + style: TextStyle( + fontSize: 12, + color: Color(0xff757575), + fontFamily: 'VarelaRound'), + ), + ), + ), + trailing: Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Icon( + MdiIcons.chevronRight, + color: Color(0xff757575), + size: 18, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 15), + child: Divider( + height: 0, + endIndent: 20, + indent: 18, ), ), ], ), - ], - ), - ], - ); - }), - bottomNavigationBar: BottomNavigationBar( - unselectedItemColor: Color(0xffdcdcdc), - showUnselectedLabels: true, - items: const [ - BottomNavigationBarItem( - icon: Icon(FeatherIcons.home, size: 30), - title: Text('HOME', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), - ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.briefcase, size: 30), - title: Text('JOBS', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), - ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.search, size: 30), - title: Text('SEARCH', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), - ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.messageSquare, size: 30), - title: Text('INBOX', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), - ), - BottomNavigationBarItem( - icon: Icon(FeatherIcons.user, size: 30), - title: Text('PROFILE', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 10, - fontWeight: FontWeight.w400, - fontStyle: FontStyle.normal)), + ), + ], ), - ], - currentIndex: _selectedIndex, - selectedItemColor: Color(0xff4d4d4d), - onTap: _onItemTapped, + ), ), - ), - ], - )); + ], + ), + ); } } diff --git a/lib/src/ui/employer/layout/interviewed_list.dart b/lib/src/ui/employer/layout/interviewed_list.dart new file mode 100644 index 0000000..bd6bd95 --- /dev/null +++ b/lib/src/ui/employer/layout/interviewed_list.dart @@ -0,0 +1,409 @@ +import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:flutter/material.dart'; +import 'package:space/src/ui/seeker/layout/seeker_profile_view.dart'; + +class InterviewedList extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Column( + children: [ + Container( + padding: EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(0), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Color(0xff0c0c0c0), + blurRadius: 1.5, + offset: Offset(1.0, 1.0)) + ], + ), + child: Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SeekerProfileView()), + ); + }, + leading: Column( + children: [ + CircleAvatar( + backgroundImage: AssetImage('assets/img_profile-2.png'), + backgroundColor: Colors.blue, + radius: 28, + ), + ], + ), + title: Container( + height: 60, + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('James Cahyadi', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Male, 30 years old', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Education: High School', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + ], + ), + ), + subtitle: Container( + height: 30, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan(children: [ + TextSpan( + text: "Exp: ", + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff8997a7), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + TextSpan( + text: '2 years as Barista', + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff3b3b3b), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + ])), + Row( + children: [ + Icon(FeatherIcons.mapPin, + size: 10, color: Color(0xff8997a7)), + Text(' Pontianak, West Borneo', + style: TextStyle( + fontSize: 12, color: Color(0xff8997a7))) + ], + ), + ], + ), + ), + trailing: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30.0)), + color: Color(0xff65be3e), + onPressed: () {}, + child: Text('Hired', + style: TextStyle(color: Colors.white, fontSize: 14))), + ), + ], + ), + ), + Container( + padding: EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(0), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Color(0xff0c0c0c0), + blurRadius: 1.5, + offset: Offset(1.0, 1.0)) + ], + ), + child: Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SeekerProfileView()), + ); + }, + leading: Column( + children: [ + CircleAvatar( + backgroundImage: AssetImage('assets/img_profile-2.png'), + backgroundColor: Colors.blue, + radius: 28, + ), + ], + ), + title: Container( + height: 60, + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Roni Soebedjo', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Male, 28 years old', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Education: High School', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + ], + ), + ), + subtitle: Container( + height: 30, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan(children: [ + TextSpan( + text: "Exp: ", + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff8997a7), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + TextSpan( + text: '2 years as Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff3b3b3b), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + ])), + Row( + children: [ + Icon(FeatherIcons.mapPin, + size: 10, color: Color(0xff8997a7)), + Text(' Pontianak, West Borneo', + style: TextStyle( + fontSize: 12, color: Color(0xff8997a7))) + ], + ), + ], + ), + ), + trailing: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30.0)), + color: Color(0xff8997a7), + onPressed: () {}, + child: Text('Hold', + style: TextStyle(color: Colors.white, fontSize: 14))), + ), + ], + ), + ), + Container( + padding: EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(0), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Color(0xff0c0c0c0), + blurRadius: 1.5, + offset: Offset(1.0, 1.0)) + ], + ), + child: Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SeekerProfileView()), + ); + }, + leading: Column( + children: [ + CircleAvatar( + backgroundImage: AssetImage('assets/img_profile-2.png'), + backgroundColor: Colors.blue, + radius: 28, + ), + ], + ), + title: Container( + height: 60, + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Icha Yuni', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Female, 27 years old', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Education: High School', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + ], + ), + ), + subtitle: Container( + height: 30, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan(children: [ + TextSpan( + text: "Exp: ", + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff8997a7), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + TextSpan( + text: '5 years as Waitress', + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff3b3b3b), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + ])), + Row( + children: [ + Icon(FeatherIcons.mapPin, + size: 10, color: Color(0xff8997a7)), + Text(' Pontianak, West Borneo', + style: TextStyle( + fontSize: 12, color: Color(0xff8997a7))) + ], + ), + ], + ), + ), + trailing: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30.0)), + color: Color(0xfffb4848), + onPressed: () {}, + child: Text('Rejected', + style: TextStyle(color: Colors.white, fontSize: 14))), + ), + ], + ), + ), + Container( + padding: EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(0), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Color(0xff0c0c0c0), + blurRadius: 1.5, + offset: Offset(1.0, 1.0)) + ], + ), + child: Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SeekerProfileView()), + ); + }, + leading: Column( + children: [ + CircleAvatar( + backgroundImage: AssetImage('assets/img_profile-2.png'), + backgroundColor: Colors.blue, + radius: 28, + ), + ], + ), + title: Container( + height: 60, + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('John Ru', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Male, 35 years old', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + Text('Education: S2', + style: TextStyle( + fontSize: 12, color: Color(0xff3b3b3b))), + ], + ), + ), + subtitle: Container( + height: 30, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RichText( + text: TextSpan(children: [ + TextSpan( + text: "Exp: ", + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff8997a7), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + TextSpan( + text: '10 years as Butcher', + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff3b3b3b), + fontSize: 12, + fontWeight: FontWeight.w400, + )), + ])), + Row( + children: [ + Icon(FeatherIcons.mapPin, + size: 10, color: Color(0xff8997a7)), + Text(' Pontianak, West Borneo', + style: TextStyle( + fontSize: 12, color: Color(0xff8997a7))) + ], + ), + ], + ), + ), + trailing: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30.0)), + color: Color(0xff65be3e), + onPressed: () {}, + child: Text('Hired', + style: TextStyle(color: Colors.white, fontSize: 14))), + ), + ], + ), + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/src/ui/employer/screens/applicants_screen.dart b/lib/src/ui/employer/screens/applicants_screen.dart new file mode 100644 index 0000000..b41b011 --- /dev/null +++ b/lib/src/ui/employer/screens/applicants_screen.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; + +import 'package:space/src/ui/employer/layout/applicants_list.dart'; + +class ApplicantsScreen extends StatefulWidget { + _ApplicantsScreenState createState() => _ApplicantsScreenState(); +} + +class _ApplicantsScreenState extends State { + var _isLoading = false; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.transparent, + body: _isLoading + ? Center( + child: CircularProgressIndicator(), + ) + : ListView.builder( + padding: EdgeInsets.only(top: 5), + itemBuilder: (ctx, i) => (Column( + children: [ + ApplicantsList(), + ], + )), + ), + ); + } +} diff --git a/lib/src/ui/employer/screens/employer_posted_screen.dart b/lib/src/ui/employer/screens/employer_posted_screen.dart index a5f29d6..61703c9 100644 --- a/lib/src/ui/employer/screens/employer_posted_screen.dart +++ b/lib/src/ui/employer/screens/employer_posted_screen.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/jobs.dart'; import 'package:space/src/ui/employer/layout/employer_post.dart'; class EmployerPostScreen extends StatelessWidget { @@ -9,7 +7,7 @@ class EmployerPostScreen extends StatelessWidget { Future _refreshJobs(BuildContext context) async { //await - Provider.of(context, listen: false);//.fetchAndSetJobs(true); + // Provider.of(context, listen: false);//.fetchAndSetJobs(true); } @override @@ -25,19 +23,22 @@ class EmployerPostScreen extends StatelessWidget { ) : RefreshIndicator( onRefresh: () => _refreshJobs(context), - child: Consumer( - builder: (ctx, jobsData, _) => ListView.builder( - itemCount: jobsData.posts.length, + child: + // Consumer( + // builder: (ctx, jobsData, _) => + ListView.builder( + padding: const EdgeInsets.all(0), + // itemCount: jobsData.posts.length, itemBuilder: (_, i) => EmployerPost( - jobsData.posts[i].id, - jobsData.posts[i].salary, - jobsData.posts[i].title, - jobsData.posts[i].type, - jobsData.posts[i].location, + // jobsData.posts[i].id, + // jobsData.posts[i].salary, + // jobsData.posts[i].title, + // jobsData.posts[i].type, + // jobsData.posts[i].location, ), ), ), - ), + // ), ); } } diff --git a/lib/src/ui/employer/screens/employer_seeker_screen.dart b/lib/src/ui/employer/screens/employer_seeker_screen.dart deleted file mode 100644 index b40379d..0000000 --- a/lib/src/ui/employer/screens/employer_seeker_screen.dart +++ /dev/null @@ -1,130 +0,0 @@ -import 'package:feather_icons_flutter/feather_icons_flutter.dart'; -import 'package:flutter/material.dart'; - -class EmployerSeekerList extends StatefulWidget { - _EmployerSeekerListState createState() => _EmployerSeekerListState(); -} - -final items = List.generate(20, (i) => "Item ${i + 1}"); - -class _EmployerSeekerListState extends State { - @override - @override - Widget build(BuildContext context) { - return ListView.builder( - itemCount: items.length, - itemBuilder: (context, index) { - final item = items[index]; - return Dismissible( - // Specify the direction to swipe and delete - direction: DismissDirection.endToStart, - key: Key(item), - onDismissed: (direction) { - // Removes that item the list on swipwe - setState(() { - items.removeAt(index); - }); - // Shows the information on Snackbar - Scaffold.of(context) - .showSnackBar(SnackBar(content: Text("$item dismissed"))); - }, - background: Container(color: Theme.of(context).errorColor), - child: Container( - padding: EdgeInsets.only(bottom: 10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(0), - color: Colors.white, - boxShadow: [ - BoxShadow( - color: Color(0xff0c0c0c0), - blurRadius: 1.5, - offset: Offset(1.0, 1.0)) - ], - ), - child: Stack( - alignment: Alignment(1.06, -2), - children: [ - ListTile( - leading: Column( - children: [ - CircleAvatar( - backgroundImage: AssetImage('assets/img_profil.png'), - backgroundColor: Colors.blue, - radius: 28, - ), - ], - ), - title: Container( - height: 60, - padding: (EdgeInsets.only(top: 5)), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('James Cahyadi', - style: TextStyle( - fontSize: 11, color: Color(0xff3b3b3b))), - Text('Male, 30 years old', - style: TextStyle( - fontSize: 11, color: Color(0xff3b3b3b))), - Text('Education: High School', - style: TextStyle( - fontSize: 11, color: Color(0xff3b3b3b))), - ], - ), - ), - subtitle: Container( - height: 30, - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - RichText( - text: TextSpan(children: [ - TextSpan( - text: "Exp: ", - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff8997a7), - fontSize: 11, - fontWeight: FontWeight.w400, - )), - TextSpan( - text: '2 years as Barista', - style: TextStyle( - fontFamily: 'VarelaRound', - color: Color(0xff3b3b3b), - fontSize: 11, - fontWeight: FontWeight.w400, - )), - ])), - Row( - children: [ - Icon(FeatherIcons.mapPin, - size: 10, color: Color(0xff8997a7)), - Text(' Pontianak, West Borneo', - style: TextStyle( - fontSize: 10, color: Color(0xff8997a7))) - ], - ), - ], - ), - ), - trailing: RaisedButton.icon( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(30.0)), - color: Color(0xff22c0e8), - onPressed: () {}, - icon: Icon(FeatherIcons.messageCircle, - color: Colors.white), - label: Text('Chat', - style: - TextStyle(color: Colors.white, fontSize: 14))), - ), - ], - ), - )); - }, - ); - } -} diff --git a/lib/src/ui/employer/screens/employer_tabs.dart b/lib/src/ui/employer/screens/employer_tabs.dart index 79459e3..25b2f2e 100644 --- a/lib/src/ui/employer/screens/employer_tabs.dart +++ b/lib/src/ui/employer/screens/employer_tabs.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:space/src/ui/employer/layout/employer_app_bar.dart'; +import 'package:space/src/ui/employer/screens/applicants_screen.dart'; +import 'package:space/src/ui/employer/screens/interviewed_screen.dart'; import 'package:space/src/ui/employer/widgets/employer_app_drawer.dart'; import 'package:space/src/ui/employer/screens/employer_posted_screen.dart'; -import 'package:space/src/ui/employer/screens/employer_seeker_screen.dart'; -import 'package:space/src/ui/seeker/screens/jobs_list_screen.dart'; class EmployerTabs extends StatelessWidget { static const routeName = 'employer_tabs'; @@ -19,8 +19,8 @@ class EmployerTabs extends StatelessWidget { [EmployerAppBar()], body: TabBarView( children: [ - EmployerSeekerList(), - EmployerSeekerList(), + ApplicantsScreen(), + InterviewedScreen(), EmployerPostScreen(), ], )), diff --git a/lib/src/ui/employer/screens/interviewed_screen.dart b/lib/src/ui/employer/screens/interviewed_screen.dart new file mode 100644 index 0000000..e1025fc --- /dev/null +++ b/lib/src/ui/employer/screens/interviewed_screen.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; + +import 'package:space/src/ui/employer/layout/interviewed_list.dart'; + +class InterviewedScreen extends StatefulWidget { + _InterviewedScreenState createState() => _InterviewedScreenState(); +} + +class _InterviewedScreenState extends State { + var _isLoading = false; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.transparent, + body: _isLoading + ? Center( + child: CircularProgressIndicator(), + ) + : ListView.builder( + padding: EdgeInsets.only(top: 5), + itemBuilder: (ctx, i) => (Column( + children: [ + InterviewedList(), + ], + )), + ), + ); + } +} diff --git a/lib/src/ui/employer/widgets/employer_app_drawer.dart b/lib/src/ui/employer/widgets/employer_app_drawer.dart index eabb799..2f53474 100644 --- a/lib/src/ui/employer/widgets/employer_app_drawer.dart +++ b/lib/src/ui/employer/widgets/employer_app_drawer.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; import 'package:provider/provider.dart'; import 'package:space/src/core/models/auth.dart'; -import 'package:space/src/ui/seeker/layout/seeker_profile_setting.dart'; -import 'package:space/src/ui/seeker/layout/seeker_profile_view.dart'; +import 'package:space/src/ui/employer/layout/employer_profile_setting.dart'; +import 'package:space/src/ui/employer/layout/employer_profile_view.dart'; import 'package:space/src/ui/settings/about_us.dart'; import 'package:space/src/ui/settings/setting_ui_help.dart'; import 'package:space/src/ui/settings/setting_ui_payment.dart'; @@ -24,8 +24,8 @@ class EmployerDrawer extends StatelessWidget { onTap: () { Navigator.push( context, - new MaterialPageRoute( - builder: (context) => SeekerProfileView())); + MaterialPageRoute( + builder: (context) => EmployerProfileView())); }, leading: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -89,7 +89,7 @@ class EmployerDrawer extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => SettingSeekerProfile()), + builder: (context) => EmployerProfileSetting()), ); }), ), diff --git a/lib/src/ui/employer/widgets/flare_interview_employer.dart b/lib/src/ui/employer/widgets/flare_interview_employer.dart new file mode 100644 index 0000000..87bb584 --- /dev/null +++ b/lib/src/ui/employer/widgets/flare_interview_employer.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; + +class InterviewEmployer extends StatelessWidget { + static const routeName = '/employer-interview'; + @override + Widget build(BuildContext context) { + return AlertDialog( + backgroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)), + title: Text( + 'How is your interview?', + textAlign: TextAlign.center, + ), + titleTextStyle: TextStyle( + color: Color(0xff3b3b3b), + fontSize: 15, + ), + actions: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 9), + child: MaterialButton( + minWidth: 70, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20)), + onPressed: () {}, + color: Color(0xff65be3e), + child: Text( + 'Hired', + style: TextStyle(fontSize: 12, color: Colors.white), + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 9), + child: MaterialButton( + minWidth: 70, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20)), + onPressed: () {}, + color: Color(0xff4d4d4d), + child: Text( + 'Hold', + style: TextStyle(fontSize: 12, color: Colors.white), + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 9), + child: MaterialButton( + minWidth: 70, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20)), + onPressed: () { + }, + color: Color(0xfffb4848), + child: Text( + 'Rejected', + style: TextStyle(fontSize: 12, color: Colors.white), + ), + ), + ), + ], + ), + ], + ); + } +} diff --git a/lib/src/ui/seeker/layout/apply_post.dart b/lib/src/ui/seeker/layout/apply_post.dart index 4deda37..e678842 100644 --- a/lib/src/ui/seeker/layout/apply_post.dart +++ b/lib/src/ui/seeker/layout/apply_post.dart @@ -1,71 +1,1176 @@ -// import 'dart:math'; +import 'package:flutter/material.dart'; +import 'package:flutter_money_formatter/flutter_money_formatter.dart'; -// import 'package:flutter/material.dart'; -// import 'package:intl/intl.dart'; +import 'package:space/src/ui/seeker/layout/job_details.dart'; -// // import 'package:space/src/core/models/apply.dart' as ord; - -// class ApplyPost extends StatefulWidget { -// // final ord.ApplyPost apply; -// // ApplyPost(this.apply); - -// @override -// _OrderItemState createState() => _OrderItemState(); -// } - -// class _OrderItemState extends State { -// var _expanded = false; - -// @override -// Widget build(BuildContext context) { -// return AnimatedContainer( -// duration: Duration(milliseconds: 300), -// height: _expanded ? min(widget.apply.job.length * 20.0 + 110, 200) : 95, -// child: Card( -// margin: EdgeInsets.all(10), -// child: Column( -// children: [ -// ListTile( -// subtitle: Text( -// DateFormat('dd/MM/yyyy hh:mm').format(widget.apply.dateTime), -// ), -// trailing: IconButton( -// icon: Icon(_expanded ? Icons.expand_less : Icons.expand_more), -// onPressed: () { -// setState(() { -// _expanded = !_expanded; -// }); -// }, -// ), -// ), -// AnimatedContainer( -// duration: Duration(milliseconds: 300), -// padding: EdgeInsets.symmetric(horizontal: 15, vertical: 4), -// height: _expanded -// ? min(widget.apply.job.length * 20.0 + 10, 100) -// : 0, -// child: ListView( -// children: widget.apply.job -// .map( -// (job) => Row( -// mainAxisAlignment: MainAxisAlignment.spaceBetween, -// children: [ -// // Text( -// // job.title, -// // style: TextStyle( -// // fontSize: 18, -// // fontWeight: FontWeight.bold, -// // ), -// // ), -// ], -// ), -// ) -// .toList(), -// ), -// ) -// ], -// ), -// ), -// ); -// } -// } +class ApplyPost extends StatelessWidget { + @override + Widget build(BuildContext context) { + // final job = Provider.of(context, listen: false); + // final authData = Provider.of(context, listen: false); + // final cart = Provider.of(context, listen: false); + // final save = Provider.of(context, listen: false); + return Column( + children: [ + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Head Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xff65be3e), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Full Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + trailing: Padding( + padding: const EdgeInsets.only(top: 20.0), + child: Container( + alignment: Alignment.center, + width: 80, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xff8997a7), + ), + child: Text( + 'Applied', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.white), + )), + ), + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Head Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xff65be3e), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Full Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + trailing: Padding( + padding: const EdgeInsets.only(top: 20.0), + child: Container( + alignment: Alignment.center, + width: 80, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xff8997a7), + ), + child: Text( + 'Applied', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.white), + )), + ), + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Head Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xff65be3e), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Full Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + trailing: Padding( + padding: const EdgeInsets.only(top: 20.0), + child: Container( + alignment: Alignment.center, + width: 80, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xff8997a7), + ), + child: Text( + 'Applied', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.white), + )), + ), + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + // ), + // ), + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Assistant Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xfffb4848), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Part Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 3000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + trailing: Padding( + padding: const EdgeInsets.only(top: 20.0), + child: Container( + alignment: Alignment.center, + width: 80, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xff4d4d4d), + ), + child: Text( + 'Hold', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.white), + )), + ), + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + // ), + // ), + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/up2u.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Up2u', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Cleaning Service', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xff8997a7), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Weekend', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 10000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Hour', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + trailing: Padding( + padding: const EdgeInsets.only(top: 20.0), + child: Container( + alignment: Alignment.center, + width: 80, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xfffb4848), + ), + child: Text( + 'Rejected', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.white), + )), + ), + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + // ), + // ), + Divider(height: 10), + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/IT.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('PT.CCTV Indonesia', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('CCTV Installer', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xfff4b800), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Freelance', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Singkawang, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 20000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Hour', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + trailing: Padding( + padding: const EdgeInsets.only(top: 20.0), + child: Container( + alignment: Alignment.center, + width: 80, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xff65be3e), + ), + child: Text( + 'Hired', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.white), + )), + ), + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + // ), + // ), + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/f&b.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Coffee Shop', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Waiter', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xfff4b800), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Freelance', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Ketapang, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 80000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Day', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + trailing: Padding( + padding: const EdgeInsets.only(top: 20.0), + child: Container( + alignment: Alignment.center, + width: 80, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Color(0xfffb4848), + ), + child: Text( + 'Rejected', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 14, color: Colors.white), + )), + ), + ), + Divider(height: 10), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + // ), + // ), + ], + ); + } +} diff --git a/lib/src/ui/seeker/layout/cv.dart b/lib/src/ui/seeker/layout/cv.dart index 165e83b..cca9b11 100644 --- a/lib/src/ui/seeker/layout/cv.dart +++ b/lib/src/ui/seeker/layout/cv.dart @@ -1,8 +1,5 @@ import 'package:flutter/material.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/job.dart'; -import 'package:space/src/core/models/jobs.dart'; class CVSeeker extends StatefulWidget { static const routeName = '/cv-seeker'; @@ -950,6 +947,35 @@ class _CVSeekerState extends State { ], ), ), + Container( + margin: EdgeInsets.symmetric(vertical: 15), + height: 55, + padding: EdgeInsets.symmetric(horizontal: 8), + decoration: BoxDecoration( + color: Colors.grey, + borderRadius: BorderRadius.circular(5) + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Text('Add Attachment ', + style: TextStyle( + fontSize: 14, color: Colors.white)), + Icon( + MdiIcons.helpCircleOutline, + color: Colors.white, + size: 16, + ), + ], + ), + Icon(MdiIcons.plusCircleOutline, + color: Colors.white, size: 22) + ], + ), + ), ], )), Padding( @@ -984,4 +1010,4 @@ class _CVSeekerState extends State { ), ); } -} +} \ No newline at end of file diff --git a/lib/src/ui/seeker/layout/job_details.dart b/lib/src/ui/seeker/layout/job_details.dart index 3b23321..9822b98 100644 --- a/lib/src/ui/seeker/layout/job_details.dart +++ b/lib/src/ui/seeker/layout/job_details.dart @@ -1,12 +1,9 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:giffy_dialog/giffy_dialog.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; -import 'package:provider/provider.dart'; import 'package:flutter_money_formatter/flutter_money_formatter.dart'; -import 'package:space/src/core/models/apply.dart'; -import 'package:space/src/core/models/job.dart'; -import 'package:space/src/core/models/jobs.dart'; class JobDetails extends StatefulWidget { static const routeName = '/job-details'; @@ -16,7 +13,7 @@ class JobDetails extends StatefulWidget { class _JobDetailsState extends State { var _isLoading = false; - var _editJob = List(); + // var _editJob = List(); // final bool showSaves; // JobDetails(this.showSaves); @@ -25,13 +22,13 @@ class _JobDetailsState extends State { Widget build(BuildContext context) { // final jobsData = Provider.of(context); // final job = showSaves ? jobsData.savePosts : jobsData.posts; - final jobId = ModalRoute.of(context).settings.arguments as String; + // final jobId = ModalRoute.of(context).settings.arguments as String; // final authData = Provider.of(context, listen: false); // final save = Provider.of(context, listen: false); - final loadedJob = Provider.of( - context, - listen: false, - ).findById(jobId); + // final loadedJob = Provider.of( + // context, + // listen: false, + // ).findById(jobId); return Material( color: Colors.white, child: Stack( @@ -51,7 +48,7 @@ class _JobDetailsState extends State { color: Colors.white, size: 16)), elevation: 1, backgroundColor: Colors.transparent, - title: Text(loadedJob.employerName, + title: Text('Mekuru Ramen', style: TextStyle( color: Colors.white, fontSize: 14, @@ -84,7 +81,7 @@ class _JobDetailsState extends State { fontSize: 10, color: Colors.white)), Text( FlutterMoneyFormatter( - amount: loadedJob.salary, + amount: 5000000, settings: MoneyFormatterSettings( symbol: 'Rp', thousandSeparator: '.', @@ -99,7 +96,7 @@ class _JobDetailsState extends State { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ - Text(loadedJob.title, + Text('Head Chef', style: TextStyle( fontSize: 14, fontWeight: FontWeight.bold, @@ -108,7 +105,7 @@ class _JobDetailsState extends State { children: [ Icon(FeatherIcons.mapPin, size: 9, color: Color(0xffc4c5c5)), - Text(loadedJob.location, + Text('Pontianak, West Borneo', style: TextStyle( fontSize: 10, color: Color(0xffc4c5c5))), @@ -119,10 +116,10 @@ class _JobDetailsState extends State { fontSize: 10, color: Colors.white, height: 2.2)), - Text(loadedJob.workingday, + Text('Tuesday - Sunday', style: TextStyle( color: Colors.white, fontSize: 10)), - Text(loadedJob.workinghour, + Text('08.00 - 21.30', style: TextStyle( color: Colors.white, fontSize: 10)), ], @@ -140,7 +137,7 @@ class _JobDetailsState extends State { color: Color(0xff65be3e), child: Container( padding: EdgeInsets.symmetric(horizontal: 4), - child: Text(loadedJob.type, + child: Text('Full Time', style: TextStyle( color: Colors.white, fontSize: 9)), ), @@ -156,10 +153,12 @@ class _JobDetailsState extends State { left: 30, ), child: CircleAvatar( - backgroundColor: Colors.white, radius: 40, - child: ClipOval( - child: Image.network(loadedJob.imageUrl, height: 80), + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 38, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru_2.png'), ), ), ), @@ -184,7 +183,7 @@ class _JobDetailsState extends State { color: Colors.black), ), TextSpan( - text: loadedJob.description, + text: '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', style: TextStyle( fontSize: 12, color: Color(0xff8997a7), @@ -204,7 +203,7 @@ class _JobDetailsState extends State { height: 2), ), TextSpan( - text: loadedJob.industry, + text: 'Food & Beverages', style: TextStyle( fontSize: 12, color: Color(0xff8997a7))), @@ -222,7 +221,7 @@ class _JobDetailsState extends State { color: Colors.black), ), TextSpan( - text: loadedJob.education, + text: 'High School', style: TextStyle( fontSize: 12, color: Color(0xff8997a7), @@ -238,7 +237,12 @@ class _JobDetailsState extends State { color: Colors.black, height: 2), ), - Text(loadedJob.skill, + Text( '• 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', style: TextStyle( fontSize: 12, color: Color(0xff8997a7), @@ -250,28 +254,40 @@ class _JobDetailsState extends State { padding: EdgeInsets.only(bottom: 20), child: Center( child: RaisedButton( - child: _isLoading - ? CircularProgressIndicator() - : Text('Apply for a job', - style: TextStyle( - color: Colors.white, fontSize: 15)), - color: Color(0xff22c0e8), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(30)), - onPressed: (_isLoading) - ? null - : () async { - setState(() { - _isLoading = true; - }); - await Provider.of(context, - listen: false) - .addApply(_editJob); - setState(() { - _isLoading = false; - }); - }, - ), + child: _isLoading + ? CircularProgressIndicator() + : Text('Apply for a job', + style: TextStyle( + color: Colors.white, + fontSize: 15)), + color: Color(0xff22c0e8), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30)), + onPressed: () { + showDialog( + context: context, + builder: (_) => FlareGiffyDialog( + flarePath: + 'assets/space_demo.flr', + flareAnimation: 'loading', + title: Text( + 'Sorry, you have been exceeded daily quota.', + textAlign: TextAlign.center, + style: TextStyle( + fontFamily: 'VarelaRound', + color: Color(0xff3b3b3b), + fontSize: 14, + ), + ), + buttonOkText: Text('Subscribe', + style: TextStyle( + color: Colors.white, + )), + buttonOkColor: Color(0xff57b22f), + onOkButtonPressed: () { + }, + )); + }), ), ), ], @@ -280,8 +296,7 @@ class _JobDetailsState extends State { ), ), floatingActionButton: FloatingActionButton( - child: Icon(MdiIcons.bookmarkOutline, - color: Colors.white), + child: Icon(MdiIcons.bookmarkOutline, color: Colors.white), onPressed: () { Scaffold.of(context).showSnackBar( SnackBar( diff --git a/lib/src/ui/seeker/layout/job_list.dart b/lib/src/ui/seeker/layout/job_list.dart index f798d01..a454d94 100644 --- a/lib/src/ui/seeker/layout/job_list.dart +++ b/lib/src/ui/seeker/layout/job_list.dart @@ -1,131 +1,603 @@ import 'package:flutter/material.dart'; -import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; -import 'package:provider/provider.dart'; import 'package:flutter_money_formatter/flutter_money_formatter.dart'; -import 'package:space/src/core/models/auth.dart'; -import 'package:space/src/core/models/cart.dart'; import 'package:space/src/ui/seeker/layout/job_details.dart'; -import 'package:space/src/core/models/job.dart'; class JobsList extends StatelessWidget { @override Widget build(BuildContext context) { - final job = Provider.of(context, listen: false); + // final job = Provider.of(context, listen: false); // final authData = Provider.of(context, listen: false); // final cart = Provider.of(context, listen: false); // final save = Provider.of(context, listen: false); - return Dismissible( - direction: DismissDirection.endToStart, - confirmDismiss: (direction) { - return showDialog( - context: context, - builder: (ctx) => AlertDialog( - title: Text('Are you sure?'), - content: Text('Do you want to remove the job from the list?'), - actions: [ - FlatButton( - child: Text('No'), - onPressed: () { - Navigator.of(ctx).pop(false); - }, + return Column( + children: [ + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Assistant Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xfffb4848), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Part Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], ), - FlatButton( - child: Text('Yes'), - onPressed: () { - Navigator.of(ctx).pop(true); - }, + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 3000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], ), ], - )); - }, - onDismissed: (direction) {}, - key: ValueKey(job.id), - background: Container( - color: Theme.of(context).errorColor, - child: Icon( - Icons.delete, - color: Colors.white, - size: 40, + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], ), - alignment: Alignment.centerRight, - padding: EdgeInsetsDirectional.only(end: 20), - ), - child: Container( - padding: EdgeInsets.only(bottom: 10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(0), - color: Colors.white, - boxShadow: [ - BoxShadow( - color: Color(0xff0c0c0c0), - blurRadius: 1.5, - offset: Offset(1.0, 1.0)) + Divider(height: 10), + // ), + // ), + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/up2u.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Up2u', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Cleaning Service', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xff8997a7), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Weekend', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 10000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Hour', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), ], ), - child: Stack( + // ), + // ), + Divider(height: 10), + Stack( alignment: Alignment(1.06, -2), children: [ ListTile( - leading: - Padding( - padding: const EdgeInsets.only(top: 10.0), - child: ClipOval( - child: Image.network(job.imageUrl, - fit: BoxFit.cover, height: 40), + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/IT.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('PT.CCTV Indonesia', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('CCTV Installer', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xfff4b800), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Freelance', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), ), - ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Singkawang, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 20000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Hour', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + // ), + // ), + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/f&b.png'), + ), + ), + ), title: Container( padding: (EdgeInsets.only(top: 5)), child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(job.employerName, - style: - TextStyle(fontSize: 14, color: Color(0xff3b3b3b), height: 2)), + Text('Coffee Shop', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), Row( children: [ - Text(job.title, + Text('Waiter', style: TextStyle( fontFamily: 'VarelaRound', - fontSize: 12, + fontSize: 13, color: Color(0xff3b3b3b))), Container( padding: EdgeInsets.only(left: 5), child: Material( elevation: 1.0, borderRadius: BorderRadius.circular(5.0), - color: Color(0xff65be3e), + color: Color(0xfff4b800), child: Container( padding: EdgeInsets.symmetric(horizontal: 4), - child: Text(job.type, + child: Text('Freelance', style: TextStyle( - color: Colors.white, fontSize: 9, height: 1.3)), + color: Colors.white, + fontSize: 9, + height: 1.3)), ), ), ), ], ), - Row( + Row( children: [ Icon(Icons.location_on, size: 10, color: Color(0xff8997a7)), Flexible( - child: Text(job.location, + child: Text('Ketapang, West Borneo', overflow: TextOverflow.ellipsis, style: TextStyle( - fontSize: 12, color: Color(0xff8997a7), height: 1.3))), + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3))), ], ), Row( children: [ Text('Salary: ', style: TextStyle( - fontSize: 10, color: Color(0xff8997a7), height: 1.3)), + fontSize: 11, + color: Color(0xff8997a7), + height: 1.3)), Text( FlutterMoneyFormatter( - amount: job.salary, + amount: 80000, settings: MoneyFormatterSettings( symbol: 'Rp', thousandSeparator: '.', @@ -133,15 +605,21 @@ class JobsList extends StatelessWidget { .output .symbolOnLeft, style: TextStyle( - fontSize: 10, color: Color(0xff3b3b3b), height: 1.3)), + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Day', + style: TextStyle( + fontSize: 11, + color: Color(0xff3b3b3b), + height: 1.3)), ], ), ], ), ), onTap: () { - Navigator.of(context) - .pushNamed(JobDetails.routeName, arguments: job.id); + Navigator.of(context).pushNamed(JobDetails.routeName); }, ), // Padding( @@ -166,7 +644,10 @@ class JobsList extends StatelessWidget { // ), ], ), - ), + Divider(height: 10), + // ), + // ), + ], ); } } diff --git a/lib/src/ui/seeker/layout/saved_lists.dart b/lib/src/ui/seeker/layout/saved_lists.dart index 72cc9af..f6faea3 100644 --- a/lib/src/ui/seeker/layout/saved_lists.dart +++ b/lib/src/ui/seeker/layout/saved_lists.dart @@ -1,74 +1,337 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import 'package:flutter_money_formatter/flutter_money_formatter.dart'; -import 'package:space/src/core/models/job.dart'; -import 'package:space/src/core/models/save.dart'; import 'package:space/src/ui/seeker/layout/job_details.dart'; class SavePosts extends StatelessWidget { @override Widget build(BuildContext context) { - final job = Provider.of(context, listen: false); - return Dismissible( - direction: DismissDirection.endToStart, - onDismissed: (direction) { - Provider.of(context, listen: false).removeItem(job.id); - }, - key: ValueKey(job.id), - background: Container( - color: Theme.of(context).errorColor, - child: Icon( - Icons.delete, - color: Colors.white, - size: 40, + // final job = Provider.of(context, listen: false); + // final authData = Provider.of(context, listen: false); + // final cart = Provider.of(context, listen: false); + // final save = Provider.of(context, listen: false); + return Column( + children: [ + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Head Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xff65be3e), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Full Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], ), - alignment: Alignment.centerRight, - padding: EdgeInsetsDirectional.only(end: 20), - ), - child: Stack( - alignment: Alignment(1.06, -2), - children: [ - ListTile( - leading: Column( - children: [ - Stack( - alignment: Alignment(1, -1), - children: [ - ClipOval( - child: Image.network(job.imageUrl, fit: BoxFit.cover, height: 40) + Divider(height: 10), + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Head Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xff65be3e), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Full Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), ), - GestureDetector( - onTap: () { - Navigator.of(context).pushNamed(JobDetails.routeName, - arguments: job.id); - }, - child: Material( - borderRadius: BorderRadius.circular(20), - color: Color(0xff22c0e8), - child: Icon(Icons.add, color: Colors.white, size: 14), ), - ), - ], + ], + ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), + ], + ), + ), + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), ), - ], + ), ), title: Container( - height: 50, padding: (EdgeInsets.only(top: 5)), child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text('employerName', - style: - TextStyle(fontSize: 14, color: Color(0xff3b3b3b))), + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), Row( children: [ - Text(job.title, + Text('Head Chef', style: TextStyle( fontFamily: 'VarelaRound', - fontSize: 12, + fontSize: 13, color: Color(0xff3b3b3b))), Container( padding: EdgeInsets.only(left: 5), @@ -78,41 +341,210 @@ class SavePosts extends StatelessWidget { color: Color(0xff65be3e), child: Container( padding: EdgeInsets.symmetric(horizontal: 4), - child: Text(job.type, + child: Text('Full Time', style: TextStyle( - color: Colors.white, fontSize: 9)), + color: Colors.white, + fontSize: 9, + height: 1.3)), ), ), ), ], ), + Row( + children: [ + Icon(Icons.location_on, + size: 10, color: Color(0xff8997a7)), + Flexible( + child: Text('Pontianak, West Borneo', + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3))), + ], + ), + Row( + children: [ + Text('Salary: ', + style: TextStyle( + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3)), + Text( + FlutterMoneyFormatter( + amount: 5000000, + settings: MoneyFormatterSettings( + symbol: 'Rp', + thousandSeparator: '.', + fractionDigits: 0)) + .output + .symbolOnLeft, + style: TextStyle( + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), + ], + ), ], ), ), - subtitle: Container( + onTap: () { + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + // ), + // ), + // Dismissible( + // direction: DismissDirection.endToStart, + // confirmDismiss: (direction) { + // return showDialog( + // context: context, + // builder: (ctx) => AlertDialog( + // title: Text('Are you sure?'), + // content: Text('Do you want to remove the job from the list?'), + // actions: [ + // FlatButton( + // child: Text('No'), + // onPressed: () { + // Navigator.of(ctx).pop(false); + // }, + // ), + // FlatButton( + // child: Text('Yes'), + // onPressed: () { + // Navigator.of(ctx).pop(true); + // }, + // ), + // ], + // )); + // }, + // onDismissed: (direction) {}, + // // key: ValueKey(job.id), + // background: Container( + // color: Theme.of(context).errorColor, + // child: Icon( + // Icons.delete, + // color: Colors.white, + // size: 30, + // ), + // alignment: Alignment.centerRight, + // padding: EdgeInsetsDirectional.only(end: 20), + // ), + // child: Container( + // padding: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(0), + // color: Colors.white, + // boxShadow: [ + // BoxShadow( + // color: Color(0xff0c0c0c0), + // blurRadius: 1.5, + // offset: Offset(1.0, 1.0)) + // ], + // ), + // child: + Stack( + alignment: Alignment(1.06, -2), + children: [ + ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: CircleAvatar( + radius: 25, + backgroundColor: Colors.white, + child: CircleAvatar( + radius: 23, + backgroundColor: Colors.white, + backgroundImage: AssetImage('assets/mekuru.png'), + ), + ), + ), + title: Container( + padding: (EdgeInsets.only(top: 5)), child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.start, children: [ + Text('Mekuru Ramen', + style: TextStyle( + fontSize: 16, color: Color(0xff3b3b3b), height: 2)), + Row( + children: [ + Text('Assistant Chef', + style: TextStyle( + fontFamily: 'VarelaRound', + fontSize: 13, + color: Color(0xff3b3b3b))), + Container( + padding: EdgeInsets.only(left: 5), + child: Material( + elevation: 1.0, + borderRadius: BorderRadius.circular(5.0), + color: Color(0xfffb4848), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 4), + child: Text('Part Time', + style: TextStyle( + color: Colors.white, + fontSize: 9, + height: 1.3)), + ), + ), + ), + ], + ), Row( children: [ Icon(Icons.location_on, size: 10, color: Color(0xff8997a7)), Flexible( - child: Text(job.location, + child: Text('Pontianak, West Borneo', overflow: TextOverflow.ellipsis, style: TextStyle( - fontSize: 12, color: Color(0xff8997a7)))), + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3))), ], ), Row( children: [ Text('Salary: ', style: TextStyle( - fontSize: 10, color: Color(0xff8997a7))), + fontSize: 13, + color: Color(0xff8997a7), + height: 1.3)), Text( FlutterMoneyFormatter( - amount: job.salary, + amount: 3000000, settings: MoneyFormatterSettings( symbol: 'Rp', thousandSeparator: '.', @@ -120,20 +552,49 @@ class SavePosts extends StatelessWidget { .output .symbolOnLeft, style: TextStyle( - fontSize: 10, color: Color(0xff3b3b3b))), + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), + Text(' / Month', + style: TextStyle( + fontSize: 13, + color: Color(0xff3b3b3b), + height: 1.3)), ], ), ], ), ), onTap: () { - Navigator.of(context).pushNamed( - JobDetails.routeName, - arguments: job.id, - ); - }), - ], - ), + Navigator.of(context).pushNamed(JobDetails.routeName); + }, + ), + // Padding( + // padding: EdgeInsets.only(top: 6), + // child: Consumer( + // builder: (ctx, job, _) => IconButton( + // icon: Icon( + // job.isSave ? MdiIcons.bookmark : MdiIcons.bookmarkOutline, + // color: Theme.of(context).colorScheme.onPrimary), + // onPressed: () { + // job.toggleSavePosts(); + // Scaffold.of(context).showSnackBar( + // SnackBar( + // duration: Duration(seconds: 1), + // content: + // Text('Save', style: TextStyle(color: Colors.white)), + // ), + // ); + // }, + // ), + // ), + // ), + ], + ), + Divider(height: 10), + // ), + // ), + ], ); } } diff --git a/lib/src/ui/seeker/layout/seeker_app_bar.dart b/lib/src/ui/seeker/layout/seeker_app_bar.dart index de1dadc..c31fc49 100644 --- a/lib/src/ui/seeker/layout/seeker_app_bar.dart +++ b/lib/src/ui/seeker/layout/seeker_app_bar.dart @@ -1,9 +1,6 @@ import 'package:flutter/material.dart'; import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/cart.dart'; import 'package:space/src/ui/seeker/layout/cv.dart'; -import 'package:space/src/ui/seeker/screens/cart_screen.dart'; class SeekerAppBar extends StatelessWidget { @override diff --git a/lib/src/ui/seeker/layout/seeker_profile.dart b/lib/src/ui/seeker/layout/seeker_profile.dart index fa76baa..a19faff 100644 --- a/lib/src/ui/seeker/layout/seeker_profile.dart +++ b/lib/src/ui/seeker/layout/seeker_profile.dart @@ -26,7 +26,6 @@ void main() { } class SeekerProfile extends StatefulWidget { - const SeekerProfile({Key key, String title}) : super(key: key); @override _SeekerProfileState createState() => _SeekerProfileState(); } diff --git a/lib/src/ui/seeker/layout/seeker_profile_setting.dart b/lib/src/ui/seeker/layout/seeker_profile_setting.dart index b8e1814..6c95824 100644 --- a/lib/src/ui/seeker/layout/seeker_profile_setting.dart +++ b/lib/src/ui/seeker/layout/seeker_profile_setting.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:space/src/ui/seeker/layout/cv.dart'; class SettingSeekerProfile extends StatefulWidget { @override @@ -13,327 +15,376 @@ class _SettingSeekerProfileState extends State @override Widget build(BuildContext context) { return LayoutBuilder( - builder: (BuildContext context, BoxConstraints viewportConstraints) { - return Container( - decoration: new BoxDecoration( - image: DecorationImage(image: AssetImage('assets/vector-5.png')), - ), - child: Scaffold( - backgroundColor: Colors.transparent, - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context, true); - }, - icon: Icon( - FeatherIcons.chevronLeft, - color: Colors.white, - size: 16, - )), - elevation: 0, - backgroundColor: Colors.transparent, - title: Text('Profile Setting', - style: style.copyWith( - color: Colors.white, - fontSize: 14, - letterSpacing: 1, - )), - ), - body: SingleChildScrollView( - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: viewportConstraints.maxHeight, + builder: (BuildContext context, BoxConstraints viewportConstraints) { + return Stack( + children: [ + SvgPicture.asset( + 'assets/vector-5.svg', + fit: BoxFit.cover, + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + ), + Scaffold( + backgroundColor: Colors.transparent, + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon( + FeatherIcons.chevronLeft, + color: Colors.white, + size: 16, + )), + elevation: 0, + backgroundColor: Colors.transparent, + title: Text('Profile Setting', + style: style.copyWith( + color: Colors.white, + fontSize: 14, + letterSpacing: 1, + )), ), - child: Container( - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Container( - padding: EdgeInsetsDirectional.only(bottom: 20), - alignment: Alignment.topCenter, - child: CircleAvatar( - backgroundColor: Colors.white, - radius: 40.0, - child: - Image.asset('assets/img_profile-2.png', height: 75), - ), - ), - Container( - padding: EdgeInsets.only(bottom: 20), - child: Column( - children: [ - Text('Nakamura Chan', - style: style.copyWith( - fontSize: 15, color: Colors.white)), - Text('30', - style: style.copyWith( - fontSize: 15, color: Colors.white)), - ], - ), - ), - Container( - child: Column( - children: [ - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - mainAxisAlignment: - MainAxisAlignment.spaceAround, - mainAxisSize: MainAxisSize.max, - children: [ - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( - color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular( - 30.0)), - child: Text('#restaurant', - style: - style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( - color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular( - 30.0)), - child: Text('#ramen', - style: - style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( - color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular( - 30.0)), - child: Text('#chef', - style: - style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( - color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular( - 30.0)), - child: Text('#japanese', - style: - style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - ], - )), - ], - ), - ), - Container( - height: MediaQuery.of(context).size.height, - margin: EdgeInsets.only(top: 15), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: new BorderRadius.only( - topLeft: const Radius.circular(30.0), - topRight: const Radius.circular(30.0), - ), - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Full Name', - style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - ), - title: Text('Nakamura Chan', - style: style.copyWith( - color: Color(0xff757575), fontSize: 13)), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Address', - style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - ), - title: Text('Jl. Ketapang no 87D, Pontianak', - style: style.copyWith( - color: Color(0xff757575), fontSize: 13)), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), + body: SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: viewportConstraints.maxHeight, + ), + child: Container( + child: Column( + mainAxisSize: MainAxisSize.max, + children: [ + Container( + padding: EdgeInsetsDirectional.only(bottom: 20), + alignment: Alignment.topCenter, + child: CircleAvatar( + backgroundColor: Colors.white, + radius: 40.0, + child: Image.asset('assets/img_profile-2.png', + height: 75), ), - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Gender', - style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - ), - title: Text('Male', - style: style.copyWith( - color: Color(0xff757575), fontSize: 13)), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Date of Birth', - style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - ), - title: Text('31 December 1989', - style: style.copyWith( - color: Color(0xff757575), fontSize: 13)), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Education', + ), + Container( + padding: EdgeInsets.only(bottom: 20), + child: Column( + children: [ + Text('Nakamura Chan', style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - ), - title: Text('High School', - style: style.copyWith( - color: Color(0xff757575), fontSize: 13)), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Experience', + fontSize: 15, color: Colors.white)), + Text('30', style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - ), - title: Text('2 Years as Barista', - style: style.copyWith( - color: Color(0xff757575), fontSize: 13)), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), + fontSize: 15, color: Colors.white)), + ], ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Current', - style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), - ), - title: Text('1 Years as Head Chef', - style: style.copyWith( - color: Color(0xff757575), fontSize: 13)), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), + ), + Container( + child: Column( + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + mainAxisSize: MainAxisSize.max, + children: [ + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#restaurant', + style: style.copyWith( + fontSize: 12)), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#ramen', + style: style.copyWith( + fontSize: 12)), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#chef', + style: style.copyWith( + fontSize: 12)), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#japanese', + style: style.copyWith( + fontSize: 12)), + onPressed: () {}, + )), + ], + )), + ], ), - ListTile( - onTap: () {}, - leading: Container( - width: 120, - alignment: Alignment.centerLeft, - child: Text('Upload Resume', - style: style.copyWith( - color: Color(0xff757575), fontSize: 14)), + ), + Container( + height: MediaQuery.of(context).size.height, + margin: EdgeInsets.only(top: 15), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: new BorderRadius.only( + topLeft: const Radius.circular(30.0), + topRight: const Radius.circular(30.0), ), - title: RichText( - text: TextSpan(children: [ - TextSpan( - text: 'CV.PDF - ', - style: style.copyWith( - color: Color(0xff9faab6), fontSize: 13)), - TextSpan( - text: 'successful uploaded', - style: style.copyWith( - color: Color(0xff57b22f), fontSize: 13)), - ])), - trailing: Icon(FeatherIcons.chevronRight, - color: Color(0xff757575), size: 20), ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ListTile( + onTap: () {}, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Full Name', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: Text('Nakamura Chan', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ListTile( + onTap: () {}, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Address', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: Text('Pontianak, West Borneo', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ListTile( + onTap: () {}, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Gender', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: Text('Male', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ListTile( + onTap: () {}, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Date of Birth', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: Text('31 December 1989', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ListTile( + onTap: () {}, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Education', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: Text('High School', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ListTile( + onTap: () {}, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Experience', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: Text('2 Years as Barista', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ListTile( + onTap: () {}, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Current', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: Text('1 Years as Head Chef', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => CVSeeker())); + }, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('Edit CV', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: RichText( + text: TextSpan(children: [ + TextSpan( + text: 'Upload / Edit your CV', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + ])), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => CVSeeker())); + }, + leading: Container( + width: 120, + alignment: Alignment.centerLeft, + child: Text('View CV', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 14)), + ), + title: RichText( + text: TextSpan(children: [ + TextSpan( + text: 'View your CV', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 13)), + ])), + trailing: Icon(FeatherIcons.chevronRight, + color: Color(0xff757575), size: 20), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + ], ), - ], - ), + ), + ], ), - ], + ), ), ), ), - ), - ), - ); - }); + ], + ); + }, + ); } } diff --git a/lib/src/ui/seeker/layout/seeker_profile_view.dart b/lib/src/ui/seeker/layout/seeker_profile_view.dart index f2eeb3e..76ab5e2 100644 --- a/lib/src/ui/seeker/layout/seeker_profile_view.dart +++ b/lib/src/ui/seeker/layout/seeker_profile_view.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; class SeekerProfileView extends StatefulWidget { @override @@ -12,288 +14,437 @@ class _SeekerProfileViewState extends State @override Widget build(BuildContext context) { - return Container( - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/vector-5.png'), - alignment: AlignmentDirectional.topEnd, + return Stack( + children: [ + SvgPicture.asset('assets/vector-5.svg', + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, fit: BoxFit.cover), - ), - child: Scaffold( - backgroundColor: Colors.transparent, - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context, true); - }, - icon: Icon(FeatherIcons.chevronLeft, - color: Colors.white, size: 16)), - elevation: 0, + Scaffold( backgroundColor: Colors.transparent, - ), - body: SingleChildScrollView( - child: LayoutBuilder(builder: - (BuildContext context, BoxConstraints viewportConstraints) { - return Container( - child: Column( - children: [ - Container( - padding: EdgeInsetsDirectional.only(bottom: 10), - alignment: Alignment.topCenter, - child: CircleAvatar( - backgroundColor: Colors.white, - minRadius: 40, - maxRadius: 45, - child: - Image.asset('assets/img_profile-2.png', scale: 1.4), - ), - ), - Container( - padding: EdgeInsets.only(bottom: 20), - child: Column( - children: [ - Text('Nakamura Chan', - style: style.copyWith( - fontSize: 16, - fontWeight: FontWeight.bold, - color: Colors.white)), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon(FeatherIcons.mapPin, - size: 10, color: Colors.white), - Text(' Pontianak, West Borneo', - style: style.copyWith( - fontSize: 12, - color: Colors.white, - height: 2)) - ], - ), - ], + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon(FeatherIcons.chevronLeft, + color: Colors.white, size: 16)), + elevation: 0, + backgroundColor: Colors.transparent, + ), + body: SingleChildScrollView( + child: LayoutBuilder(builder: + (BuildContext context, BoxConstraints viewportConstraints) { + return Container( + child: Column( + children: [ + Container( + padding: EdgeInsetsDirectional.only(bottom: 10), + alignment: Alignment.topCenter, + child: CircleAvatar( + backgroundColor: Colors.white, + minRadius: 40, + maxRadius: 45, + child: + Image.asset('assets/img_profile-2.png', scale: 1.4), + ), ), - ), - new Center(), - Container( - child: Column( - children: [ - SingleChildScrollView( - scrollDirection: Axis.horizontal, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - mainAxisSize: MainAxisSize.max, - children: [ - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( - color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(30.0)), - child: Text('#restaurant', - style: style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( + Container( + padding: EdgeInsets.only(bottom: 20), + child: Column( + children: [ + Text('Nakamura Chan', + style: style.copyWith( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.white)), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(FeatherIcons.mapPin, + size: 10, color: Colors.white), + Text(' Pontianak, West Borneo', + style: style.copyWith( + fontSize: 12, color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(30.0)), - child: Text('#ramen', - style: style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( - color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(30.0)), - child: Text('#chef', - style: style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - Container( - height: 30, - padding: EdgeInsets.all(5), - child: RaisedButton( - color: Colors.white, - shape: new RoundedRectangleBorder( - borderRadius: - new BorderRadius.circular(30.0)), - child: Text('#japanese', - style: style.copyWith(fontSize: 12)), - onPressed: () {}, - )), - ], - )), - ], + height: 2)) + ], + ), + ], + ), ), - ), - Container( - margin: EdgeInsets.only(top: 10), - width: MediaQuery.of(context).size.width, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: new BorderRadius.only( - topLeft: const Radius.circular(30.0), - topRight: const Radius.circular(30.0), + new Center(), + Container( + child: Column( + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + mainAxisSize: MainAxisSize.max, + children: [ + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#restaurant', + style: + style.copyWith(fontSize: 12)), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#ramen', + style: + style.copyWith(fontSize: 12)), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#chef', + style: + style.copyWith(fontSize: 12)), + onPressed: () {}, + )), + Container( + height: 30, + padding: EdgeInsets.all(5), + child: RaisedButton( + color: Colors.white, + shape: new RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 30.0)), + child: Text('#japanese', + style: + style.copyWith(fontSize: 12)), + onPressed: () {}, + )), + ], + )), + ], ), ), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceAround, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: - EdgeInsets.only(left: 20, right: 20, top: 10), - child: ListTile( - leading: Padding( - padding: EdgeInsets.only(top: 3), - child: Image.asset('assets/icon6.png', - scale: 3.5)), - title: Text('Address', - style: style.copyWith( - color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.bold)), - subtitle: Text('Pontianak, West Borneo', - style: style.copyWith( - color: Color(0xff757575), fontSize: 16)), - ), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), + Container( + margin: EdgeInsets.only(top: 10), + padding: EdgeInsets.only(bottom: 20), + width: MediaQuery.of(context).size.width, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: new BorderRadius.only( + topLeft: const Radius.circular(30.0), + topRight: const Radius.circular(30.0), ), - Padding( - padding: EdgeInsets.symmetric(horizontal: 20), - child: ListTile( - leading: Padding( - padding: EdgeInsets.only(top: 3), - child: Image.asset('assets/icon3.png', - scale: 3.5)), - title: Text('Age', - style: style.copyWith( - color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.bold)), - subtitle: Text('30 Years Old', - style: style.copyWith( - color: Color(0xff757575), fontSize: 16)), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: + EdgeInsets.only(left: 20, right: 20, top: 10), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon5.png', + scale: 3.5)), + title: Text('Gender', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('Male', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), ), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - Padding( - padding: EdgeInsets.symmetric(horizontal: 20), - child: ListTile( - leading: Padding( - padding: EdgeInsets.only(top: 3), - child: Image.asset('assets/icon5.png', - scale: 3.5)), - title: Text('Gender', - style: style.copyWith( - color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.bold)), - subtitle: Text('Male', - style: style.copyWith( - color: Color(0xff757575), fontSize: 16)), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), ), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - Padding( - padding: EdgeInsets.symmetric(horizontal: 20), - child: ListTile( - leading: Padding( - padding: EdgeInsets.only(top: 3), - child: Image.asset('assets/icon4.png', - scale: 3.5)), - title: Text('Experience', - style: style.copyWith( - color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.bold)), - subtitle: Text('10 Years as Chef', - style: style.copyWith( - color: Color(0xff757575), fontSize: 16)), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon21.png', + scale: 40)), + title: Text('Status', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('Married', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), ), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - Padding( - padding: EdgeInsets.symmetric(horizontal: 20), - child: ListTile( - leading: Padding( - padding: EdgeInsets.only(top: 3), - child: Image.asset('assets/icon8.png', - scale: 3.5)), - title: Text('Education', - style: style.copyWith( - color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.bold)), - subtitle: Text('High School', - style: style.copyWith( - color: Color(0xff757575), fontSize: 16)), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), ), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - Padding( - padding: EdgeInsets.symmetric(horizontal: 20), - child: ListTile( - leading: Padding( - padding: EdgeInsets.only(top: 3), - child: Image.asset('assets/icon7.png', - scale: 3.5)), - title: Text('Current Job', - style: style.copyWith( - color: Colors.black, - fontSize: 18, - fontWeight: FontWeight.bold)), - subtitle: Text('Full Time Chef', - style: style.copyWith( - color: Color(0xff757575), fontSize: 16)), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), ), - ), - Container( - height: 0, - padding: EdgeInsets.symmetric(horizontal: 17), - child: Divider(color: Color(0xffc9c8c8)), - ), - ], + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon20.png', + scale: 1)), + title: Text('Religion', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('Buddha', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon3.png', + scale: 3.5)), + title: Text('Age', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('30 Years Old', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon6.png', + scale: 3.5)), + title: Text('City', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('Pontianak, West Borneo', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon8.png', + scale: 3.5)), + title: Text('Education', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('High School', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon18.png', + scale: 2)), + title: Text('Course', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('Hospitality', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon4.png', + scale: 3.5)), + title: Text('Experience', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('10 Years as Chef', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon4.png', + scale: 3.5)), + title: Text('Experience', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('15 Years as Cook', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon7.png', + scale: 3.5)), + title: Text('Current Job', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('Full Time Chef', + style: style.copyWith( + color: Color(0xff757575), fontSize: 16)), + ), + ), + Container( + height: 0, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: Column( + children: [ + ListTile( + leading: Padding( + padding: EdgeInsets.only(top: 3), + child: Image.asset('assets/icon19.png', + scale: 2.8)), + title: Text('ID Card', + style: style.copyWith( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.bold)), + subtitle: Text('View Attachment', + style: style.copyWith( + color: Color(0xff757575), + fontSize: 16)), + trailing: Icon(MdiIcons.chevronUp), + ), + ClipRRect( + borderRadius: BorderRadius.circular(10), + child: Image.asset('assets/ktp.jpg'), + ), + ], + ), + ), + Container( + height: 20, + padding: EdgeInsets.symmetric(horizontal: 17), + child: Divider(color: Color(0xffc9c8c8)), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 90), + child: MaterialButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + color: Color(0xff22c0e8), + onPressed: () {}, + child: Row( + children: [ + Icon( + MdiIcons.emailOutline, + color: Colors.white, + ), + Text(' Send Message', + style: TextStyle( + fontSize: 16, color: Colors.white)), + ], + ), + ), + ) + ], + ), ), - ), - ], - ), - ); - }), + ], + ), + ); + }), + ), ), - ), + ], ); } } diff --git a/lib/src/ui/seeker/screens/applys_screen.dart b/lib/src/ui/seeker/screens/applys_screen.dart index b62e366..35a85c2 100644 --- a/lib/src/ui/seeker/screens/applys_screen.dart +++ b/lib/src/ui/seeker/screens/applys_screen.dart @@ -1,40 +1,36 @@ -// import 'package:flutter/material.dart'; -// import 'package:provider/provider.dart'; +import 'package:flutter/material.dart'; -// import 'package:space/src/core/models/apply.dart' show Applys; -// import 'package:space/src/ui/seeker/layout/apply_post.dart'; +import 'package:space/src/ui/seeker/layout/apply_post.dart'; -// class ApplysScreen extends StatelessWidget { -// static const routeName = '/Applys'; +class ApplysScreen extends StatelessWidget { + static const routeName = '/Applys'; -// @override -// Widget build(BuildContext context) { -// print('building Applys'); -// // final applyData = Provider.of(context); -// return Scaffold( -// body: FutureBuilder( -// future: Provider.of(context, listen: false).fetchAndSetApplys(), -// builder: (ctx, dataSnapshot) { -// if (dataSnapshot.connectionState == ConnectionState.waiting) { -// return Center(child: CircularProgressIndicator()); -// } else { -// if (dataSnapshot.error != null) { -// // ... -// // Do error handling stuff -// return Center( -// child: Text('An error occurred!'), -// ); -// } else { -// return Consumer( -// builder: (ctx, applyData, child) => ListView.builder( -// itemCount: applyData.applys.length, -// itemBuilder: (ctx, i) => ApplyPost(applyData.applys[i]), -// ), -// ); -// } -// } -// }, -// ), -// ); -// } -// } + @override + Widget build(BuildContext context) { + print('building Applys'); + // final applyData = Provider.of(context); + return Scaffold( + body: FutureBuilder( + // future: Provider.of(context, listen: false).fetchAndSetApplys(), + builder: (ctx, dataSnapshot) { + if (dataSnapshot.connectionState == ConnectionState.waiting) { + return Center(child: CircularProgressIndicator()); + } else { + if (dataSnapshot.error != null) { + // ... + // Do error handling stuff + return Center( + child: Text('An error occurred!'), + ); + } else { + return ListView.builder( + padding: EdgeInsets.all(5), + itemBuilder: (ctx, i) => ApplyPost(), + ); + } + } + }, + ), + ); + } +} diff --git a/lib/src/ui/seeker/screens/jobs_list_screen.dart b/lib/src/ui/seeker/screens/jobs_list_screen.dart index b6ff2c6..b82b4dc 100644 --- a/lib/src/ui/seeker/screens/jobs_list_screen.dart +++ b/lib/src/ui/seeker/screens/jobs_list_screen.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/jobs.dart'; import 'package:space/src/ui/seeker/layout/job_list.dart'; class JobsListScreen extends StatefulWidget { @@ -13,8 +11,8 @@ class _JobsListScreenState extends State { @override Widget build(BuildContext context) { - final jobData = Provider.of(context); - final jobs = jobData.posts; + // final jobData = Provider.of(context); + // final jobs = jobData.posts; return Scaffold( backgroundColor: Colors.transparent, body: _isLoading @@ -22,16 +20,12 @@ class _JobsListScreenState extends State { child: CircularProgressIndicator(), ) : ListView.builder( - itemCount: jobs.length, - itemBuilder: (ctx, i) => ChangeNotifierProvider.value( - // builder: (c) => jobs[i], - value: jobs[i], - child: JobsList( - // jobs[i].id, - // jobs[i].title, - // jobs[i].imageUrl, - ), - ), + padding: EdgeInsets.only(top: 5), + itemBuilder: (ctx, i) => (Column( + children: [ + JobsList(), + ], + )), ), ); } diff --git a/lib/src/ui/seeker/screens/save_screen.dart b/lib/src/ui/seeker/screens/save_screen.dart index a4a867e..2f5a247 100644 --- a/lib/src/ui/seeker/screens/save_screen.dart +++ b/lib/src/ui/seeker/screens/save_screen.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:space/src/core/models/jobs.dart'; import 'package:space/src/ui/seeker/layout/saved_lists.dart'; class SaveListScreen extends StatelessWidget { @@ -11,15 +9,13 @@ class SaveListScreen extends StatelessWidget { @override Widget build(BuildContext context) { - final jobData = Provider.of(context); - final jobs = showSave ? jobData.savePosts : jobData.posts; + // final jobData = Provider.of(context); + // final jobs = showSave ? jobData.savePosts : jobData.posts; return ListView.builder( - padding: const EdgeInsets.all(10.0), - itemCount: jobs.length, - itemBuilder: (ctx, i) => ChangeNotifierProvider.value( - value: jobs[i], - child: SavePosts(), - ), - ); + padding: EdgeInsets.only(top: 5), + // itemCount: jobs.length, + itemBuilder: (ctx, i) => ( + // value: jobs[i], + SavePosts())); } } diff --git a/lib/src/ui/seeker/screens/seeker_tabs.dart b/lib/src/ui/seeker/screens/seeker_tabs.dart index 0ae0734..d8b1282 100644 --- a/lib/src/ui/seeker/screens/seeker_tabs.dart +++ b/lib/src/ui/seeker/screens/seeker_tabs.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:space/src/ui/seeker/layout/apply_post.dart'; import 'package:space/src/ui/seeker/layout/seeker_app_bar.dart'; import 'package:space/src/ui/seeker/widgets/seeker_app_drawer.dart'; @@ -28,7 +27,7 @@ class SeekerTabs extends StatelessWidget { // }, // child: JobsListScreen(), - JobsListScreen(), + ApplysScreen(), SaveListScreen(_showSaves), ], ), diff --git a/lib/src/ui/seeker/widgets/flare_interview_seeker.dart b/lib/src/ui/seeker/widgets/flare_interview_seeker.dart new file mode 100644 index 0000000..5815dca --- /dev/null +++ b/lib/src/ui/seeker/widgets/flare_interview_seeker.dart @@ -0,0 +1,36 @@ +import 'package:flutter/material.dart'; + +class InterviewSeeker extends StatelessWidget { + static const routeName = '/seeker-interview'; + @override + Widget build(BuildContext context) { + return AlertDialog( + backgroundColor: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)), + title: Text( + 'Interview session is done', + textAlign: TextAlign.center, + ), + titleTextStyle: TextStyle( + color: Color(0xff3b3b3b), + fontSize: 15, + ), + actions: [ + Container( + width: 260, + alignment: Alignment.center, + child: FlatButton( + shape: + RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), + onPressed: () {}, + color: Color(0xff65be3e), + child: Text( + 'Home', + style: TextStyle(fontSize: 12, color: Colors.white), + ), + ), + ), + ], + ); + } +} diff --git a/lib/src/ui/settings/about_us.dart b/lib/src/ui/settings/about_us.dart index b14241d..86d99e7 100644 --- a/lib/src/ui/settings/about_us.dart +++ b/lib/src/ui/settings/about_us.dart @@ -1,110 +1,110 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:flutter_svg/svg.dart'; -class AboutUs extends StatefulWidget { - const AboutUs({ Key key, String title }) : super(key: key); + class AboutUs extends StatelessWidget { @override - _AboutUsState createState() => _AboutUsState(); -} - -class _AboutUsState extends State with SingleTickerProviderStateMixin { - - + Widget build(BuildContext context) { TextStyle style2 = TextStyle(fontFamily: 'Cocogoose', fontSize: 20.0); TextStyle style = TextStyle(fontFamily: 'TitilliumWeb', fontSize: 20.0); TextStyle style3 = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0); - - @override - Widget build(BuildContext context) { - - return Container( - width: MediaQuery.of(context).size.width, - height: MediaQuery.of(context).size.height, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage('assets/vector-5.png'), - alignment: AlignmentDirectional.topEnd, - fit: BoxFit.cover + return Stack( + children: [ + SvgPicture.asset( + 'assets/vector-5.svg', + fit: BoxFit.cover, + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + ), + Scaffold( + backgroundColor: Colors.transparent, + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon(FeatherIcons.chevronLeft, + color: Colors.white, size: 16)), + elevation: 10, + backgroundColor: Colors.transparent, + title: Text('Abous Us', + style: style3.copyWith( + color: Color(0xffffffff), + fontSize: 14, + fontWeight: FontWeight.w500, + letterSpacing: 1, + )), ), - ), - child: new Scaffold( - backgroundColor: Colors.transparent, - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context,true); - }, - icon: Icon(FeatherIcons.chevronLeft, color: Colors.white, size: 16)), - elevation: 10, - backgroundColor: Colors.transparent, - title: Text('Abous Us', style: style3.copyWith(color: Color(0xffffffff), - fontSize: 14, fontWeight: FontWeight.w500,letterSpacing: 1,)), - ), - body: Column(children: [ - Container( - child: Stack( - alignment: AlignmentDirectional.center, + body: Column( children: [ - CircleAvatar( - backgroundImage: AssetImage('assets/grunge.png'), - radius: 120, - backgroundColor: Colors.white, - ), Container( - margin: EdgeInsets.only(right: 80), - child: Image.asset('assets/vector-7.png', height: 90), - ), - Container( - margin: EdgeInsets.only(top: 90, right: 20), - child: Image.asset('assets/vector-7.png', height: 90), + child: Stack( + alignment: AlignmentDirectional.center, + children: [ + CircleAvatar( + backgroundImage: AssetImage('assets/grunge.png'), + radius: 100, + backgroundColor: Colors.white, + ), + Container( + margin: EdgeInsets.only(right: 80), + child: Image.asset('assets/vector-7.png', height: 80), + ), + Container( + margin: EdgeInsets.only(top: 90, right: 20), + child: Image.asset('assets/vector-7.png', height: 80), + ), + Container( + margin: EdgeInsets.only(left: 70, top: 60), + child: Image.asset('assets/vector-7.png', height: 80), + ), + ], + ), ), Container( - margin: EdgeInsets.only(left: 70, top: 60), - child: Image.asset('assets/vector-7.png', height: 90), - ), - ], - ), - ) , - Container( - padding: EdgeInsets.symmetric(horizontal: 30), - margin: EdgeInsets.only(top: 5), - child: Column( - children: [ - Text('About Us', - style: style2.copyWith(fontSize: 30, color: Colors.white, fontWeight: FontWeight.bold)), - Text('Dreamjob adalah tempat untuk mewujudkan mimpi kalian semua dimulai dari bekerja. Pekerjaan impian anda bisa saja ada disini. Bisa juga kerjaan biasa yang akan membawa kalian melangkah lebih jauh untuk menggapai mimpi.', - textAlign: TextAlign.center, - style: style.copyWith(fontSize: 12, color: Colors.white)), - Text('Logo astronot melambangkan cita-cita yang terucapkan oleh mayoritas individu semasa kecil. Tidak ada jalan pintas untuk menjadi astronot selain belajar dan kerja keras. Dua simbol bintang dengan ukuran kecil dan besar di logo melambangkan simbol pencapaian dan reward yang melalui progress dari kecil menjadi besar.', - textAlign: TextAlign.center, - style: style.copyWith(fontSize: 12, color: Colors.white)), - Column( - children: [ - Text('So, Dreamers,', - style: style.copyWith(fontSize: 12, color: Colors.white) - ), - Text('"Never stop working and never stop dreaming"', - style: style.copyWith(fontSize: 12, color: Colors.white) - ), - SizedBox( - height: 15, - ), - Text('In DREAMJOB, We Make It Happen!', - style: style.copyWith(fontSize: 12, color: Colors.white) - ), - - + padding: EdgeInsets.symmetric(horizontal: 30), + margin: EdgeInsets.only(top: 5), + child: Column( + children: [ + Text('About Us', + style: style2.copyWith( + fontSize: 30, + color: Colors.white, + fontWeight: FontWeight.bold)), + Text( + 'Dreamjob adalah tempat untuk mewujudkan mimpi kalian semua dimulai dari bekerja. Pekerjaan impian anda bisa saja ada disini. Bisa juga kerjaan biasa yang akan membawa kalian melangkah lebih jauh untuk menggapai mimpi.', + textAlign: TextAlign.center, + style: + style.copyWith(fontSize: 12, color: Colors.white)), + Text( + 'Logo astronot melambangkan cita-cita yang terucapkan oleh mayoritas individu semasa kecil. Tidak ada jalan pintas untuk menjadi astronot selain belajar dan kerja keras. Dua simbol bintang dengan ukuran kecil dan besar di logo melambangkan simbol pencapaian dan reward yang melalui progress dari kecil menjadi besar.', + textAlign: TextAlign.center, + style: + style.copyWith(fontSize: 12, color: Colors.white)), + Column( + children: [ + Text('So, Dreamers,', + style: style.copyWith( + fontSize: 12, color: Colors.white)), + Text('"Never stop working and never stop dreaming"', + style: style.copyWith( + fontSize: 12, color: Colors.white)), + SizedBox( + height: 15, + ), + Text('In DREAMJOB, We Make It Happen!', + style: style.copyWith( + fontSize: 12, color: Colors.white)), + ], + ) ], - ) + ), + ), ], ), ), - ],), - - ), - - + ], ); } -} \ No newline at end of file +} diff --git a/lib/src/ui/settings/setting_payment_method.dart b/lib/src/ui/settings/setting_payment_method.dart index da08bcc..78b1f94 100644 --- a/lib/src/ui/settings/setting_payment_method.dart +++ b/lib/src/ui/settings/setting_payment_method.dart @@ -1,404 +1,548 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; - -void main() => runApp(MyApp()); - -class MyApp extends StatelessWidget { - - @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Slidable Demo', - home: PaymentMethod(title: 'Flutter Slidable Demo'), - ); - } -} - +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; +import 'package:international_phone_input/international_phone_input.dart'; class PaymentMethod extends StatefulWidget { - const PaymentMethod({ Key key, String title }) : super(key: key); @override _PaymentMethodState createState() => _PaymentMethodState(); } -class _PaymentMethodState extends State with SingleTickerProviderStateMixin { - +class _PaymentMethodState extends State + with SingleTickerProviderStateMixin { TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0); bool save = false; - + String phoneNumber; + String phoneIsoCode; final _formKey = GlobalKey(); + + void onPhoneNumberChange( + String number, String internationalizedPhoneNumber, String isoCode) { + setState(() { + phoneNumber = number; + phoneIsoCode = isoCode; + }); + } + @override Widget build(BuildContext context) { return new Scaffold( - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context,true); - }, - icon: Icon(FeatherIcons.chevronLeft, color: Color(0xff2c4057), size: 16)), - elevation: 1, - backgroundColor: Colors.white, - title: Text('Settings', style: style.copyWith(color: Color(0xff2c4057), - fontSize: 14, fontWeight: FontWeight.w500,letterSpacing: 1,)), - ), - - body: Container( - padding: EdgeInsets.only(top: 20, left: 5, right: 15), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - ListTile( - leading: Text('Telkomsel', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b))), - trailing: Image.asset('assets/icon12.png', scale: 1.6), - onTap: (){}, + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon(FeatherIcons.chevronLeft, + color: Color(0xff2c4057), size: 16)), + elevation: 1, + backgroundColor: Colors.white, + title: Text('Settings', + style: style.copyWith( + color: Color(0xff2c4057), + fontSize: 14, + fontWeight: FontWeight.w500, + letterSpacing: 1, + )), ), - Container( - padding: EdgeInsets.only(left: 16, right: 20), - margin: EdgeInsets.only(bottom: 15), - height: 0, - child: Divider( - color: Color(0xffc9c8c8), + body: Container( + padding: EdgeInsets.only(top: 20, left: 5, right: 15), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ListTile( + leading: Text('Telkomsel', + style: + style.copyWith(fontSize: 17, color: Color(0xff3b3b3b))), + trailing: Image.asset('assets/icon12.png', scale: 1.6), + onTap: () {}, ), - ), - Text('Payment Method', style: style.copyWith(fontWeight: FontWeight.bold, color: Color(0xff3b3b3b))), - Text('Choose your payments', style: style.copyWith(fontSize: 12, fontWeight: FontWeight.bold, color: Color(0xff3b3b3b), height: 2)), - ListTile( - leading: Text('Add Card', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b), height: 2)), - trailing: Image.asset('assets/icon11.png', scale: 1.6), - onTap: () { showDialog( - context: context, - builder: (BuildContext context) { - return AlertDialog( - content: Form( - key: _formKey, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text('Add Card', style: style.copyWith(fontSize: 14, fontWeight: FontWeight.bold)), - Text('Card Number', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, height: 2)), - Container( - margin: EdgeInsets.only(top: 5, bottom: 20), - child: TextField( - style: style.copyWith(fontSize: 16, color: Color(0xff8997a7)), - decoration: InputDecoration( - contentPadding: EdgeInsets.all(10), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10.0), - borderSide: BorderSide(color: Colors.transparent, width: 1), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: Color(0xff22c0e8), width: 1), - borderRadius: BorderRadius.circular(10.0), - ), - fillColor: Color(0xffdcdfe3), - filled: true, - ), - ), - ), - Row(children: [ - Flexible( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Exp Dates', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, height: 2)), - Container( - margin: EdgeInsets.only(right: 30, top: 5, bottom: 10), - child: TextField( - style: style.copyWith(fontSize: 16, color: Color(0xff8997a7)), - decoration: InputDecoration( - contentPadding: EdgeInsets.all(10), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10.0), - borderSide: BorderSide(color: Colors.transparent, width: 1), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: Color(0xff22c0e8), width: 1), - borderRadius: BorderRadius.circular(10.0), - ), - fillColor: Color(0xffdcdfe3), - filled: true, - ), - ), - ), - ],), - ), - Flexible( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Security Code', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, height: 2)), - Container( - margin: EdgeInsets.only(right: 30, top: 5, bottom: 10), - child: TextField( - style: style.copyWith(fontSize: 16, color: Color(0xff8997a7)), - decoration: InputDecoration( - focusColor: Colors.yellow, - contentPadding: EdgeInsets.all(10), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10.0), - borderSide: BorderSide(color: Colors.transparent, width: 1), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: Color(0xff22c0e8), width: 1), - borderRadius: BorderRadius.circular(10.0), - ), - fillColor: Color(0xffdcdfe3), - filled: true, - ), - ), - ), - ],), - ), - ],), - Row(children: [ - Checkbox( - checkColor: Color(0xff22c0e8), - activeColor: Colors.white, - value: save, - onChanged: (bool value) { - setState(() { - save = value; - }); - }, - ), - Text('SAVE CARD', style: style.copyWith(fontSize: 12, fontWeight: FontWeight.bold)), - ],), - - Container( - width: 100, - child: RaisedButton( - shape: RoundedRectangleBorder(borderRadius: new BorderRadius.circular(10.0)), - color: Color(0xff22c0e8), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, + Container( + padding: EdgeInsets.only(left: 16, right: 20), + margin: EdgeInsets.only(bottom: 15), + height: 0, + child: Divider( + color: Color(0xffc9c8c8), + ), + ), + Padding( + padding: const EdgeInsets.only(left: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Payment Method', + style: style.copyWith( + fontWeight: FontWeight.bold, + color: Color(0xff3b3b3b))), + Text('Choose your payments', + style: style.copyWith( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xff3b3b3b), + height: 2)), + ]), + ), + ListTile( + leading: Text('Add Card', + style: style.copyWith( + fontSize: 17, color: Color(0xff3b3b3b), height: 2)), + trailing: Image.asset('assets/icon11.png', scale: 1.6), + onTap: () { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + content: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, children: [ - Text('ADD CARD', style: style.copyWith(fontSize: 12, color: Colors.white)), - ],), - onPressed: () { - if (_formKey.currentState.validate()) { - _formKey.currentState.save(); - } - }, + Text('Add Card', + style: style.copyWith( + fontSize: 14, + fontWeight: FontWeight.bold)), + Text('Card Number', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + height: 2)), + Container( + margin: EdgeInsets.only(top: 5, bottom: 20), + child: TextField( + style: style.copyWith( + fontSize: 16, + color: Color(0xff8997a7)), + decoration: InputDecoration( + contentPadding: EdgeInsets.all(10), + enabledBorder: OutlineInputBorder( + borderRadius: + BorderRadius.circular(10.0), + borderSide: BorderSide( + color: Colors.transparent, + width: 1), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Color(0xff22c0e8), + width: 1), + borderRadius: + BorderRadius.circular(10.0), + ), + fillColor: Color(0xffdcdfe3), + filled: true, + ), + ), + ), + Row( + children: [ + Flexible( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text('Exp Dates', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + height: 2)), + Container( + margin: EdgeInsets.only( + right: 30, + top: 5, + bottom: 10), + child: TextField( + style: style.copyWith( + fontSize: 16, + color: Color(0xff8997a7)), + decoration: InputDecoration( + contentPadding: + EdgeInsets.all(10), + enabledBorder: + OutlineInputBorder( + borderRadius: + BorderRadius.circular( + 10.0), + borderSide: BorderSide( + color: + Colors.transparent, + width: 1), + ), + focusedBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: + Color(0xff22c0e8), + width: 1), + borderRadius: + BorderRadius.circular( + 10.0), + ), + fillColor: Color(0xffdcdfe3), + filled: true, + ), + ), + ), + ], + ), + ), + Flexible( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text('Security Code', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + height: 2)), + Container( + margin: EdgeInsets.only( + right: 30, + top: 5, + bottom: 10), + child: TextField( + style: style.copyWith( + fontSize: 16, + color: Color(0xff8997a7)), + decoration: InputDecoration( + focusColor: Colors.yellow, + contentPadding: + EdgeInsets.all(10), + enabledBorder: + OutlineInputBorder( + borderRadius: + BorderRadius.circular( + 10.0), + borderSide: BorderSide( + color: + Colors.transparent, + width: 1), + ), + focusedBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: + Color(0xff22c0e8), + width: 1), + borderRadius: + BorderRadius.circular( + 10.0), + ), + fillColor: Color(0xffdcdfe3), + filled: true, + ), + ), + ), + ], + ), + ), + ], + ), + Row( + children: [ + Checkbox( + checkColor: Color(0xff22c0e8), + activeColor: Colors.white, + value: save, + onChanged: (bool value) { + setState(() { + save = value; + }); + }, + ), + Text('SAVE CARD', + style: style.copyWith( + fontSize: 12, + fontWeight: FontWeight.bold)), + ], + ), + Container( + width: 100, + child: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular(10.0)), + color: Color(0xff22c0e8), + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Text('ADD CARD', + style: style.copyWith( + fontSize: 12, + color: Colors.white)), + ], + ), + onPressed: () { + if (_formKey.currentState.validate()) { + _formKey.currentState.save(); + } + }, + ), + ) + ], + ), ), - ) - ], - ), - ), - - ); - }); - } - ), - Container( - padding: EdgeInsets.only(left: 16, right: 20), - margin: EdgeInsets.only(top: 5), - height: 5, - child: Divider( - color: Color(0xffc9c8c8), + ); + }); + }), + Container( + padding: EdgeInsets.only(left: 16, right: 20), + margin: EdgeInsets.only(top: 5), + height: 5, + child: Divider( + color: Color(0xffc9c8c8), + ), ), - ), - ListTile( - leading: Text('Visa **** **** **** 5967', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b), height: 2)), - trailing: Image.asset('assets/icon14.png', scale: 1.6) - ), - Container( - padding: EdgeInsets.only(left: 16, right: 20), - margin: EdgeInsets.only(top: 5), - height: 5, - child: Divider( - color: Color(0xffc9c8c8), + ListTile( + leading: Text('Visa **** **** **** 5967', + style: style.copyWith( + fontSize: 17, color: Color(0xff3b3b3b), height: 2)), + trailing: Image.asset('assets/icon14.png', scale: 1.6)), + Container( + padding: EdgeInsets.only(left: 16, right: 20), + margin: EdgeInsets.only(top: 5), + height: 5, + child: Divider( + color: Color(0xffc9c8c8), + ), ), - ), - ListTile( - leading: Text('Master **** **** **** 3461', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b), height: 2)), - trailing: Image.asset('assets/icon13.png', scale: 1.6) - ), - Container( - padding: EdgeInsets.only(left: 16, right: 20), - margin: EdgeInsets.only(top: 5), - height: 5, - child: Divider( - color: Color(0xffc9c8c8), + ListTile( + leading: Text('Master **** **** **** 3461', + style: style.copyWith( + fontSize: 17, color: Color(0xff3b3b3b), height: 2)), + trailing: Image.asset('assets/icon13.png', scale: 1.6)), + Container( + padding: EdgeInsets.only(left: 16, right: 20), + margin: EdgeInsets.only(top: 5), + height: 5, + child: Divider( + color: Color(0xffc9c8c8), + ), ), - ), - ListTile( - leading: Text('Add GoPay', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b), height: 2)), - trailing: Image.asset('assets/icon15.png', scale: 1.6), - onTap: () { showDialog( - context: context, - builder: (BuildContext context) { - return AlertDialog( - content: ListView(children: [ - Form( - key: _formKey, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text('Add GoPay', style: style.copyWith(fontSize: 14, fontWeight: FontWeight.bold)), - Text('Phone Number', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, height: 2)), - Row( - children: [ - Flexible( - child: Container( - width: 40, - margin: EdgeInsets.only(top: 5, right: 10), - child: TextField( - style: style.copyWith(fontSize: 16, color: Color(0xff8997a7)), - decoration: InputDecoration( - contentPadding: EdgeInsets.all(10), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10.0), - borderSide: BorderSide(color: Colors.transparent, width: 1), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: Color(0xff22c0e8), width: 1), - borderRadius: BorderRadius.circular(10.0), - ), - fillColor: Color(0xffdcdfe3), - filled: true, - ), - ), - ), - ), - - Flexible( - child: Container( - margin: EdgeInsets.only(top: 5), - child: TextField( - style: style.copyWith(fontSize: 16, color: Color(0xff8997a7)), - decoration: InputDecoration( - focusColor: Colors.yellow, - contentPadding: EdgeInsets.all(10), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10.0), - borderSide: BorderSide(color: Colors.transparent, width: 1), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: Color(0xff22c0e8), width: 1), - borderRadius: BorderRadius.circular(10.0), - ), - fillColor: Color(0xffdcdfe3), - filled: true, - ), - ), - ), - ), - ],), - - - - Row(children: [ - Flexible( - child: Container( - padding: EdgeInsets.only(top: 30, bottom: 10, right: 10), - child: RaisedButton( - shape: RoundedRectangleBorder(borderRadius: new BorderRadius.circular(10.0)), - color: Color(0xff22c0e8), - onPressed: () { - if (_formKey.currentState.validate()) { - _formKey.currentState.save(); - } - }, - child: Text('SEND OTP', style: style.copyWith(fontSize: 10, color: Colors.white)), - ), - ) - ), - Flexible( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('OTP', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, height: 2)), - Container( - margin: EdgeInsets.only(right: 30), - child: TextField( - style: style.copyWith(fontSize: 16, color: Color(0xff8997a7)), - decoration: InputDecoration( - focusColor: Colors.yellow, - contentPadding: EdgeInsets.all(10), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(10.0), - borderSide: BorderSide(color: Colors.transparent, width: 1), - ), - focusedBorder: OutlineInputBorder( - borderSide: BorderSide(color: Color(0xff22c0e8), width: 1), - borderRadius: BorderRadius.circular(10.0), - ), - fillColor: Color(0xffdcdfe3), - filled: true, + ListTile( + leading: Text('Add GoPay', + style: style.copyWith( + fontSize: 17, color: Color(0xff3b3b3b), height: 2)), + trailing: Image.asset('assets/icon15.png', scale: 1.6), + onTap: () { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + content: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text('Add GoPay', + style: style.copyWith( + fontSize: 14, + fontWeight: FontWeight.bold)), + Text('Phone Number', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + height: 2)), + Row( + children: [ + Flexible( + child: Container( + margin: EdgeInsets.only(top: 5), + child: InternationalPhoneInput( + onPhoneNumberChange: + onPhoneNumberChange, + initialPhoneNumber: phoneNumber, + initialSelection: phoneIsoCode, + hintText: 'eg. 80123456789', + ), + ), + ), + // Flexible( + // child: Container( + // margin: EdgeInsets.only(top: 5), + // child: TextField( + // style: style.copyWith( + // fontSize: 16, + // color: Color(0xff8997a7)), + // decoration: InputDecoration( + // focusColor: Colors.yellow, + // contentPadding: + // EdgeInsets.all(10), + // enabledBorder: OutlineInputBorder( + // borderRadius: + // BorderRadius.circular(10.0), + // borderSide: BorderSide( + // color: Colors.transparent, + // width: 1), + // ), + // focusedBorder: OutlineInputBorder( + // borderSide: BorderSide( + // color: Color(0xff22c0e8), + // width: 1), + // borderRadius: + // BorderRadius.circular(10.0), + // ), + // fillColor: Color(0xffdcdfe3), + // filled: true, + // ), + // ), + // ), + // ), + ], + ), + Row( + children: [ + Flexible( + child: Container( + padding: EdgeInsets.only( + top: 30, bottom: 10, right: 10), + child: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular( + 10.0)), + color: Color(0xff22c0e8), + onPressed: () { + if (_formKey.currentState + .validate()) { + _formKey.currentState.save(); + } + }, + child: Text('SEND OTP', + style: style.copyWith( + fontSize: 10, + color: Colors.white)), + ), + )), + Flexible( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text('OTP', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + height: 2)), + Container( + margin: + EdgeInsets.only(right: 30), + child: TextField( + style: style.copyWith( + fontSize: 16, + color: Color(0xff8997a7)), + decoration: InputDecoration( + focusColor: Colors.yellow, + contentPadding: + EdgeInsets.all(10), + enabledBorder: + OutlineInputBorder( + borderRadius: + BorderRadius.circular( + 10.0), + borderSide: BorderSide( + color: + Colors.transparent, + width: 1), + ), + focusedBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: + Color(0xff22c0e8), + width: 1), + borderRadius: + BorderRadius.circular( + 10.0), + ), + fillColor: Color(0xffdcdfe3), + filled: true, + ), + ), + ), + ], + ), + ), + ], + ), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Text('By continuing, you agree to :', + style: style.copyWith( + fontSize: 14, + fontWeight: FontWeight.bold)), + Text('- Dreamjob Terms of Service', + style: style.copyWith( + fontSize: 14, + fontWeight: FontWeight.bold)), + Text('- GoPay Terms of Service', + style: style.copyWith( + fontSize: 14, + fontWeight: FontWeight.bold, + height: 2)), + ], + ), + Container( + width: 400, + padding: + EdgeInsets.symmetric(horizontal: 10), + child: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular(10.0)), + color: Color(0xff22c0e8), + onPressed: () { + if (_formKey.currentState.validate()) { + _formKey.currentState.save(); + } + }, + child: Text('Continue', + style: style.copyWith( + fontSize: 12, + color: Colors.white)), + ), + ) + ], ), - ), ), - ],), - ), - ],), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('By continuing, you agree to :', style: style.copyWith(fontSize: 14, fontWeight: FontWeight.bold)), - Text('- Dreamjob Terms of Service', style: style.copyWith(fontSize: 14, fontWeight: FontWeight.bold)), - Text('- GoPay Terms of Service', style: style.copyWith(fontSize: 14, fontWeight: FontWeight.bold, height: 2)), - ],), - - Container( - width: 400, - padding: EdgeInsets.symmetric(horizontal: 10), - child: RaisedButton( - shape: RoundedRectangleBorder(borderRadius: new BorderRadius.circular(10.0)), - color: Color(0xff22c0e8), - onPressed: () { - if (_formKey.currentState.validate()) { - _formKey.currentState.save(); - } - }, - child: Text('Continue', style: style.copyWith(fontSize: 12, color: Colors.white)), - ), - ) - ], - ), - ), - ], + ); + }); + }), + Container( + padding: EdgeInsets.only(left: 16, right: 20), + margin: EdgeInsets.only(top: 5), + height: 5, + child: Divider( + color: Color(0xffc9c8c8), + ), ), - - ); - }); - } - ), - Container( - padding: EdgeInsets.only(left: 16, right: 20), - margin: EdgeInsets.only(top: 5), - height: 5, - child: Divider( - color: Color(0xffc9c8c8), + ListTile( + leading: Text('Add OVO', + style: style.copyWith( + fontSize: 17, color: Color(0xff3b3b3b), height: 2)), + trailing: CircleAvatar( + backgroundColor: Colors.black, + radius: 11, + child: Image.asset( + 'assets/icon16.png', + scale: 1.6, + )), ), - ), - ListTile( - leading: Text('Add OVO', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b), height: 2)), - trailing: CircleAvatar( - backgroundColor: Colors.black, - radius: 11, - child: Image.asset('assets/icon16.png', scale: 1.6,) - ), - ), - Container( - padding: EdgeInsets.only(left: 16, right: 20), - margin: EdgeInsets.only(top: 5), - height: 5, - child: Divider( - color: Color(0xffc9c8c8), + Container( + padding: EdgeInsets.only(left: 16, right: 20), + margin: EdgeInsets.only(top: 5), + height: 5, + child: Divider( + color: Color(0xffc9c8c8), + ), ), - ), - ], - ), - ) - - - ); - - + ], + ), + )); } - - -} \ No newline at end of file +} diff --git a/lib/src/ui/settings/setting_ui_help.dart b/lib/src/ui/settings/setting_ui_help.dart index b09e955..c206808 100644 --- a/lib/src/ui/settings/setting_ui_help.dart +++ b/lib/src/ui/settings/setting_ui_help.dart @@ -1,97 +1,165 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; +import 'package:material_design_icons_flutter/material_design_icons_flutter.dart'; class SettingUiHelp extends StatefulWidget { - const SettingUiHelp({ Key key, String title }) : super(key: key); + const SettingUiHelp({Key key, String title}) : super(key: key); @override _SettingUiHelpState createState() => _SettingUiHelpState(); } -class _SettingUiHelpState extends State with SingleTickerProviderStateMixin { - +class _SettingUiHelpState extends State + with SingleTickerProviderStateMixin { TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 16.0); @override Widget build(BuildContext context) { return new Scaffold( - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context,true); - }, - icon: Icon(FeatherIcons.chevronLeft, color: Color(0xff2c4057), size: 14)), - elevation: 1, - backgroundColor: Colors.white, - title: Text('Help', style: style.copyWith(color: Color(0xff2c4057), - fontSize: 12, fontWeight: FontWeight.w500,letterSpacing: 1,)), - ), - - body: Container( - height: MediaQuery.of(context).size.height, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.all(10), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Help', style: style.copyWith(fontWeight: FontWeight.bold, color: Color(0xff3b3b3b), fontSize: 16)), - Text('Get in touch', style: style.copyWith(fontSize: 12, color: Color(0xff3b3b3b))), - ],), - ), - Container( - color: Color(0xffdedede), - height: 250, + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon(FeatherIcons.chevronLeft, + color: Color(0xff2c4057), size: 14)), + elevation: 1, + backgroundColor: Colors.white, + title: Text('Help', + style: style.copyWith( + color: Color(0xff2c4057), + fontSize: 12, + fontWeight: FontWeight.w500, + letterSpacing: 1, + )), ), - - Container( - margin: EdgeInsets.all(10), + body: Container( + height: MediaQuery.of(context).size.height, child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - SizedBox( - width: 120, - child: Image.asset('assets/logo_vertical.png',) - ), - - Container( - margin: EdgeInsets.only(top: 15), - height: 120, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row(children: [ - Icon(FeatherIcons.mapPin, size: 12, color: Color(0xff010101)), - Text(' PELNI Tower, 2nd Floor, Jl. Sultan Abdurahman no 123,', - style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, color: Color(0xff010101))), - ],), + crossAxisAlignment: CrossAxisAlignment.start, + children: [ Padding( - padding: EdgeInsets.only(left: 18), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Pontianak West Borneo, Indonesia', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, color: Color(0xff010101))), - Text('LogoName.id@gmail.com', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, color: Color(0xff010101), height: 2)), - Text('LogoName Indonesia', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, color: Color(0xff010101), height: 2)), - Text('LogoName.id', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, color: Color(0xff010101), height: 2)), - Text('+62 812 3456 7890', style: style.copyWith(fontSize: 11, fontWeight: FontWeight.bold, color: Color(0xff010101), height: 2)), - ],), + padding: EdgeInsets.all(10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Help', + style: style.copyWith( + fontWeight: FontWeight.bold, + color: Color(0xff3b3b3b), + fontSize: 16)), + Text('Get in touch', + style: style.copyWith( + fontSize: 12, color: Color(0xff3b3b3b))), + ], + ), ), - ],) - ), - - - - ],), - - - ), - ], - ), - ) -); - + Container( + color: Color(0xffdedede), + height: 200, + ), + Container( + margin: EdgeInsets.all(10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 120, + child: Image.asset( + 'assets/logo_vertical.png', + )), + Container( + margin: EdgeInsets.only(top: 15), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon(MdiIcons.mapMarkerOutline, + size: 18, color: Color(0xff010101)), + Text( + ' PELNI Tower, 2nd Floor, Jl. Sultan Abdurahman no 123,', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + color: Color(0xff010101), + ), + ), + ], + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 24.0), + child: Text( + 'Pontianak West Borneo, Indonesia', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + color: Color(0xff010101))), + ), + Row( + children: [ + Icon(MdiIcons.emailOutline, + size: 18, + ), + Text(' mail@LogoName.com', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + color: Color(0xff010101), + height: 2)), + ], + ), + Row( + children: [ + Icon(MdiIcons.facebookBox, + size: 18, + ), + Text(' LogoName Indonesia', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + color: Color(0xff010101), + height: 2)), + ], + ), + Row( + children: [ + Icon(MdiIcons.instagram, + size: 18, + ), + Text(' LogoName Indonesia', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + color: Color(0xff010101), + height: 2)), + ], + ), + Row( + children: [ + Icon(MdiIcons.whatsapp, + size: 18, + ), + Text(' +62 812 3456 7890', + style: style.copyWith( + fontSize: 11, + fontWeight: FontWeight.bold, + color: Color(0xff010101), + height: 2)), + ], + ), + ], + ), + ], + )), + ], + ), + ), + ], + ), + )); } -} \ No newline at end of file +} diff --git a/lib/src/ui/settings/setting_ui_payment.dart b/lib/src/ui/settings/setting_ui_payment.dart index f460278..89c86b8 100644 --- a/lib/src/ui/settings/setting_ui_payment.dart +++ b/lib/src/ui/settings/setting_ui_payment.dart @@ -1,80 +1,106 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; import 'package:space/src/ui/settings/setting_payment_method.dart'; + class SettingUIPayment extends StatefulWidget { - const SettingUIPayment({ Key key, String title }) : super(key: key); + const SettingUIPayment({Key key, String title}) : super(key: key); @override _SettingUIPaymentState createState() => _SettingUIPaymentState(); } -class _SettingUIPaymentState extends State with SingleTickerProviderStateMixin { - +class _SettingUIPaymentState extends State + with SingleTickerProviderStateMixin { TextStyle style = TextStyle(fontFamily: 'VarelaRound', fontSize: 20.0); @override Widget build(BuildContext context) { return new Scaffold( - appBar: AppBar( - automaticallyImplyLeading: true, - leading: IconButton( - onPressed: () { - Navigator.pop(context,true); - }, - icon: Icon(FeatherIcons.chevronLeft, color: Color(0xff2c4057), size: 16)), - elevation: 1, - backgroundColor: Colors.white, - title: Text('Settings', style: style.copyWith(color: Color(0xff2c4057), - fontSize: 14, fontWeight: FontWeight.w500,letterSpacing: 1,)), - ), - - body: Container( - padding: EdgeInsets.only(top: 20, left: 20, right: 30), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Settings', style: style.copyWith(fontWeight: FontWeight.bold, color: Color(0xff3b3b3b))), - Text('Set your payment options', style: style.copyWith(fontSize: 12, fontWeight: FontWeight.bold, color: Color(0xff3b3b3b), height: 2)), - MaterialButton( - onPressed: () { Navigator.push( - context, - MaterialPageRoute( - builder: (BuildContext context) => new PaymentMethod())); - }, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text('Payment method', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b), height: 3)), - Image.asset('assets/icon10.png', scale: 1.6) - ],)), - Container( - height: 20, - child: Divider( - color: Color(0xffc9c8c8), + appBar: AppBar( + automaticallyImplyLeading: true, + leading: IconButton( + onPressed: () { + Navigator.pop(context, true); + }, + icon: Icon(FeatherIcons.chevronLeft, + color: Color(0xff2c4057), size: 16)), + elevation: 1, + backgroundColor: Colors.white, + title: Text('Settings', + style: style.copyWith( + color: Color(0xff2c4057), + fontSize: 14, + fontWeight: FontWeight.w500, + letterSpacing: 1, + )), + ), + body: Container( + padding: EdgeInsets.only(top: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only(left: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('Settings', + style: style.copyWith( + fontWeight: FontWeight.bold, + color: Color(0xff3b3b3b))), + Text('Set your payment options', + style: style.copyWith( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xff3b3b3b), + height: 2)), + ]), + ), + ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (BuildContext context) => + new PaymentMethod())); + }, + title: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Payment method', + style: style.copyWith( + fontSize: 17, + color: Color(0xff3b3b3b), + height: 3)), + Image.asset('assets/icon10.png', scale: 1.6) + ], + )), + Container( + height: 20, + child: Divider( + color: Color(0xffc9c8c8), + ), ), - ), - MaterialButton( - onPressed: (){}, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text('Subscribes', style: style.copyWith(fontSize: 17, color: Color(0xff3b3b3b), height: 2)), - Image.asset('assets/icon9.png', scale: 1.6) - ],)), - Container( - height: 20, - child: Divider( - color: Color(0xffc9c8c8), + ListTile( + onTap: () {}, + title: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Subscribes', + style: style.copyWith( + fontSize: 17, + color: Color(0xff3b3b3b), + height: 2)), + Image.asset('assets/icon9.png', scale: 1.6) + ], + )), + Container( + height: 20, + child: Divider( + color: Color(0xffc9c8c8), + ), ), - ), - ], - ), - ) - - - ); - - + ], + ), + )); } - - -} \ No newline at end of file +} diff --git a/lib/src/ui/settings/settings_notification.dart b/lib/src/ui/settings/settings_notification.dart index 1b2e31c..56ff174 100644 --- a/lib/src/ui/settings/settings_notification.dart +++ b/lib/src/ui/settings/settings_notification.dart @@ -1,33 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; -void main() { - runApp(MaterialApp( - initialRoute: '/', - routes: { - '/': (context) => SettingNotification(), - }, - )); -} - -class MyApp extends StatelessWidget { - - @override - Widget build(BuildContext context) { - return MaterialApp( - debugShowCheckedModeBanner: false, - theme: ThemeData( - brightness: Brightness.light, - primaryColor: Colors.black, - scaffoldBackgroundColor: Colors.white, - ), - home: const SettingNotification(), -); - } -} - - class SettingNotification extends StatefulWidget { const SettingNotification({ Key key, String title }) : super(key: key); @override diff --git a/lib/src/ui/settings/settings_ui_invite_friends.dart b/lib/src/ui/settings/settings_ui_invite_friends.dart index e2f0480..e96b2c6 100644 --- a/lib/src/ui/settings/settings_ui_invite_friends.dart +++ b/lib/src/ui/settings/settings_ui_invite_friends.dart @@ -1,40 +1,9 @@ import 'package:flutter/material.dart'; import 'package:feather_icons_flutter/feather_icons_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:flutter/services.dart'; - -void main() { - runApp(MyApp()); - - SystemChrome.setSystemUIOverlayStyle( - const SystemUiOverlayStyle( - statusBarColor: Colors.transparent, - systemNavigationBarColor: Colors.white, - systemNavigationBarDividerColor: Colors.black, - systemNavigationBarIconBrightness: Brightness.dark, - ), - ); -} - -class MyApp extends StatelessWidget { - - @override - Widget build(BuildContext context) { - return MaterialApp( - debugShowCheckedModeBanner: false, - theme: ThemeData( - brightness: Brightness.light, - primaryColor: Colors.black, - scaffoldBackgroundColor: Colors.black, - ), - home: const UiInviteFriends(), -); - } -} class UiInviteFriends extends StatefulWidget { - const UiInviteFriends({ Key key, String title }) : super(key: key); @override _UiInviteFriendsState createState() => _UiInviteFriendsState(); } diff --git a/pubspec.lock b/pubspec.lock index 1f9b96e..817d450 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,13 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "0.36.4" archive: dependency: transitive description: @@ -92,6 +99,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.3" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.1" cupertino_icons: dependency: "direct main" description: @@ -207,13 +221,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "8.5.0" + front_end: + dependency: transitive + description: + name: front_end + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.19" giffy_dialog: dependency: "direct main" description: name: giffy_dialog url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.4.0" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" gradient_app_bar: dependency: "direct main" description: @@ -221,6 +249,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.3" + html: + dependency: transitive + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.14.0+3" http: dependency: "direct main" description: @@ -228,6 +263,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.0+2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" http_parser: dependency: transitive description: @@ -242,6 +284,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.4" + image_picker_saver: + dependency: "direct main" + description: + name: image_picker_saver + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" + international_phone_input: + dependency: "direct main" + description: + name: international_phone_input + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" intl: dependency: "direct main" description: @@ -256,6 +312,41 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.8.0" + io: + dependency: transitive + description: + name: io + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.3" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.1+1" + json_rpc_2: + dependency: transitive + description: + name: json_rpc_2 + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + kernel: + dependency: transitive + description: + name: kernel + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.19" + libphonenumber: + dependency: transitive + description: + name: libphonenumber + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" line_icons: dependency: "direct main" description: @@ -305,6 +396,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.7" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.6+3" morpheus: dependency: "direct main" description: @@ -312,6 +410,34 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.2.2+1" + multi_server_socket: + dependency: transitive + description: + name: multi_server_socket + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + node_interop: + dependency: transitive + description: + name: node_interop + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + node_io: + dependency: transitive + description: + name: node_io + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1+2" + node_preamble: + dependency: transitive + description: + name: node_preamble + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.8" outline_material_icons: dependency: "direct main" description: @@ -319,6 +445,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.0" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" package_info: dependency: transitive description: @@ -326,6 +459,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.4.0+7" + package_resolver: + dependency: transitive + description: + name: package_resolver + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.10" parse_server_sdk: dependency: "direct main" description: @@ -382,6 +522,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.2.1" + pool: + dependency: transitive + description: + name: pool + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0" provider: dependency: "direct main" description: @@ -389,6 +536,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.0" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.2" quiver: dependency: transitive description: @@ -417,11 +571,53 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.5.3+5" + shelf: + dependency: transitive + description: + name: shelf + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.5" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + shelf_static: + dependency: transitive + description: + name: shelf_static + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.8" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.3" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.5" + source_maps: + dependency: transitive + description: + name: source_maps + url: "https://pub.dartlang.org" + source: hosted + version: "0.10.8" source_span: dependency: transitive description: @@ -471,6 +667,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.0" + test: + dependency: transitive + description: + name: test + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.3" test_api: dependency: transitive description: @@ -478,6 +681,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.2.5" + test_core: + dependency: transitive + description: + name: test_core + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.5" typed_data: dependency: transitive description: @@ -499,6 +709,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.8" + vm_service_client: + dependency: transitive + description: + name: vm_service_client + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.6+3" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.7+12" web_socket_channel: dependency: transitive description: @@ -520,6 +744,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.2" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" sdks: dart: ">=2.5.0 <3.0.0" flutter: ">=1.9.1 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 3c1730b..c317b09 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 flare_flutter: ^1.3.3 - giffy_dialog: ^1.3.0 + giffy_dialog: ^1.4.0 dropdown_formfield: ^0.1.0 flutter_screenutil: ^0.6.0 carousel_slider: ^1.3.0 @@ -44,6 +44,8 @@ dependencies: intro_views_flutter: ^2.8.0 circular_bottom_navigation: ^1.0.1 flutter_svg: ^0.14.2 + image_picker_saver: ^0.3.0 + international_phone_input: ^1.0.2 dev_dependencies: flutter_test: @@ -108,9 +110,12 @@ flutter: - assets/icon14.png - assets/icon15.png - assets/icon16.png + - assets/icon17.png + - assets/icon18.png + - assets/icon19.png + - assets/icon20.png + - assets/icon21.png - assets/vector-4.png - - assets/vector-5.svg - - assets/vector-5.png - assets/vector-6.png - assets/vector-7.png - assets/vector-8.png @@ -125,14 +130,7 @@ flutter: - assets/grunge.png - assets/background-2.png - assets/up2u.png - - assets/logo-hitam.png - assets/gmail.png - - assets/seeker-1.png - - assets/seeker-2.png - - assets/seeker-3.png - - assets/employer-1.png - - assets/employer-2.png - - assets/employer-3.png - assets/Corporate.png - assets/DKV.png - assets/Fashion.png @@ -159,8 +157,16 @@ flutter: - assets/Transport.svg - assets/f&b.svg - assets/dream-cast.svg - - assets/ketapang.svg - assets/driver.svg + - assets/ktp.jpg + - assets/seeker-1.svg + - assets/seeker-2.svg + - assets/seeker-3.svg + - assets/employer-1.svg + - assets/employer-2.svg + - assets/employer-3.svg + - assets/vector-5.svg + - assets/grunge.svg # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware.