Scaffold out initial state management
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user