Scaffold out initial state management

This commit is contained in:
2026-03-17 16:14:41 -05:00
parent d4b84e4d76
commit e92c62270c
4 changed files with 62 additions and 9 deletions

View File

@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'days_enum.dart';
import 'day_page.dart';
import "util.dart";
void main() {
runApp(MyApp());
@@ -28,7 +29,28 @@ class MyApp extends StatelessWidget {
}
}
class DayPageState {
String? selectedFile;
}
class MyAppState extends ChangeNotifier {
Map<AdventOfCodeDays, DayPageState> dayPageState = {};
MyAppState() {
for (var day in AdventOfCodeDays.values) {
dayPageState[day] = DayPageState();
}
}
String? getSelectedFile(AdventOfCodeDays day) {
return dayPageState[day]?.selectedFile;
}
void setSelectedFile(AdventOfCodeDays day, String? file) {
debugLog("setSelectedFile called on $day");
dayPageState[day]?.selectedFile = file;
notifyListeners();
}
}
class MyHomePage extends StatefulWidget {
@@ -56,7 +78,7 @@ class _MyHomePageState extends State<MyHomePage> {
}
var colorScheme = Theme.of(context).colorScheme;
Widget page = DayPage();
Widget page = DayPage(AdventOfCodeDays.day1);
// The container for the current page, with its background color
// and subtle switching animation.