import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart' show rootBundle; import 'package:flutter_markdown/flutter_markdown.dart'; import 'globals.dart' as globals; import 'mainDrawer.dart'; abstract class MarkdownPage extends StatefulWidget { const MarkdownPage( {super.key, required this.title, required this.route, required this.file}); final String title; final Future file; final String route; @override _MarkdownPageState createState() => _MarkdownPageState(title: title, file: file, route: route); } class _MarkdownPageState extends State { _MarkdownPageState( {required this.title, required this.file, required this.route}); final String title; final String route; final Future file; String pageData = ''; @override Widget build(BuildContext context) { file.then((String fileSync) { rootBundle .loadString(fileSync, cache: !globals.isDevelopment) .then((String pageData) { setState(() { this.pageData = pageData; }); }); }); return Scaffold( appBar: AppBar(title: Text(title)), drawer: MainDrawer(context, route), body: Markdown(data: pageData)); } }