import 'package:flutter/material.dart';
import 'package:my_portfolio/constants/colors.dart';
import 'package:my_portfolio/constants/size.dart';
import 'package:my_portfolio/constants/sns_links.dart';
import 'package:my_portfolio/widgets/custom_button.dart';
import 'package:my_portfolio/widgets/custom_text_field.dart';
import 'dart:js' as js;
class ContactSection extends StatelessWidget {
const ContactSection({super.key});
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
padding: EdgeInsets.fromLTRB(25, 20, 25, 60),
color: CustomColor.bgLight1,
child: Column(
children: [
// title
Text(
"Get In Touch",
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 24,
color: CustomColor.whitePrimary,
),
),
const SizedBox(height: 50),
ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 700),
child: LayoutBuilder(builder: (context, constraints){
if(constraints.maxWidth>=kMinDesktopWidth){
return buildNameEmailFieldDesktop();
} else {
return buildNameEmailFieldMobile();
}
}),
),
const SizedBox(height: 15),
// message
ConstrainedBox(
constraints: const BoxConstraints(
maxWidth: 700,
maxHeight: 300,
),
child: CustomTextField(
hintText: "Write your message...",
maxLine: 16,
),
),
const SizedBox(height: 20),
// send button
ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 700),
child: SizedBox(
width: double.maxFinite,
height: 40,
child: const CustomButton(text: "Send Message"),
),
),
const SizedBox(height: 30),
ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 300),
child: const Divider(),
),
const SizedBox(height: 15),
// SNS Icons button links
Wrap(
spacing: 12,
runSpacing: 12,
alignment: WrapAlignment.center,
children: [
InkWell(
onTap: () {
js.context.callMethod('open', [SnsLinks.github]);
},
child: Image.asset("github.png", width: 28),
),
InkWell(
onTap: () {
js.context.callMethod('open', [SnsLinks.linkedin]);
},
child: Image.asset("linkedin.png", width: 28),
),
InkWell(
onTap: () {
js.context.callMethod('open', [SnsLinks.facebook]);
},
child: Image.asset("facebook.png", width: 28),
),
InkWell(
onTap: () {
js.context.callMethod('open', [SnsLinks.instagram]);
},
child: Image.asset("instagram.png", width: 28),
),
InkWell(
onTap: () {
js.context.callMethod('open', [SnsLinks.telegram]);
},
child: Image.asset("telegram.png", width: 28),
),
],
),
],
),
);
}
Widget buildNameEmailFieldDesktop() {
return Row(
children: [
Expanded(
child: CustomTextField(hintText: "Your name"),
),
const SizedBox(width: 15),
Expanded(
child: CustomTextField(hintText: "Your email"),
),
],
);
}
Widget buildNameEmailFieldMobile() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CustomTextField(hintText: "Your name"),
const SizedBox(height: 15),
CustomTextField(hintText: "Your email"),
],
);
}
}