1
0
Fork 0
mirror of https://gitlab.com/moepoi/moepoi.dev.git synced 2025-04-27 05:26:20 +02:00

Add IpInfo

This commit is contained in:
Moe Poi ~ 2022-08-08 14:32:56 +07:00
parent fc1366f643
commit 6b26c0e507
Signed by: moepoi
GPG key ID: 334B501E883409AF
2 changed files with 204 additions and 174 deletions
assets/images/home
lib/screens

File diff suppressed because one or more lines are too long

After

(image error) Size: 59 KiB

View file

@ -18,183 +18,212 @@ class _HomeState extends State<Home> {
title: 'Moe Poi',
color: const Color.fromARGB(255, 80, 192, 144),
child: Scaffold(
body: Center(
child: ScrollConfiguration(
behavior: HideScrollGlow(),
child: ListView(
shrinkWrap: true,
children: [
const SizedBox(height: 20),
Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(100),
child: Container(
width: 200,
height: 200,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/home/profile.webp'),
fit: BoxFit.cover,
),
),
body: Center(
child: ScrollConfiguration(
behavior: HideScrollGlow(),
child: ListView(shrinkWrap: true, children: [
const SizedBox(height: 20),
Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(100),
child: Container(
width: 200,
height: 200,
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/images/home/profile.webp'),
fit: BoxFit.cover,
),
),
),
const SizedBox(height: 20),
const Text(
'Moe Poi',
style: TextStyle(
fontSize: 50,
fontWeight: FontWeight.w600,
),
textAlign: TextAlign.center,
),
const SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(Uri.parse('https://t.me/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/telegram.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'Telegram',
),
)
),
const SizedBox(width: 10.0,),
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(Uri.parse('https://github.com/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/github.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'GitHub',
),
)
),
const SizedBox(width: 10.0,),
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(Uri.parse('https://gitlab.com/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/gitlab.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'Gitlab',
),
)
),
const SizedBox(width: 10.0,),
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(Uri.parse('https://linkedin.com/in/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/linkedin.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'Linkedin',
),
)
)
],
),
const SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Flexible(
flex: 1,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/resume');
},
style: ButtonStyle(
elevation: MaterialStateProperty.all(5.0),
padding: MaterialStateProperty.all(const EdgeInsets.all(25.0)),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
)),
backgroundColor: MaterialStateProperty.all(const Color.fromARGB(255, 80, 192, 144)),
),
child: const Text('Resume'),
),
),
const SizedBox(width: 20),
Flexible(
flex: 1,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/skills');
},
style: ButtonStyle(
elevation: MaterialStateProperty.all(5.0),
padding: MaterialStateProperty.all(const EdgeInsets.all(25.0)),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
)),
backgroundColor: MaterialStateProperty.all(const Color.fromARGB(255, 80, 192, 144)),
),
child: const Text('Skills'),
),
),
const SizedBox(width: 20),
Flexible(
flex: 1,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/projects');
},
style: ButtonStyle(
elevation: MaterialStateProperty.all(5.0),
padding: MaterialStateProperty.all(const EdgeInsets.all(25.0)),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
)),
backgroundColor: MaterialStateProperty.all(const Color.fromARGB(255, 80, 192, 144)),
),
child: const Text('Projects'),
),
),
],
),
const SizedBox(height: 20),
]
),
),
),
)
),
const SizedBox(height: 20),
const Text(
'Moe Poi',
style: TextStyle(
fontSize: 50,
fontWeight: FontWeight.w600,
),
textAlign: TextAlign.center,
),
const SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(
Uri.parse('https://t.me/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/telegram.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'Telegram',
),
)),
const SizedBox(
width: 10.0,
),
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(
Uri.parse('https://github.com/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/github.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'GitHub',
),
)),
const SizedBox(
width: 10.0,
),
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(
Uri.parse('https://gitlab.com/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/gitlab.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'Gitlab',
),
)),
const SizedBox(
width: 10.0,
),
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(
Uri.parse('https://linkedin.com/in/moepoi'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/linkedin.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'Linkedin',
),
)),
const SizedBox(
width: 10.0,
),
Flexible(
flex: 1,
child: InkWell(
splashFactory: NoSplash.splashFactory,
onTap: () async {
if (!await launchUrl(
Uri.parse('https://ipinfo.io/AS209310'))) {
throw 'Could not launch';
}
},
child: SvgPicture.asset(
'assets/images/home/ipinfo.svg',
height: 40,
width: 40,
fit: BoxFit.contain,
semanticsLabel: 'IpInfo',
),
))
],
),
const SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Flexible(
flex: 1,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/resume');
},
style: ButtonStyle(
elevation: MaterialStateProperty.all(5.0),
padding:
MaterialStateProperty.all(const EdgeInsets.all(25.0)),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
)),
backgroundColor: MaterialStateProperty.all(
const Color.fromARGB(255, 80, 192, 144)),
),
child: const Text('Resume'),
),
),
const SizedBox(width: 20),
Flexible(
flex: 1,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/skills');
},
style: ButtonStyle(
elevation: MaterialStateProperty.all(5.0),
padding:
MaterialStateProperty.all(const EdgeInsets.all(25.0)),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
)),
backgroundColor: MaterialStateProperty.all(
const Color.fromARGB(255, 80, 192, 144)),
),
child: const Text('Skills'),
),
),
const SizedBox(width: 20),
Flexible(
flex: 1,
child: ElevatedButton(
onPressed: () {
Navigator.pushNamed(context, '/projects');
},
style: ButtonStyle(
elevation: MaterialStateProperty.all(5.0),
padding:
MaterialStateProperty.all(const EdgeInsets.all(25.0)),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30.0),
)),
backgroundColor: MaterialStateProperty.all(
const Color.fromARGB(255, 80, 192, 144)),
),
child: const Text('Projects'),
),
),
],
),
const SizedBox(height: 20),
]),
),
)),
);
}
}
}