mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-05-23 20:02:15 +00:00
Also, change `entry.chapters.toList().reversed.toList().last` to `entry.chapters.first` Why reverse the list and then get the last item, when you can just get the first?
45 lines
1.6 KiB
Dart
45 lines
1.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:isar_community/isar.dart';
|
|
import 'package:mangayomi/main.dart';
|
|
import 'package:mangayomi/models/history.dart';
|
|
import 'package:mangayomi/models/manga.dart';
|
|
import 'package:mangayomi/modules/more/providers/incognito_mode_state_provider.dart';
|
|
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
|
|
import 'package:mangayomi/utils/extensions/chapter.dart';
|
|
|
|
class ContinueReaderButton extends ConsumerWidget {
|
|
final Manga entry;
|
|
|
|
const ContinueReaderButton({super.key, required this.entry});
|
|
|
|
@override
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
return StreamBuilder(
|
|
stream: isar.historys
|
|
.filter()
|
|
.mangaIdEqualTo(entry.id!)
|
|
.watch(fireImmediately: true),
|
|
builder: (context, snapshot) => GestureDetector(
|
|
onTap: () {
|
|
final incognitoMode = ref.read(incognitoModeStateProvider);
|
|
if (snapshot.hasData && snapshot.data!.isNotEmpty && !incognitoMode) {
|
|
snapshot.data!.first.chapter.value!.pushToReaderView(context);
|
|
} else {
|
|
entry.chapters.first.pushToReaderView(context);
|
|
}
|
|
},
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(5),
|
|
color: context.primaryColor.withValues(alpha: 0.9),
|
|
),
|
|
child: const Padding(
|
|
padding: EdgeInsets.all(7),
|
|
child: Icon(Icons.play_arrow, size: 19, color: Colors.white),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|