@@ -111,15 +111,17 @@ class HtmlWidget extends StatefulWidget {
111111 super (key: key);
112112
113113 @override
114- State <HtmlWidget > createState () => _HtmlWidgetState ();
114+ State <HtmlWidget > createState () => HtmlWidgetState ();
115115}
116116
117- class _HtmlWidgetState extends State <HtmlWidget > {
117+ /// State for a [HtmlWidget] .
118+ class HtmlWidgetState extends State <HtmlWidget > {
119+ late final BuildMetadata _rootMeta;
120+ late final _RootTsb _rootTsb;
121+ late final WidgetFactory _wf;
122+
118123 Widget ? _cache;
119124 Future <Widget >? _future;
120- late BuildMetadata _rootMeta;
121- late _RootTsb _rootTsb;
122- late WidgetFactory _wf;
123125
124126 bool get buildAsync =>
125127 widget.buildAsync ?? widget.html.length > kShouldBuildAsync;
@@ -201,6 +203,9 @@ class _HtmlWidgetState extends State<HtmlWidget> {
201203 return _tshWidget (_cache! );
202204 }
203205
206+ /// Scrolls to make sure the requested anchor is as visible as possible.
207+ Future <bool > scrollToAnchor (String id) => _wf.onTapUrl ('#$id ' );
208+
204209 Future <Widget > _buildAsync () async {
205210 final domNodes = await compute (_parseHtml, widget.html);
206211
@@ -234,7 +239,7 @@ class _HtmlWidgetState extends State<HtmlWidget> {
234239class _RootTsb extends TextStyleBuilder {
235240 TextStyleHtml ? _output;
236241
237- _RootTsb (_HtmlWidgetState state) {
242+ _RootTsb (HtmlWidgetState state) {
238243 enqueue (builder, state);
239244 }
240245
@@ -244,7 +249,7 @@ class _RootTsb extends TextStyleBuilder {
244249 return super .build (context);
245250 }
246251
247- TextStyleHtml builder (TextStyleHtml ? _, _HtmlWidgetState state) {
252+ TextStyleHtml builder (TextStyleHtml ? _, HtmlWidgetState state) {
248253 if (_output != null ) return _output! ;
249254 return _output = TextStyleHtml .root (
250255 state._wf.getDependencies (state.context),
@@ -255,7 +260,7 @@ class _RootTsb extends TextStyleBuilder {
255260 void reset () => _output = null ;
256261}
257262
258- Widget _buildBody (_HtmlWidgetState state, dom.NodeList domNodes) {
263+ Widget _buildBody (HtmlWidgetState state, dom.NodeList domNodes) {
259264 final rootMeta = state._rootMeta;
260265 final wf = state._wf;
261266 wf.reset (state);
0 commit comments