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,
),
],
),
),
],
);
}
}
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
// import 'package:mcs_flutter/widget/botton.dart';
// import 'package:mcs_flutter/const/conts.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:medapp_eksad/widget/button_color.dart';
class ContactUs2_small extends StatelessWidget {
ContactUs2_small({Key? key}) : super(key: key);
final _formKey = GlobalKey<FormState>();
final nameController = TextEditingController();
final phoneController = TextEditingController();
final emailController = TextEditingController();
final messageController = TextEditingController();
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Container(
height: screenSize.height * 1.5,
width: screenSize.width,
padding: EdgeInsets.symmetric(horizontal: 15),
// color: Colors.blue,
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: <Color>[
Color(0xff137fc2),
Color(0xff3958d5),
Color(0xff184b80),
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
)),
child: Container(
padding: const EdgeInsets.all(10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Text(
'Yes, you need '
'\n'
'an outsourcing partner '
'you can trust and thrive with',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
color: Colors.white,
fontSize: 30,
fontWeight: FontWeight.bold)),
Text(
'Go for the one who knows what they are doing, those who you share values with, '
'and those who will celebrate your success, and help you win over your biggest challenges. '
'Looking for an outsourcing partner? ',
textAlign: TextAlign.justify,
style: GoogleFonts.poppins(
color: Colors.white,
fontSize: 18,
// fontWeight: FontWeight.bold,
letterSpacing: 1.1)),
Text("We’ll contact you immediately to discuss to help you.",
style: GoogleFonts.poppins(
color: Colors.white, fontSize: 18, letterSpacing: 1.2)),
Form(
key: _formKey,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
child: Text(
"Name",
style: GoogleFonts.poppins(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.w400),
),
),
Container(
width: 450,
child: TextFormField(
controller: nameController,
decoration: const InputDecoration(
hintText: "Enter your Name",
fillColor: Colors.white,
filled: true,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
),
),
),
const SizedBox(
height: 20,
),
Container(
child: Text(
"Phone Number",
style: GoogleFonts.poppins(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.w400),
),
),
const SizedBox(
width: 80,
),
Container(
width: 450,
child: TextFormField(
controller: phoneController,
decoration: const InputDecoration(
hintText: "Enter a valid phone number",
fillColor: Colors.white,
filled: true,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
),
),
),
const SizedBox(
height: 20,
),
Container(
child: Text(
"Email",
style: GoogleFonts.poppins(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.w400),
),
),
const SizedBox(
width: 7,
),
Container(
width: 450,
child: TextFormField(
controller: emailController,
decoration: const InputDecoration(
hintText: "Enter a valid email address",
fillColor: Colors.white,
filled: true,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
),
),
),
const SizedBox(
height: 20,
),
Text(
"Message",
style: GoogleFonts.poppins(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.w400),
),
Container(
width: 450,
child: TextFormField(
controller: messageController,
decoration: const InputDecoration(
hintText: "Enter your message",
fillColor: Colors.white,
filled: true,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.zero,
borderSide:
BorderSide(width: 1, color: Colors.white),
),
),
maxLines: 5,
validator: (value) {
if (value == null || value.isEmpty) {
return '*Required';
}
return null;
},
),
),
const SizedBox(
height: 20,
),
SizedBox(
height: 45,
width: 100,
child: TextButton(
style: Btn_Submit(),
onPressed: () async {
if (_formKey.currentState!.validate()) {
final response = await SendEmail(
nameController.value.text,
phoneController.value.text,
emailController.value.text,
messageController.value.text);
ScaffoldMessenger.of(context).showSnackBar(
response == 200
? const SnackBar(
content: Text('Message Sent!'),
backgroundColor: Colors.green)
: const SnackBar(
content:
Text('Failed to send message!'),
backgroundColor: Colors.red),
);
nameController.clear();
phoneController.clear();
emailController.clear();
messageController.clear();
}
},
child: const Text(
'Submit',
style: TextStyle(fontSize: 16, color: Colors.white),
),
),
),
]),
),
]),
),
);
}
Future SendEmail(
String name, String phone, String email, String message) async {
final url = Uri.parse('https://api.emailjs.com/api/v1.0/email/send');
const serviceId = 'service_wava70j';
const templateId = 'template_koc73cj';
const userId = 'h4BmDnyWlm3OziBDx';
final response = await http.post(url,
headers: {
'Content-Type': 'application/json'
}, //This line makes sure it works for all platforms.
body: json.encode({
'service_id': serviceId,
'template_id': templateId,
'user_id': userId,
'template_params': {
'from_name': name,
'from_phone': phone,
'to_email': email,
'message': message
}
}));
return response.statusCode;
}
}
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:url_launcher/url_launcher.dart';
class FooterSmall extends StatelessWidget {
const FooterSmall({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
var screenSize = MediaQuery.of(context).size;
return Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
const Divider(
height: 3,
thickness: 3,
),
SizedBox(
height: screenSize.height * 0.01,
),
Container(
width: screenSize.width,
height: screenSize.height * 2,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.only(left: 5),
width: screenSize.width,
height: screenSize.height * 0.29,
child: Column(
children: [
Container(
width: screenSize.width * 0.4,
height: screenSize.height * 0.08,
decoration: const BoxDecoration(
//color: Colors.lightBlueAccent,
image: DecorationImage(
image: AssetImage(
'assets/logo/medapp-logo.png'),
fit: BoxFit.fill)),
),
const Spacer(),
Container(
width: screenSize.width * 0.6,
height: screenSize.height * 0.03,
//color: Colors.blue,
child: const Center(
child: Text(
'Your one stop IT Solution',
textAlign: TextAlign.right,
style: TextStyle(
color: Colors.black87,
fontWeight: FontWeight.w500,
letterSpacing: 1.5,
fontSize: 16),
),
),
),
const Spacer(
flex: 1,
),
Container(
width: screenSize.width,
height: screenSize.height * 0.03,
padding: EdgeInsets.symmetric(horizontal: screenSize.width*0.15),
//color: Colors.blue,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
IconButton(
onPressed: () {
launch(
'https://www.linkedin.com/company/pt-tiga-daya-digital-indonesia-triputra-group-eksad-technology');
},
icon: const Icon(
FontAwesomeIcons.linkedinIn,
size: 30,
),
iconSize: 20,
),
IconButton(
onPressed: () {
launch(
'https://twitter.com/eksadtechnology/');
},
icon: const Icon(
FontAwesomeIcons.twitter,
size: 30,
),
iconSize: 20,
),
IconButton(
onPressed: () {
launch(
'https://www.instagram.com/eksad_technology/');
},
icon: const Icon(
FontAwesomeIcons.instagram,
size: 30,
),
iconSize: 20,
),
IconButton(
onPressed: () {
launch(
'https://www.youtube.com/channel/UCiZgIbpWgrAMrHW-TaS9EPw');
},
icon: const Icon(
FontAwesomeIcons.youtube,
size: 30,
),
iconSize: 20,
)
],
),
),
const Spacer(
flex: 3,
)
],
)),
Container(
width: screenSize.width,
height: screenSize.height * 0.35,
//color: Colors.blue,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
width: screenSize.width,
height: screenSize.height * 0.1,
child: Center(
child: Text(
' Sitemap',
style: GoogleFonts.poppins(
fontSize: 28,
fontWeight: FontWeight.bold,
letterSpacing: 1.5),
),
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'Home',
routeName: '/',
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'About Us',
routeName: '/about',
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'Service',
routeName: '/service',
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'Career',
routeName: '/career',
),
),
Spacer()
],
)),
Container(
width: screenSize.width,
height: screenSize.height * 0.35,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
width: screenSize.width,
height: screenSize.height * 0.1,
child: Center(
child: Text(
' Solutions',
style: GoogleFonts.poppins(
fontSize: 28,
fontWeight: FontWeight.bold,
letterSpacing: 1.5),
),
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'Retained Search',
routeName: '/service',
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'Dedicated Services',
routeName: '/service',
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'Contract Services',
routeName: '/service',
),
),
Container(
width: screenSize.width,
height: screenSize.height * 0.06,
child: const itemBawah_small(
item: 'Recruitment',
routeName: '/service',
),
),
],
)),
Center(
child: Container(
width: screenSize.width * 0.95,
height: screenSize.height * 0.56,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
SizedBox(
width: screenSize.width,
height: screenSize.height * 0.1,
child: Center(
child: Text(
' Contact',
style: GoogleFonts.poppins(
fontSize: 28,
fontWeight: FontWeight.bold,
letterSpacing: 1.5),
),
),
),
Column(
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: screenSize.width*0.15),
width: screenSize.width,
child: ListTile(
minLeadingWidth: 2,
leading: const Icon(
Icons.phone,
size: 19,
color: Colors.black,
),
title: TextButton(
onPressed: () {
launch('tel:02157958040');
},
child: Text(
'(021) 5795 - 8040',
style: GoogleFonts.poppins(
fontSize: 14,
color: Colors.black87,
),
)),
),
),
Container(
padding: EdgeInsets.symmetric(horizontal: screenSize.width*0.15),
width: screenSize.width ,
child: ListTile(
minLeadingWidth: 2,
leading: const Icon(
Icons.mail,
size: 19,
color: Colors.black,
),
title: TextButton(
onPressed: () {
launch(
'mailto:Info@eksad.com?subject=Info MCS');
},
child: Text(
'info@eksad.com',
style: GoogleFonts.poppins(
fontSize: 14, color: Colors.black87,letterSpacing: 1.1),
),
),
),
),
Container(
padding: EdgeInsets.symmetric(horizontal: screenSize.width*0.15),
width: screenSize.width,
child: ListTile(
minLeadingWidth: 2,
leading: const Icon(
Icons.location_on,
size: 24,
color: Colors.black,
),
title: Container(
padding: const EdgeInsets.only(left: 10),
width: screenSize.width * 0.48,
child: Text(
'PT. Tiga Daya Digital Indonesia \nThe East '
'Tower 19th Floor \nJl. Dr. Ide Anak Agung '
'\nGde Agung Blok E3.2 '
'\nMega Kuningan, \nJakarta Selatan 12950',
style: GoogleFonts.poppins(
fontSize: 13,
height: 1.45,
letterSpacing: 1.1
),
textAlign: TextAlign.left,
),
)),
),
],
),
],
)),
),
],
),
),
const Divider(
height: 3,
thickness: 3,
),
SizedBox(
width: screenSize.width,
height: screenSize.height * 0.12,
child: const Center(
child: Text(
'PT. Tiga Daya Digital Indonesia © 2018, \nAll Rights Reserved.',
style: TextStyle(letterSpacing: 1.3, height: 1.4, fontSize: 13),
textAlign: TextAlign.center,
),
),
)
],
);
}
}
class itemBawah_small extends StatelessWidget {
const itemBawah_small({Key? key, required this.item, required this.routeName})
: super(key: key);
final String item;
final String routeName;
@override
Widget build(BuildContext context) {
return TextButton(
onPressed: () {
Navigator.pushNamed(context, routeName);
},
child: Text(
item,
style: GoogleFonts.poppins(
color: const Color(0xff1e5ea8),
//decoration: TextDecoration.underline,
fontSize: 17,
letterSpacing: 1.2
),
));
}
}
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