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"), ], ); } }