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) {
......@@ -32,13 +37,24 @@ class _ContactUsState extends State<ContactUs> {
? AppBarKecil()
: AppbarHomeLarge(screenSize, context, Colors.black, Colors.black,
Colors.black, Colors.black, Colors.blue),
body: ListView(
drawer: DrawerMeddApp(),
body: ResponsiveWidget.isSmallScreen(context)
? ListView(
children: [
const ContactUs1(),
const ContactUs1_small(),
ContactUs2_small(),
const FooterSmall(),
],
)
: ListView(
children: [
ContactUs1(),
ContactUs2(),
const Footer(),
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,
),
],
),
),
],
);
}
}
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 {
}) : 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