Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
medapp_eksad
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qorri_di
medapp_eksad
Commits
9aea59b8
Commit
9aea59b8
authored
Aug 30, 2022
by
rizky ramadhan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://103.44.149.204/qorridi/medapp_eksad
parents
12ebdfd0
6b7a8e61
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
564 additions
and
33 deletions
+564
-33
contactus1.jpg
assets/images/contactus1.jpg
+0
-0
appbar_home.dart
lib/appbar/appbar_home.dart
+1
-1
main.dart
lib/main.dart
+1
-1
contact_us.dart
lib/screen/contact_us/contact_us.dart
+17
-12
contact_us1.dart
lib/screen/contact_us/contact_us1.dart
+51
-0
contact_us2.dart
lib/screen/contact_us/contact_us2.dart
+316
-0
home3.dart
lib/screen/home/home3.dart
+137
-18
button_color.dart
lib/widget/button_color.dart
+39
-0
pubspec.lock
pubspec.lock
+1
-1
pubspec.yaml
pubspec.yaml
+1
-0
No files found.
assets/images/contactus1.jpg
0 → 100644
View file @
9aea59b8
120 KB
lib/appbar/appbar_home.dart
View file @
9aea59b8
...
...
@@ -38,7 +38,7 @@ AppBar AppbarHomeLarge(Size screenSize, BuildContext context, Color home,
flex:
1
,
),
ButtonAppbar_baru
(
arah:
'/s
ervice
'
,
menu:
'Our Solution'
,
warna:
ourServices
),
arah:
'/s
olutions
'
,
menu:
'Our Solution'
,
warna:
ourServices
),
const
Spacer
(
flex:
1
,
),
...
...
lib/main.dart
View file @
9aea59b8
import
'package:flutter/material.dart'
;
import
'package:medapp_eksad/homepage.dart'
;
import
'package:medapp_eksad/screen/contact_us.dart'
;
import
'package:medapp_eksad/screen/contact_us
/contact_us
.dart'
;
import
'package:medapp_eksad/screen/solution.dart'
;
void
main
(
)
{
...
...
lib/screen/contact_us.dart
→
lib/screen/contact_us
/contact_us
.dart
View file @
9aea59b8
import
'package:flutter/material.dart'
;
import
'package:medapp_eksad/appbar/appbar_home.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/responsive.dart'
;
import
'package:flutter/services.dart'
;
...
...
@@ -19,7 +21,7 @@ class ContactUs extends StatefulWidget {
}
class
_ContactUsState
extends
State
<
ContactUs
>
{
final
GlobalKey
<
ScaffoldState
>
_scaffoldKey
=
new
GlobalKey
<
ScaffoldState
>();
final
GlobalKey
<
ScaffoldState
>
_scaffoldKey
=
GlobalKey
<
ScaffoldState
>();
@override
Widget
build
(
BuildContext
context
)
{
setPageTitle
(
'Contact Us'
,
context
);
...
...
@@ -32,30 +34,33 @@ class _ContactUsState extends State<ContactUs> {
Colors
.
black
,
Colors
.
black
,
Colors
.
blue
),
body:
ListView
(
children:
[
Footer
()
const
ContactUs1
(),
ContactUs2
(),
const
Footer
(),
],
),
);
}
AppBar
AppBarKecil
()
{
return
AppBar
(
leading:
IconButton
(
onPressed:
()
=>
_scaffoldKey
.
currentState
!.
openDrawer
(),
icon:
Icon
(
Icons
.
list_outlined
,
size:
30
,
color:
Colors
.
black
,),),
icon:
const
Icon
(
Icons
.
list_outlined
,
size:
30
,
color:
Colors
.
black
,
),
),
backgroundColor:
Colors
.
white
,
centerTitle:
true
,
title:
Container
(
child:
SizedBox
(
title:
SizedBox
(
height:
50
,
width:
150
,
child:
Image
.
asset
(
"assets/logo/medapp-logo.png"
),
),
),
// ),
);
}
}
lib/screen/contact_us/contact_us1.dart
0 → 100644
View file @
9aea59b8
import
'package:flutter/material.dart'
;
import
'package:google_fonts/google_fonts.dart'
;
class
ContactUs1
extends
StatefulWidget
{
const
ContactUs1
({
Key
?
key
})
:
super
(
key:
key
);
@override
State
<
ContactUs1
>
createState
()
=>
_ContactUsState
();
}
class
_ContactUsState
extends
State
<
ContactUs1
>
{
@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
,
),
],
),
),
],
);
}
}
lib/screen/contact_us/contact_us2.dart
0 → 100644
View file @
9aea59b8
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
extends
StatelessWidget
{
ContactUs2
({
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:
480
,
width:
screenSize
.
width
,
// color: Colors.blue,
decoration:
const
BoxDecoration
(
gradient:
LinearGradient
(
colors:
<
Color
>[
Color
(
0xff137fc2
),
Color
(
0xff3958d5
),
Color
(
0xff184b80
),
],
begin:
Alignment
.
topCenter
,
end:
Alignment
.
bottomCenter
,
)),
child:
Row
(
children:
[
const
Spacer
(
flex:
3
,
),
SizedBox
(
height:
screenSize
.
height
*
0.7
,
width:
screenSize
.
width
*
0.35
,
child:
Container
(
padding:
const
EdgeInsets
.
all
(
10
),
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
SizedBox
(
height:
screenSize
.
height
*
0.23
,
child:
Text
(
'Yes, you need '
'
\n
'
'an outsourcing partner '
'you can trust and thrive with'
,
textAlign:
TextAlign
.
justify
,
style:
GoogleFonts
.
poppins
(
color:
Colors
.
white
,
fontSize:
30
,
fontWeight:
FontWeight
.
bold
)),
),
const
Spacer
(
flex:
1
,
),
SizedBox
(
height:
screenSize
.
height
*
0.3
,
child:
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. '
'
\n
Looking for an outsourcing partner? '
,
textAlign:
TextAlign
.
justify
,
style:
GoogleFonts
.
poppins
(
color:
Colors
.
white
,
fontSize:
18
,
// fontWeight: FontWeight.bold,
letterSpacing:
1.1
)),
),
const
Spacer
(
flex:
1
,
),
Text
(
"We’ll contact you immediately to discuss to help you."
,
style:
GoogleFonts
.
poppins
(
color:
Colors
.
white
,
fontSize:
18
,
letterSpacing:
1.2
)),
const
Spacer
(
flex:
2
,
),
],
),
),
),
const
Spacer
(),
Container
(
padding:
const
EdgeInsets
.
all
(
15
),
height:
screenSize
.
height
*
0.7
,
width:
screenSize
.
width
*
0.4
,
child:
Form
(
key:
_formKey
,
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
mainAxisAlignment:
MainAxisAlignment
.
spaceEvenly
,
children:
[
Text
(
"Name"
,
style:
GoogleFonts
.
poppins
(
color:
Colors
.
white
,
fontSize:
20
,
fontWeight:
FontWeight
.
w400
),
),
SizedBox
(
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:
10
,
),
Row
(
children:
[
Text
(
"Phone Number"
,
style:
GoogleFonts
.
poppins
(
color:
Colors
.
white
,
fontSize:
20
,
fontWeight:
FontWeight
.
w400
),
),
const
SizedBox
(
width:
80
,
),
Text
(
"Email"
,
style:
GoogleFonts
.
poppins
(
color:
Colors
.
white
,
fontSize:
20
,
fontWeight:
FontWeight
.
w400
),
),
],
),
Row
(
children:
[
SizedBox
(
width:
220
,
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
(
width:
7
,
),
SizedBox
(
width:
220
,
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
,
),
],
),
const
SizedBox
(
height:
10
,
),
Text
(
"Message"
,
style:
GoogleFonts
.
poppins
(
color:
Colors
.
white
,
fontSize:
20
,
fontWeight:
FontWeight
.
w400
),
),
SizedBox
(
width:
450
,
height:
107
,
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:
10
,
),
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
),
),
),
),
],
),
),
),
const
Spacer
(
flex:
3
,
),
],
),
);
}
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
;
}
}
lib/screen/home/home3.dart
View file @
9aea59b8
...
...
@@ -15,8 +15,8 @@ class _Home3State extends State<Home3> {
@override
Widget
build
(
BuildContext
context
)
{
var
screenSize
=
MediaQuery
.
of
(
context
).
size
;
return
Container
(
height:
screenSize
.
height
*
1.
1
,
return
SizedBox
(
height:
screenSize
.
height
*
1.
75
,
width:
screenSize
.
width
,
child:
Column
(
children:
[
...
...
@@ -35,7 +35,7 @@ class _Home3State extends State<Home3> {
mainAxisAlignment:
MainAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
Container
(
SizedBox
(
width:
screenSize
.
width
*
0.2
,
child:
Column
(
children:
[
...
...
@@ -81,7 +81,7 @@ class _Home3State extends State<Home3> {
],
),
),
Container
(
SizedBox
(
width:
screenSize
.
width
*
0.2
,
child:
Column
(
children:
[
...
...
@@ -128,7 +128,7 @@ class _Home3State extends State<Home3> {
],
),
),
Container
(
SizedBox
(
width:
screenSize
.
width
*
0.2
,
child:
Column
(
children:
[
...
...
@@ -173,7 +173,13 @@ class _Home3State extends State<Home3> {
],
),
),
Container
(
],
),
Row
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
SizedBox
(
width:
screenSize
.
width
*
0.2
,
child:
Column
(
children:
[
...
...
@@ -215,11 +221,130 @@ class _Home3State extends State<Home3> {
delayStart:
const
Duration
(
seconds:
1
),
curve:
Curves
.
decelerate
,
direction:
Direction
.
horizontal
,
child:
Container
(
child:
SizedBox
(
height:
screenSize
.
height
*
0.42
,
child:
Text
(
'Acceptance of payments can be done easily and flexibly with the availability of '
'online payment systems (credit cards, transfers, digital-wallet)'
,
'online payment systems (credit cards, transfers, digital-wallet).'
,
style:
GoogleFonts
.
poppins
(
fontSize:
15
,
fontWeight:
FontWeight
.
w500
,
letterSpacing:
1.3
,
height:
1.4
),
textAlign:
TextAlign
.
center
,
),
),
))
],
),
),
SizedBox
(
width:
screenSize
.
width
*
0.2
,
child:
Column
(
children:
[
Container
(
padding:
EdgeInsets
.
only
(
top:
screenSize
.
height
*
0.01
),
width:
screenSize
.
width
*
0.5
,
child:
Animasi_Kiri_Kanan
(
screenSize:
screenSize
,
widget:
Image
.
asset
(
'assets/icons/why4.png'
,
height:
60
,
width:
60
,
))),
const
SizedBox
(
height:
10
,
),
Container
(
padding:
const
EdgeInsets
.
only
(
top:
5
),
width:
250
,
height:
75
,
child:
const
Text
(
'DRUG DELIVERY'
,
style:
TextStyle
(
color:
Colors
.
blueAccent
,
fontSize:
17
,
letterSpacing:
1.1
,
fontWeight:
FontWeight
.
w600
),
textAlign:
TextAlign
.
center
,
),
),
const
SizedBox
(
height:
10
,
),
Container
(
padding:
const
EdgeInsets
.
only
(
top:
10
),
width:
220
,
height:
screenSize
.
height
*
0.55
,
child:
ShowUpAnimation
(
delayStart:
const
Duration
(
seconds:
1
),
curve:
Curves
.
decelerate
,
direction:
Direction
.
horizontal
,
child:
SizedBox
(
height:
screenSize
.
height
*
0.42
,
child:
Text
(
'Drug delivery works in collaboration with goods delivery service providers '
'which are currently developing fast.'
,
style:
GoogleFonts
.
poppins
(
fontSize:
15
,
fontWeight:
FontWeight
.
w500
,
letterSpacing:
1.3
,
height:
1.4
),
textAlign:
TextAlign
.
center
,
),
),
))
],
),
),
SizedBox
(
width:
screenSize
.
width
*
0.2
,
child:
Column
(
children:
[
Container
(
padding:
EdgeInsets
.
only
(
top:
screenSize
.
height
*
0.01
),
width:
screenSize
.
width
*
0.5
,
child:
Animasi_Kiri_Kanan
(
screenSize:
screenSize
,
widget:
Image
.
asset
(
'assets/icons/why4.png'
,
height:
60
,
width:
60
,
))),
const
SizedBox
(
height:
10
,
),
Container
(
padding:
const
EdgeInsets
.
only
(
top:
5
),
width:
250
,
height:
75
,
child:
const
Text
(
'OTHER FEATURES'
,
style:
TextStyle
(
color:
Colors
.
blueAccent
,
fontSize:
17
,
letterSpacing:
1.1
,
fontWeight:
FontWeight
.
w600
),
textAlign:
TextAlign
.
center
,
),
),
const
SizedBox
(
height:
10
,
),
Container
(
padding:
const
EdgeInsets
.
only
(
top:
10
),
width:
220
,
height:
screenSize
.
height
*
0.55
,
child:
ShowUpAnimation
(
delayStart:
const
Duration
(
seconds:
1
),
curve:
Curves
.
decelerate
,
direction:
Direction
.
horizontal
,
child:
SizedBox
(
height:
screenSize
.
height
*
0.42
,
child:
Text
(
'Online consultation (to be integrated with the current RSSC system), '
'Emergency assistance to call ambulances and doctors, '
'Rating by consumers for each service'
,
style:
GoogleFonts
.
poppins
(
fontSize:
15
,
fontWeight:
FontWeight
.
w500
,
...
...
@@ -228,13 +353,7 @@ class _Home3State extends State<Home3> {
textAlign:
TextAlign
.
center
,
),
),
)
// Animasi_Kanan_Kiri(judul: 'WE ARE A TEAM OF EXPERT RECRUITERS, '
// 'WITH A MISSION TO MATCH TALENTED PEOPLE WITH SUCCESSFUL EMPLOYERS. '
// 'WE STRONGLY BELIEVE IN BUILDING A VALUE OF TRUST, HONESTY, '
// 'AND TRANSPARENCY WITH OUR CLIENTS TO DEVELOP LONG-TERM RELATIONSHIPS '
// 'AND ADOPT A FLEXIBLE APPROACH AS PER THEIR NEEDS.')
)
))
],
),
),
...
...
lib/widget/button_color.dart
0 → 100644
View file @
9aea59b8
import
'package:flutter/material.dart'
;
ButtonStyle
DefaultColors
(
)
{
return
ButtonStyle
(
backgroundColor:
MaterialStateProperty
.
resolveWith
<
Color
?>(
(
Set
<
MaterialState
>
states
)
{
return
const
Color
(
0xff1e5ea8
);
// Defer to the widget's default.
},
),
overlayColor:
MaterialStateProperty
.
resolveWith
<
Color
?>(
(
Set
<
MaterialState
>
states
)
{
if
(
states
.
contains
(
MaterialState
.
hovered
))
{
return
Colors
.
red
;
}
//<-- SEE HERE
return
null
;
// Defer to the widget's default.
},
),
);
}
ButtonStyle
Btn_Submit
(
)
{
return
ButtonStyle
(
shape:
MaterialStateProperty
.
resolveWith
((
ShapeBorder
)
=>
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
circular
(
8
))),
backgroundColor:
MaterialStateProperty
.
resolveWith
<
Color
?>(
(
Set
<
MaterialState
>
states
)
{
return
const
Color
(
0xff1e5ea8
);
// Defer to the widget's default.
},
),
overlayColor:
MaterialStateProperty
.
resolveWith
<
Color
?>(
(
Set
<
MaterialState
>
states
)
{
if
(
states
.
contains
(
MaterialState
.
hovered
))
{
return
Colors
.
red
;
}
//<-- SEE HERE
return
null
;
// Defer to the widget's default.
},
),
);
}
pubspec.lock
View file @
9aea59b8
...
...
@@ -122,7 +122,7 @@ packages:
source: hosted
version: "3.0.1"
http:
dependency:
transitive
dependency:
"direct main"
description:
name: http
url: "https://pub.dartlang.org"
...
...
pubspec.yaml
View file @
9aea59b8
...
...
@@ -44,6 +44,7 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons
:
^1.0.2
show_up_animation
:
^2.0.0
http
:
^0.13.4
dev_dependencies
:
flutter_test
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment