86 lines
1.9 KiB
Dart
86 lines
1.9 KiB
Dart
|
import 'package:ambito/main.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
import '../actions/actions_page.dart';
|
||
|
|
||
|
class StartPage extends StatefulWidget {
|
||
|
const StartPage({super.key});
|
||
|
|
||
|
@override
|
||
|
State<StartPage> createState() => StartPageState();
|
||
|
}
|
||
|
|
||
|
class StartPageState extends State<StartPage> {
|
||
|
String activeLink = '';
|
||
|
|
||
|
@override
|
||
|
void initState() {
|
||
|
activeLink = 'start';
|
||
|
super.initState();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return Scaffold(
|
||
|
body: Column(
|
||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||
|
children: [
|
||
|
const SizedBox(height: 50),
|
||
|
Row(
|
||
|
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||
|
children: [
|
||
|
_linkButton('start'),
|
||
|
_linkButton('database'),
|
||
|
_linkButton('designer'),
|
||
|
Image.asset(
|
||
|
'images/logo.png',
|
||
|
scale: 1.3,
|
||
|
),
|
||
|
_linkButton('service'),
|
||
|
_linkButton('network'),
|
||
|
_linkButton('contact'),
|
||
|
],
|
||
|
),
|
||
|
const SizedBox(height: 50),
|
||
|
Expanded(
|
||
|
child: getContent(),
|
||
|
),
|
||
|
],
|
||
|
));
|
||
|
}
|
||
|
|
||
|
Widget getContent() {
|
||
|
if (activeLink == 'database') {
|
||
|
return const ActionsPage();
|
||
|
}
|
||
|
return Text(activeLink);
|
||
|
}
|
||
|
|
||
|
Widget _linkButton(String link) {
|
||
|
double fontSize = 16;
|
||
|
return TextButton(
|
||
|
style: ButtonStyle(
|
||
|
overlayColor:
|
||
|
WidgetStateProperty.resolveWith<Color>((Set<WidgetState> states) {
|
||
|
return Colors.white;
|
||
|
}),
|
||
|
),
|
||
|
onPressed: () {
|
||
|
setState(() {
|
||
|
activeLink = link;
|
||
|
});
|
||
|
},
|
||
|
child: Text(
|
||
|
context.translate('page.start.links.$link.title'),
|
||
|
style: TextStyle(
|
||
|
fontSize: fontSize,
|
||
|
fontWeight: FontWeight.bold,
|
||
|
color: (activeLink == link)
|
||
|
? Colors.grey.shade400
|
||
|
: Colors.grey.shade800,
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|