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
9366c9d8
Commit
9366c9d8
authored
Aug 30, 2022
by
r.manan@eksad.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
contact_us
parent
be216ec9
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
366 additions
and
9 deletions
+366
-9
contact_us.dart
lib/screen/contact_us/contact_us.dart
+8
-8
contact_us2.dart
lib/screen/contact_us/contact_us2.dart
+317
-0
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.
lib/screen/contact_us/contact_us.dart
View file @
9366c9d8
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'
;
...
...
@@ -20,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
);
...
...
@@ -34,6 +35,7 @@ class _ContactUsState extends State<ContactUs> {
body:
ListView
(
children:
[
ContactUs1
(),
ContactUs2
(),
Footer
(),
],
),
...
...
@@ -45,16 +47,14 @@ class _ContactUsState extends State<ContactUs> {
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_us2.dart
View file @
9366c9d8
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
,
),
Container
(
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:
[
Container
(
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
,
),
Container
(
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
),
),
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:
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:
[
Container
(
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
,
),
Container
(
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
),
),
Container
(
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/widget/button_color.dart
0 → 100644
View file @
9366c9d8
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 @
9366c9d8
...
...
@@ -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 @
9366c9d8
...
...
@@ -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