~repos /only-bible-app
GIT_CONFIG_PARAMETERS="'http.version=HTTP/1.1'" git clone
https://git.pyrossh.dev/only-bible-app.git
Discussions:
https://groups.google.com/g/rust-embed-devs
The only bible app you will ever need. No ads. No in-app purchases. No distractions.
7e881525
—
pyrossh 1 month ago
fix routing issues
- lib/app.dart +2 -2
- lib/store/actions_navigation.dart +7 -5
lib/app.dart
CHANGED
|
@@ -22,10 +22,10 @@ class App extends StatelessWidget {
|
|
|
22
22
|
pageBuilder: (context, state) {
|
|
23
23
|
final bookIndex = int.parse(state.pathParameters["bookIndex"]!);
|
|
24
24
|
final chapterIndex = int.parse(state.pathParameters["chapterIndex"]!);
|
|
25
|
-
final extra = state.extra as ({TextDirection? slideDir, int? scrollToVerse})?;
|
|
25
|
+
final extra = state.extra as ({TextDirection? slideDir, int? scrollToVerse, int navId})?;
|
|
26
26
|
final slideDir = extra?.slideDir;
|
|
27
27
|
final scrollToVerse = extra?.scrollToVerse;
|
|
28
|
-
final pageKey = ValueKey('$bookIndex-$chapterIndex');
|
|
28
|
+
final pageKey = ValueKey('$bookIndex-$chapterIndex-${extra?.navId ?? 0}');
|
|
29
29
|
if (slideDir != null) {
|
|
30
30
|
return CustomTransitionPage(
|
|
31
31
|
key: pageKey,
|
lib/store/actions_navigation.dart
CHANGED
|
@@ -114,12 +114,14 @@ class GoToChapterAction extends ReduxAction<AppState> {
|
|
|
114
114
|
@override
|
|
115
115
|
AppState reduce() {
|
|
116
116
|
SoLoud.instance.disposeAllSources();
|
|
117
|
+
final navId = DateTime.now().millisecondsSinceEpoch;
|
|
117
118
|
if (book > state.savedBook || (book == state.savedBook && chapter > state.savedChapter)) {
|
|
118
|
-
router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.ltr, scrollToVerse: verse));
|
|
119
|
+
router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.ltr, scrollToVerse: verse, navId: navId));
|
|
119
120
|
} else if (book < state.savedBook || (book == state.savedBook && chapter < state.savedChapter)) {
|
|
120
|
-
router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.rtl, scrollToVerse: verse));
|
|
121
|
+
router.push("/chapter/$book/$chapter", extra: (slideDir: TextDirection.rtl, scrollToVerse: verse, navId: navId));
|
|
121
122
|
} else {
|
|
122
|
-
router.push("/chapter/$book/$chapter",
|
|
123
|
+
router.push("/chapter/$book/$chapter",
|
|
124
|
+
extra: (slideDir: null as TextDirection?, scrollToVerse: verse, navId: navId));
|
|
123
125
|
}
|
|
124
126
|
return state.copy(
|
|
125
127
|
savedBook: book,
|
|
@@ -156,7 +158,7 @@ class NextChapterAction extends ReduxAction<AppState> {
|
|
|
156
158
|
SoLoud.instance.disposeAllSources();
|
|
157
159
|
router.pushReplacement(
|
|
158
160
|
"/chapter/$newBook/$newChapter",
|
|
159
|
-
extra: (slideDir: TextDirection.ltr, scrollToVerse: null as int?),
|
|
161
|
+
extra: (slideDir: TextDirection.ltr, scrollToVerse: null as int?, navId: DateTime.now().millisecondsSinceEpoch),
|
|
160
162
|
);
|
|
161
163
|
return state.copy(
|
|
162
164
|
savedBook: newBook,
|
|
@@ -198,7 +200,7 @@ class PreviousChapterAction extends ReduxAction<AppState> {
|
|
|
198
200
|
SoLoud.instance.disposeAllSources();
|
|
199
201
|
router.pushReplacement(
|
|
200
202
|
"/chapter/$newBook/$newChapter",
|
|
201
|
-
extra: (slideDir: TextDirection.rtl, scrollToVerse: null as int?),
|
|
203
|
+
extra: (slideDir: TextDirection.rtl, scrollToVerse: null as int?, navId: DateTime.now().millisecondsSinceEpoch),
|
|
202
204
|
);
|
|
203
205
|
return state.copy(
|
|
204
206
|
savedBook: newBook,
|