Commit 7d46175c authored by rizky ramadhan's avatar rizky ramadhan
parents a0f80855 17566d6d
...@@ -42,10 +42,10 @@ AppBar AppbarHomeLarge(Size screenSize, BuildContext context, Color home, ...@@ -42,10 +42,10 @@ AppBar AppbarHomeLarge(Size screenSize, BuildContext context, Color home,
const Spacer( const Spacer(
flex: 1, flex: 1,
), ),
ButtonAppbar_baru(arah: '/career', menu: 'Career', warna: career), // ButtonAppbar_baru(arah: '/career', menu: 'Career', warna: career),
const Spacer( // const Spacer(
flex: 1, // flex: 1,
), // ),
ButtonAppbar_baru( ButtonAppbar_baru(
arah: '/contact', menu: 'Contact Us', warna: contactUs), arah: '/contact', menu: 'Contact Us', warna: contactUs),
const Spacer( const Spacer(
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:medapp_eksad/appbar/appbar_home.dart'; import 'package:medapp_eksad/appbar/appbar_home.dart';
import 'package:medapp_eksad/screen/footer.dart'; import 'package:medapp_eksad/screen/footer.dart';
import 'package:medapp_eksad/screen/home/home1.dart';
import 'package:medapp_eksad/screen/home/home2.dart'; import 'package:medapp_eksad/screen/home/home2.dart';
import 'package:medapp_eksad/screen/home/home3.dart'; import 'package:medapp_eksad/screen/home/home3.dart';
import 'package:medapp_eksad/widget/drawer.dart';
import 'package:medapp_eksad/widget/responsive.dart'; import 'package:medapp_eksad/widget/responsive.dart';
import 'package:medapp_eksad/widget/whatsapp.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
void setPageTitle(String title, BuildContext context) { void setPageTitle(String title, BuildContext context) {
...@@ -28,12 +32,15 @@ class _HomePageState extends State<HomePage> { ...@@ -28,12 +32,15 @@ class _HomePageState extends State<HomePage> {
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
floatingActionButton: WAChat(),
appBar: ResponsiveWidget.isSmallScreen(context) appBar: ResponsiveWidget.isSmallScreen(context)
? AppBarKecil() ? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.blue, Colors.blue, : AppbarHomeLarge(screenSize, context, Colors.blue, Colors.blue,
Colors.black, Colors.black, Colors.black), Colors.black, Colors.black, Colors.black),
drawer: DrawerMeddApp(),
body: ListView( body: ListView(
children: [ children: [
Home1(),
Home2(), Home2(),
Home3(), Home3(),
Footer(), Footer(),
......
...@@ -18,6 +18,7 @@ class MyApp extends StatelessWidget { ...@@ -18,6 +18,7 @@ class MyApp extends StatelessWidget {
initialRoute: '/', initialRoute: '/',
routes: { routes: {
'/': (context) => const HomePage(), '/': (context) => const HomePage(),
'/about': (context) => const HomePage(),
'/solutions': (context) => const Solutions(), '/solutions': (context) => const Solutions(),
'/contact': (context) => const ContactUs(), '/contact': (context) => const ContactUs(),
}, },
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:medapp_eksad/appbar/appbar_home.dart'; import 'package:medapp_eksad/appbar/appbar_home.dart';
import 'package:medapp_eksad/screen_small/small_contact/small_contact_us1.dart';
import 'package:medapp_eksad/screen_small/small_contact/small_contact_us2.dart';
import 'package:medapp_eksad/screen_small/small_footer.dart';
import 'package:medapp_eksad/screen/contact_us/contact_us1.dart'; import 'package:medapp_eksad/screen/contact_us/contact_us1.dart';
import 'package:medapp_eksad/screen/contact_us/contact_us2.dart'; import 'package:medapp_eksad/screen/contact_us/contact_us2.dart';
import 'package:medapp_eksad/screen/footer.dart'; import 'package:medapp_eksad/screen/footer.dart';
import 'package:medapp_eksad/widget/drawer.dart';
import 'package:medapp_eksad/widget/responsive.dart'; import 'package:medapp_eksad/widget/responsive.dart';
import 'package:medapp_eksad/widget/whatsapp.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
void setPageTitle(String title, BuildContext context) { void setPageTitle(String title, BuildContext context) {
...@@ -27,18 +32,29 @@ class _ContactUsState extends State<ContactUs> { ...@@ -27,18 +32,29 @@ class _ContactUsState extends State<ContactUs> {
setPageTitle('Contact Us', context); setPageTitle('Contact Us', context);
var screenSize = MediaQuery.of(context).size; var screenSize = MediaQuery.of(context).size;
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
appBar: ResponsiveWidget.isSmallScreen(context) appBar: ResponsiveWidget.isSmallScreen(context)
? AppBarKecil() ? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.black, Colors.black, : AppbarHomeLarge(screenSize, context, Colors.black, Colors.black,
Colors.black, Colors.black, Colors.blue), Colors.black, Colors.black, Colors.blue),
body: ListView( drawer: DrawerMeddApp(),
children: [ body: ResponsiveWidget.isSmallScreen(context)
const ContactUs1(), ? ListView(
ContactUs2(), children: [
const Footer(), const ContactUs1_small(),
], ContactUs2_small(),
), const FooterSmall(),
],
)
: ListView(
children: [
ContactUs1(),
ContactUs2(),
Footer(),
],
),
floatingActionButtonLocation: FloatingActionButtonLocation.endFloat,
floatingActionButton: WAChat()
); );
} }
......
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:medapp_eksad/widget/button_color.dart';
import 'package:show_up_animation/show_up_animation.dart';
class Home1 extends StatelessWidget {
const Home1({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Stack(
children: [
Container(
width: screenSize.width,
height: screenSize.height * 0.7,
decoration: BoxDecoration(
color: Colors.transparent,
image: DecorationImage(
image: AssetImage(
"assets/logo/homepage.png",
),
fit: BoxFit.cover),
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.7,
decoration: BoxDecoration(
color: Colors.blue,
gradient: LinearGradient(
colors: [
Colors.blue.withOpacity(0.0),
Colors.blue,
],
stops: [0.0, 1.0],
),
),
),
Container(
// color: Colors.red,
width: screenSize.width,
height: screenSize.height * 0.6,
padding: EdgeInsets.only(
left: screenSize.width * 0.4, top: screenSize.height * 0.2),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
// color: Colors.blue,
width: screenSize.width * 0.25,
height: screenSize.height * 0.1,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
direction: Direction.horizontal,
child: Text(
'Engage With Your Patients More Efficiently',
textAlign: TextAlign.center,
style: GoogleFonts.poppins(
fontSize: 26,
fontWeight: FontWeight.bold,
color: Colors.white),
// overflow: TextOverflow.ellipsis,
),
),
),
Container(
// color: Colors.green,
// padding: EdgeInsets.only(top: 1),
width: screenSize.width * 0.3,
height: screenSize.height * 0.17,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.bounceIn,
direction: Direction.horizontal,
// offset: -0.2,
child: Text(
'Welcome to healthcare’s most powerful collaboration suite. '
'Enhance clinical workflows, speed decisions, and improve'
' patient outcomes, safely and securely.',
textAlign: TextAlign.center,
style: GoogleFonts.poppins(
fontSize: 20,
// letterSpacing: 1.3,
// height: 1.5,
fontWeight: FontWeight.bold,
color: Colors.white),
),
),
),
Container(
width: screenSize.width * 0.15,
height: screenSize.height * 0.07,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.bounceIn,
direction: Direction.horizontal,
offset: -0.2,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/contact');
},
style: DefaultColors(),
child: const Text(
'TALK WITH EXPERT',
style: TextStyle(
fontSize: 17,
letterSpacing: 2,
color: Colors.white,
fontWeight: FontWeight.w500),
textAlign: TextAlign.center,
),
),
),
)
],
),
),
],
);
}
}
...@@ -11,7 +11,7 @@ class Home2 extends StatelessWidget { ...@@ -11,7 +11,7 @@ class Home2 extends StatelessWidget {
return Container( return Container(
width: screenSize.width * 0.5, width: screenSize.width * 0.5,
color: const Color.fromARGB(255, 227, 235, 253), color: const Color.fromARGB(255, 227, 235, 253),
height: 600, height: screenSize.height,
padding: EdgeInsets.only( padding: EdgeInsets.only(
left: screenSize.width * 0.10, left: screenSize.width * 0.10,
right: screenSize.width * 0.10, right: screenSize.width * 0.10,
...@@ -35,6 +35,7 @@ class Home2 extends StatelessWidget { ...@@ -35,6 +35,7 @@ class Home2 extends StatelessWidget {
), ),
Container( Container(
width: screenSize.width, width: screenSize.width,
height: 100,
child: Text( child: Text(
'We understand that the global healthcare industry is experiencing several challenges, thus requiring a company`s ability to respond to these challenges quickly and innovatively, ' 'We understand that the global healthcare industry is experiencing several challenges, thus requiring a company`s ability to respond to these challenges quickly and innovatively, '
'and seize opportunities that arise will be critical to ensuring the company`s sustainability in the future.', 'and seize opportunities that arise will be critical to ensuring the company`s sustainability in the future.',
...@@ -42,10 +43,12 @@ class Home2 extends StatelessWidget { ...@@ -42,10 +43,12 @@ class Home2 extends StatelessWidget {
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
fontSize: 18, fontSize: 18,
letterSpacing: 1.1, letterSpacing: 1.1,
height: 1.3, height: 1.8,
fontWeight: FontWeight.w500)), fontWeight: FontWeight.w500)),
), ),
Spacer(), Spacer(
flex: 2,
),
Column( Column(
// mainAxisAlignment: MainAxisAlignment.start, // mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
...@@ -70,8 +73,12 @@ class Home2 extends StatelessWidget { ...@@ -70,8 +73,12 @@ class Home2 extends StatelessWidget {
), ),
], ],
), ),
Spacer(
flex: 2,
),
Container( Container(
width: screenSize.width, width: screenSize.width,
height: 100,
child: Text( child: Text(
'Too much admin. Longer work hours. Less time spent with patients.' 'Too much admin. Longer work hours. Less time spent with patients.'
'You’re not alone in the stress and frustration these cause. At MedApps, ' 'You’re not alone in the stress and frustration these cause. At MedApps, '
...@@ -81,12 +88,15 @@ class Home2 extends StatelessWidget { ...@@ -81,12 +88,15 @@ class Home2 extends StatelessWidget {
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
fontSize: 18, fontSize: 18,
letterSpacing: 1.1, letterSpacing: 1.1,
height: 1.3, height: 1.8,
fontWeight: FontWeight.w500)), fontWeight: FontWeight.w500)),
), ),
Spacer(), Spacer(
flex:2,
),
Container( Container(
width: screenSize.width, width: screenSize.width,
height: 100,
child: Text( child: Text(
'MedApps combines practice management and clinical workflows into one seamless, modern interface. ' 'MedApps combines practice management and clinical workflows into one seamless, modern interface. '
'Manage all patient interactions securely on the go, or in your practice.' 'Manage all patient interactions securely on the go, or in your practice.'
...@@ -95,7 +105,7 @@ class Home2 extends StatelessWidget { ...@@ -95,7 +105,7 @@ class Home2 extends StatelessWidget {
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
fontSize: 18, fontSize: 18,
letterSpacing: 1.1, letterSpacing: 1.1,
height: 1.3, height: 1.8,
fontWeight: FontWeight.w500)), fontWeight: FontWeight.w500)),
), ),
Spacer( Spacer(
......
...@@ -21,7 +21,7 @@ class _Home3State extends State<Home3> { ...@@ -21,7 +21,7 @@ class _Home3State extends State<Home3> {
child: Column( child: Column(
children: [ children: [
const SizedBox( const SizedBox(
height: 30, height: 40,
), ),
Text("Why MedApps ?", Text("Why MedApps ?",
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
...@@ -216,7 +216,7 @@ class _Home3State extends State<Home3> { ...@@ -216,7 +216,7 @@ class _Home3State extends State<Home3> {
Container( Container(
padding: const EdgeInsets.only(top: 10), padding: const EdgeInsets.only(top: 10),
width: 220, width: 220,
height: screenSize.height * 0.55, height: screenSize.height * 0.45,
child: ShowUpAnimation( child: ShowUpAnimation(
delayStart: const Duration(seconds: 1), delayStart: const Duration(seconds: 1),
curve: Curves.decelerate, curve: Curves.decelerate,
...@@ -275,7 +275,7 @@ class _Home3State extends State<Home3> { ...@@ -275,7 +275,7 @@ class _Home3State extends State<Home3> {
Container( Container(
padding: const EdgeInsets.only(top: 10), padding: const EdgeInsets.only(top: 10),
width: 220, width: 220,
height: screenSize.height * 0.55, height: screenSize.height * 0.45,
child: ShowUpAnimation( child: ShowUpAnimation(
delayStart: const Duration(seconds: 1), delayStart: const Duration(seconds: 1),
curve: Curves.decelerate, curve: Curves.decelerate,
...@@ -334,7 +334,7 @@ class _Home3State extends State<Home3> { ...@@ -334,7 +334,7 @@ class _Home3State extends State<Home3> {
Container( Container(
padding: const EdgeInsets.only(top: 10), padding: const EdgeInsets.only(top: 10),
width: 220, width: 220,
height: screenSize.height * 0.55, height: screenSize.height * 0.45,
child: ShowUpAnimation( child: ShowUpAnimation(
delayStart: const Duration(seconds: 1), delayStart: const Duration(seconds: 1),
curve: Curves.decelerate, curve: Curves.decelerate,
......
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
class ContactUs1_small extends StatefulWidget {
const ContactUs1_small({Key? key}) : super(key: key);
@override
State<ContactUs1_small> createState() => _ContactUsState();
}
class _ContactUsState extends State<ContactUs1_small> {
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Stack(
children: [
Container(
width: screenSize.width,
height: screenSize.height * 0.42,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage(
"assets/images/contactus1.jpg",
),
alignment: Alignment.center,
fit: BoxFit.cover)),
),
Container(
width: screenSize.width * 0.5,
height: screenSize.height * 0.34,
padding: EdgeInsets.only(
right: screenSize.width * 0.30, left: screenSize.height * 0.06),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text(
'Contact Us',
style: GoogleFonts.poppins(
fontSize: 37,
fontWeight: FontWeight.bold,
color: Colors.white),
overflow: TextOverflow.ellipsis,
),
],
),
),
],
);
}
}
This diff is collapsed.
This diff is collapsed.
import 'package:flutter/material.dart';
class DrawerMeddApp extends StatelessWidget {
const DrawerMeddApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Drawer(
// backgroundColor: Color.fromARGB(255, 76, 154, 231),
width: 200,
child: Container(
decoration: BoxDecoration(
color: Colors.blue,
gradient: LinearGradient(
colors: [
Colors.blue,
Colors.blue.withOpacity(0.0),
],
stops: [0.0, 1.0],
),
),
child: Column(
children: [
SizedBox(height: 50,),
ListTile(
leading: Icon(Icons.home),
title: Text('Home',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () => Navigator.pushNamed(context, '/') ,
),
ListTile(
leading: Icon(Icons.people),
title: Text('About Us',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () =>Navigator.pushNamed(context, '/about') ,
),
ListTile(
leading: Icon(Icons.settings_applications),
title: Text('Our Solution',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () =>Navigator.pushNamed(context, '/solutions') ,
),
// ListTile(
// leading: Icon(Icons.event_note),
// title: Text('Career'),
// onTap: () => Navigator.pushNamed(context, '/career') ,
// ),
ListTile(
leading: Icon(Icons.contact_phone),
title: Text('Contact Us',style: TextStyle(fontWeight: FontWeight.w500),),
onTap: () => Navigator.pushNamed(context, '/contact') ,
),
],
),
),
);
}
}
...@@ -12,18 +12,18 @@ class ResponsiveWidget extends StatelessWidget { ...@@ -12,18 +12,18 @@ class ResponsiveWidget extends StatelessWidget {
}) : super(key: key); }) : super(key: key);
static bool isSmallScreen(BuildContext context) { static bool isSmallScreen(BuildContext context) {
return MediaQuery.of(context).size.width <= 1200; return MediaQuery.of(context).size.width <= 1050;
} }
static bool isLargeScreen(BuildContext context) { static bool isLargeScreen(BuildContext context) {
return MediaQuery.of(context).size.width > 1200; return MediaQuery.of(context).size.width > 1050;
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return LayoutBuilder( return LayoutBuilder(
builder: (context, constraints) { builder: (context, constraints) {
if (constraints.maxWidth > 1200) { if (constraints.maxWidth > 1050) {
return largeScreen; return largeScreen;
} else { } else {
return smallScreen; return smallScreen;
......
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:spring/spring.dart';
class WAChat extends StatelessWidget {
WAChat({Key? key}) : super(key: key);
void launchWhatsApp({
required final int phone,
required String message,
}) async {
String url() {
return "https://api.whatsapp.com/send?phone=$phone&text=${Uri.parse(message)}";
}
if (await canLaunch(url())) {
await launch(url());
} else {
throw 'Could not launch ${url()}';
}
}
final SpringController springController =
SpringController(initialAnim: Motion.play);
@override
Widget build(BuildContext context) {
return FloatingActionButton(
onPressed: () {
launchWhatsApp(
phone: 6281807890777,
message:
'Hallo, saya tertarik dengan produk EKSAD dan saya ingin tahu lebih lanjut tentang program Protalent');
},
backgroundColor: Colors.green,
child: GestureDetector(
onTap: () {
springController.play(
motion: Motion.reverse,
animDuration: const Duration(milliseconds: 1000),
curve: Curves.easeInBack,
delay: const Duration(milliseconds: 100));
launchWhatsApp(
phone: 6281807890777,
message:
'Hallo, saya tertarik dengan produk EKSAD dan saya ingin tahu lebih lanjut tentang program Protalent');
},
child: Spring.rotate(
endAngle: 360 * 10,
animDuration: const Duration(seconds: 3 * 10),
springController: springController,
alignment: Alignment.center,
animStatus: (AnimStatus status) {},
child: const Icon(Icons.whatsapp, size: 30),
),
),
);
}
}
...@@ -233,6 +233,13 @@ packages: ...@@ -233,6 +233,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.1.2"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
platform: platform:
dependency: transitive dependency: transitive
description: description:
...@@ -268,6 +275,13 @@ packages: ...@@ -268,6 +275,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.7.0" version: "0.7.0"
simple_animations:
dependency: transitive
description:
name: simple_animations
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.1"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -280,6 +294,13 @@ packages: ...@@ -280,6 +294,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.2" version: "1.8.2"
spring:
dependency: "direct main"
description:
name: spring
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
...@@ -301,6 +322,20 @@ packages: ...@@ -301,6 +322,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
supercharged:
dependency: transitive
description:
name: supercharged
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
supercharged_dart:
dependency: transitive
description:
name: supercharged_dart
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
...@@ -322,6 +357,13 @@ packages: ...@@ -322,6 +357,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.1" version: "1.3.1"
universal_platform:
dependency: transitive
description:
name: universal_platform
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0+1"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
......
...@@ -45,6 +45,7 @@ dependencies: ...@@ -45,6 +45,7 @@ dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
show_up_animation: ^2.0.0 show_up_animation: ^2.0.0
http: ^0.13.4 http: ^0.13.4
spring: ^2.0.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment