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,
const Spacer(
flex: 1,
),
ButtonAppbar_baru(arah: '/career', menu: 'Career', warna: career),
const Spacer(
flex: 1,
),
// ButtonAppbar_baru(arah: '/career', menu: 'Career', warna: career),
// const Spacer(
// flex: 1,
// ),
ButtonAppbar_baru(
arah: '/contact', menu: 'Contact Us', warna: contactUs),
const Spacer(
......
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:medapp_eksad/appbar/appbar_home.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/home3.dart';
import 'package:medapp_eksad/widget/drawer.dart';
import 'package:medapp_eksad/widget/responsive.dart';
import 'package:medapp_eksad/widget/whatsapp.dart';
import 'package:flutter/services.dart';
void setPageTitle(String title, BuildContext context) {
......@@ -28,12 +32,15 @@ class _HomePageState extends State<HomePage> {
var screenSize = MediaQuery.of(context).size;
return Scaffold(
key: _scaffoldKey,
floatingActionButton: WAChat(),
appBar: ResponsiveWidget.isSmallScreen(context)
? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.blue, Colors.blue,
Colors.black, Colors.black, Colors.black),
drawer: DrawerMeddApp(),
body: ListView(
children: [
Home1(),
Home2(),
Home3(),
Footer(),
......
......@@ -18,6 +18,7 @@ class MyApp extends StatelessWidget {
initialRoute: '/',
routes: {
'/': (context) => const HomePage(),
'/about': (context) => const HomePage(),
'/solutions': (context) => const Solutions(),
'/contact': (context) => const ContactUs(),
},
......
import 'package:flutter/material.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_us2.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/whatsapp.dart';
import 'package:flutter/services.dart';
void setPageTitle(String title, BuildContext context) {
......@@ -27,18 +32,29 @@ class _ContactUsState extends State<ContactUs> {
setPageTitle('Contact Us', context);
var screenSize = MediaQuery.of(context).size;
return Scaffold(
key: _scaffoldKey,
appBar: ResponsiveWidget.isSmallScreen(context)
? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.black, Colors.black,
Colors.black, Colors.black, Colors.blue),
body: ListView(
children: [
const ContactUs1(),
ContactUs2(),
const Footer(),
],
),
key: _scaffoldKey,
appBar: ResponsiveWidget.isSmallScreen(context)
? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.black, Colors.black,
Colors.black, Colors.black, Colors.blue),
drawer: DrawerMeddApp(),
body: ResponsiveWidget.isSmallScreen(context)
? ListView(
children: [
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 {
return Container(
width: screenSize.width * 0.5,
color: const Color.fromARGB(255, 227, 235, 253),
height: 600,
height: screenSize.height,
padding: EdgeInsets.only(
left: screenSize.width * 0.10,
right: screenSize.width * 0.10,
......@@ -35,6 +35,7 @@ class Home2 extends StatelessWidget {
),
Container(
width: screenSize.width,
height: 100,
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, '
'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 {
style: GoogleFonts.poppins(
fontSize: 18,
letterSpacing: 1.1,
height: 1.3,
height: 1.8,
fontWeight: FontWeight.w500)),
),
Spacer(),
Spacer(
flex: 2,
),
Column(
// mainAxisAlignment: MainAxisAlignment.start,
children: [
......@@ -70,8 +73,12 @@ class Home2 extends StatelessWidget {
),
],
),
Spacer(
flex: 2,
),
Container(
width: screenSize.width,
height: 100,
child: Text(
'Too much admin. Longer work hours. Less time spent with patients.'
'You’re not alone in the stress and frustration these cause. At MedApps, '
......@@ -81,12 +88,15 @@ class Home2 extends StatelessWidget {
style: GoogleFonts.poppins(
fontSize: 18,
letterSpacing: 1.1,
height: 1.3,
height: 1.8,
fontWeight: FontWeight.w500)),
),
Spacer(),
Spacer(
flex:2,
),
Container(
width: screenSize.width,
height: 100,
child: Text(
'MedApps combines practice management and clinical workflows into one seamless, modern interface. '
'Manage all patient interactions securely on the go, or in your practice.'
......@@ -95,7 +105,7 @@ class Home2 extends StatelessWidget {
style: GoogleFonts.poppins(
fontSize: 18,
letterSpacing: 1.1,
height: 1.3,
height: 1.8,
fontWeight: FontWeight.w500)),
),
Spacer(
......
......@@ -21,7 +21,7 @@ class _Home3State extends State<Home3> {
child: Column(
children: [
const SizedBox(
height: 30,
height: 40,
),
Text("Why MedApps ?",
style: GoogleFonts.poppins(
......@@ -216,7 +216,7 @@ class _Home3State extends State<Home3> {
Container(
padding: const EdgeInsets.only(top: 10),
width: 220,
height: screenSize.height * 0.55,
height: screenSize.height * 0.45,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.decelerate,
......@@ -275,7 +275,7 @@ class _Home3State extends State<Home3> {
Container(
padding: const EdgeInsets.only(top: 10),
width: 220,
height: screenSize.height * 0.55,
height: screenSize.height * 0.45,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
curve: Curves.decelerate,
......@@ -334,7 +334,7 @@ class _Home3State extends State<Home3> {
Container(
padding: const EdgeInsets.only(top: 10),
width: 220,
height: screenSize.height * 0.55,
height: screenSize.height * 0.45,
child: ShowUpAnimation(
delayStart: const Duration(seconds: 1),
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 {
}) : super(key: key);
static bool isSmallScreen(BuildContext context) {
return MediaQuery.of(context).size.width <= 1200;
return MediaQuery.of(context).size.width <= 1050;
}
static bool isLargeScreen(BuildContext context) {
return MediaQuery.of(context).size.width > 1200;
return MediaQuery.of(context).size.width > 1050;
}
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) {
if (constraints.maxWidth > 1200) {
if (constraints.maxWidth > 1050) {
return largeScreen;
} else {
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:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.2"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
platform:
dependency: transitive
description:
......@@ -268,6 +275,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
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:
dependency: transitive
description: flutter
......@@ -280,6 +294,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.2"
spring:
dependency: "direct main"
description:
name: spring
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
stack_trace:
dependency: transitive
description:
......@@ -301,6 +322,20 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
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:
dependency: transitive
description:
......@@ -322,6 +357,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
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:
dependency: "direct main"
description:
......
......@@ -45,6 +45,7 @@ dependencies:
cupertino_icons: ^1.0.2
show_up_animation: ^2.0.0
http: ^0.13.4
spring: ^2.0.2
dev_dependencies:
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