132 lines
4.7 KiB
Dart
132 lines
4.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:footer/footer.dart';
|
|
import 'package:footer/footer_view.dart';
|
|
import 'package:zontreck/Constants.dart';
|
|
|
|
class PortfolioPage extends StatelessWidget {
|
|
const PortfolioPage({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text("Zontreck.com - Portfolio"),
|
|
backgroundColor: Constants.TITLEBAR_COLOR,
|
|
),
|
|
body: FooterView(
|
|
footer: Footer(
|
|
alignment: Alignment.center,
|
|
backgroundColor: ThemeData.dark().focusColor,
|
|
child:
|
|
const Text("${Constants.COPYRIGHT}\n${Constants.VERSION}")),
|
|
children: [
|
|
Padding(
|
|
padding: const EdgeInsets.all(8),
|
|
child: SingleChildScrollView(
|
|
child: Row(
|
|
children: [
|
|
PortfolioEntry(
|
|
title: const ListTile(
|
|
title: Text("Cards of Utter Nonsense")),
|
|
body: const Text(
|
|
"A product I created for Second Life, but may port to the mobile phone at some point"),
|
|
onTap: () {
|
|
Navigator.pushNamed(context, "/portfolio/coun");
|
|
},
|
|
),
|
|
PortfolioEntry(
|
|
title: const Text("Zontreck.com"),
|
|
body: const Text(
|
|
("Hey! It's me! Written entirely in Flutter, with some supporting API files in PHP")),
|
|
onTap: () {}),
|
|
PortfolioEntry(
|
|
title: const Text("Minecraft Modding"),
|
|
body: const Text(
|
|
"These mods are all written in Java. The various mods I currently maintain, previously maintained, or have contributed to are: Thresholds, Aria's Essentials, LibZontreck, Let's Do Beachparty, WatchMyDurability"),
|
|
onTap: () {}),
|
|
PortfolioEntry(
|
|
title: const Text("Lib AC"),
|
|
body: const Text(
|
|
("Aria's Creations CommonCode Library. Oh hey, this website uses that! This is written in pure Dart, with no Flutter dependencies. The library is meant to be compatible with any dart project I work on")),
|
|
onTap: () {
|
|
Navigator.pushNamed(context, "/portfolio/libac");
|
|
}),
|
|
PortfolioEntry(
|
|
title: const Text("NBT Editor"),
|
|
body: const Text(
|
|
"This utilizes the NBT implementation in LibAC. It's a Named Binary Tag editor written entirely in dart or flutter."),
|
|
onTap: () {
|
|
Navigator.pushNamed(
|
|
context, "/portfolio/nbteditor");
|
|
})
|
|
],
|
|
),
|
|
),
|
|
),
|
|
]));
|
|
}
|
|
}
|
|
|
|
class PortfolioEntry extends StatelessWidget {
|
|
final Widget title;
|
|
final Widget body;
|
|
final Function() onTap;
|
|
|
|
const PortfolioEntry(
|
|
{super.key,
|
|
required this.title,
|
|
required this.body,
|
|
required this.onTap});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Card(
|
|
color: Constants.PORTFOLIO_CARD_COLOR,
|
|
elevation: 8,
|
|
child: InkWell(
|
|
onTap: onTap,
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8),
|
|
child: SizedBox(
|
|
width: 225,
|
|
height: 325,
|
|
child: Column(
|
|
children: [
|
|
title,
|
|
const Divider(
|
|
thickness: 4,
|
|
),
|
|
body
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class CardsOfUtterNonsense extends StatelessWidget {
|
|
const CardsOfUtterNonsense({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text("Portfolio Entry - Cards of Utter Nonsense"),
|
|
backgroundColor: Constants.TITLEBAR_COLOR,
|
|
),
|
|
body: const Padding(
|
|
padding: EdgeInsets.all(8),
|
|
child: SingleChildScrollView(
|
|
child: Column(
|
|
children: [
|
|
Text(
|
|
"Cards of Utter Nonsense is primarily written in Linden Scripting Language (LSL). It depends upon a MariaDB backend and PHP. The game uses a Heads Up Display (HUD), which is written in Flutter/Dart.")
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|