diff --git a/lib/providers/html_parser_provider.dart b/lib/providers/html_parser_provider.dart
index b4b0e7d8..1a5cef02 100644
--- a/lib/providers/html_parser_provider.dart
+++ b/lib/providers/html_parser_provider.dart
@@ -12,7 +12,7 @@ class HtmlParser extends _$HtmlParser {
@override
void build() {}
- uh.HtmlDocument parseResp(Response resp) {
+ uh.HtmlDocument parseResp(Response resp, {bool syncServerTime = true}) {
final doc = parseHtmlDocument((resp.data ?? '') as String);
final serverTime = doc
.querySelector('p.xs0')
@@ -24,7 +24,9 @@ class HtmlParser extends _$HtmlParser {
?.trim()
.parseToDateTimeUtc8() ??
DateTime.now();
- ref.read(serverDateTimeProvider.notifier).state = serverTime;
+ if (syncServerTime) {
+ ref.read(serverDateTimeProvider.notifier).state = serverTime;
+ }
return doc;
}
}
diff --git a/lib/screens/notice/notice_detail_page.dart b/lib/screens/notice/notice_detail_page.dart
index d1f9871a..55a90bc9 100644
--- a/lib/screens/notice/notice_detail_page.dart
+++ b/lib/screens/notice/notice_detail_page.dart
@@ -183,8 +183,10 @@ class _NoticeDetailPage extends ConsumerState {
}
if (snapshot.hasData) {
final data = snapshot.data!;
- final document =
- ref.read(htmlParserProvider.notifier).parseResp(data);
+ // Here we are in a future builder, where should avoid modifying providers, skip sync server time here.
+ final document = ref
+ .read(htmlParserProvider.notifier)
+ .parseResp(data, syncServerTime: false);
return _buildBody(context, document);
}
return Center(