mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-03-26 08:54:42 +01:00
Back to top when tapping the Photos navigation button again
This commit is contained in:
parent
33b26d5ca1
commit
bbdfe10a8d
2 changed files with 27 additions and 21 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:event_bus/event_bus.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:kiwi/kiwi.dart';
|
import 'package:kiwi/kiwi.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
@ -126,39 +127,32 @@ class _HomeState extends State<Home> with TickerProviderStateMixin {
|
||||||
Widget _buildPage(BuildContext context, int index) {
|
Widget _buildPage(BuildContext context, int index) {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
return _buildPhotosPage(context);
|
return HomePhotos(
|
||||||
|
account: widget.account,
|
||||||
|
);
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
return _buildSearchPage(context);
|
return HomeSearch(
|
||||||
|
account: widget.account,
|
||||||
|
);
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
return _buildAlbumsPage(context);
|
return HomeAlbums(
|
||||||
|
account: widget.account,
|
||||||
|
);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw ArgumentError("Invalid page index: $index");
|
throw ArgumentError("Invalid page index: $index");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildPhotosPage(BuildContext context) {
|
|
||||||
return HomePhotos(
|
|
||||||
account: widget.account,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildSearchPage(BuildContext context) {
|
|
||||||
return HomeSearch(
|
|
||||||
account: widget.account,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildAlbumsPage(BuildContext context) {
|
|
||||||
return HomeAlbums(
|
|
||||||
account: widget.account,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _onTapNavItem(int index) {
|
void _onTapNavItem(int index) {
|
||||||
if (index == _nextPage) {
|
if (index == _nextPage) {
|
||||||
|
if (index == 0) {
|
||||||
|
KiwiContainer()
|
||||||
|
.resolve<EventBus>()
|
||||||
|
.fire(const HomePhotosBackToTopEvent());
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,10 @@ import 'package:visibility_detector/visibility_detector.dart';
|
||||||
|
|
||||||
part 'home_photos.g.dart';
|
part 'home_photos.g.dart';
|
||||||
|
|
||||||
|
class HomePhotosBackToTopEvent {
|
||||||
|
const HomePhotosBackToTopEvent();
|
||||||
|
}
|
||||||
|
|
||||||
class HomePhotos extends StatefulWidget {
|
class HomePhotos extends StatefulWidget {
|
||||||
const HomePhotos({
|
const HomePhotos({
|
||||||
Key? key,
|
Key? key,
|
||||||
|
@ -85,10 +89,12 @@ class _HomePhotosState extends State<HomePhotos>
|
||||||
_web?.onInitState();
|
_web?.onInitState();
|
||||||
_prefUpdatedListener.begin();
|
_prefUpdatedListener.begin();
|
||||||
_imageProcessorUploadSuccessListener?.begin();
|
_imageProcessorUploadSuccessListener?.begin();
|
||||||
|
_onBackToTopListener.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
dispose() {
|
dispose() {
|
||||||
|
_onBackToTopListener.end();
|
||||||
_prefUpdatedListener.end();
|
_prefUpdatedListener.end();
|
||||||
_imageProcessorUploadSuccessListener?.end();
|
_imageProcessorUploadSuccessListener?.end();
|
||||||
_web?.onDispose();
|
_web?.onDispose();
|
||||||
|
@ -524,6 +530,10 @@ class _HomePhotosState extends State<HomePhotos>
|
||||||
_hasFiredMetadataTask.value = false;
|
_hasFiredMetadataTask.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _onBackToTop(HomePhotosBackToTopEvent ev) {
|
||||||
|
_scrollController.jumpTo(0);
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> _tryStartMetadataTask({
|
Future<void> _tryStartMetadataTask({
|
||||||
bool ignoreFired = false,
|
bool ignoreFired = false,
|
||||||
}) async {
|
}) async {
|
||||||
|
@ -765,6 +775,8 @@ class _HomePhotosState extends State<HomePhotos>
|
||||||
? null
|
? null
|
||||||
: NativeEventListener<ImageProcessorUploadSuccessEvent>(
|
: NativeEventListener<ImageProcessorUploadSuccessEvent>(
|
||||||
_onImageProcessorUploadSuccessEvent);
|
_onImageProcessorUploadSuccessEvent);
|
||||||
|
late final _onBackToTopListener =
|
||||||
|
AppEventListener<HomePhotosBackToTopEvent>(_onBackToTop);
|
||||||
|
|
||||||
late final _Web? _web = platform_k.isWeb ? _Web(this) : null;
|
late final _Web? _web = platform_k.isWeb ? _Web(this) : null;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue