This commit is contained in:
kodjomoustapha 2024-03-19 17:42:29 +01:00
parent 85cbd9271b
commit 123c05f393
7 changed files with 15 additions and 96 deletions

4
Cargo.lock generated
View file

@ -1117,9 +1117,9 @@ dependencies = [
[[package]]
name = "rinf"
version = "6.6.3"
version = "6.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98fbe84dbe539079b4a200e1d815229bd12fee0e984768cb88e62febec705752"
checksum = "2cac0dc63e157673747bd0286a8565762fd34d0890ff7eedb90eba035dfa4c43"
dependencies = [
"allo-isolate",
"backtrace",

View file

@ -6,7 +6,6 @@ import 'package:mangayomi/main.dart';
import 'package:mangayomi/models/download.dart';
import 'package:mangayomi/modules/history/providers/isar_providers.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/modules/library/widgets/measure_widget_sync.dart';
import 'package:mangayomi/modules/manga/reader/providers/push_router.dart';
import 'package:mangayomi/models/manga.dart';
import 'package:mangayomi/modules/widgets/custom_extended_image_provider.dart';
@ -21,9 +20,6 @@ import 'package:mangayomi/modules/widgets/gridview_widget.dart';
import 'package:mangayomi/modules/widgets/manga_image_card_widget.dart';
import 'package:mangayomi/modules/widgets/progress_center.dart';
final animeCardheightStateProvider = StateProvider<double>((ref) => 300);
final mangaCardheightStateProvider = StateProvider<double>((ref) => 300);
class LibraryGridViewWidget extends StatefulWidget {
final bool isCoverOnlyGrid;
final bool isComfortableGrid;
@ -56,9 +52,7 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
return Consumer(builder: (context, ref, child) {
final isLongPressed = ref.watch(isLongPressedMangaStateProvider);
final isManga = widget.isManga;
final height = ref.watch(isManga
? mangaCardheightStateProvider
: animeCardheightStateProvider);
final gridSize =
ref.watch(libraryGridSizeStateProvider(isManga: isManga));
return GridViewWidget(
@ -70,27 +64,7 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
return Builder(builder: (context) {
bool isLocalArchive = entry.isLocalArchive ?? false;
return SizedBox(
height: height +
(widget.isComfortableGrid &&
(gridSize != null && gridSize != 0)
? 22
: 0),
child: MeasureWidgetSizeSync(
onCalculateSize: (size) {
if (size != null) {
final newHeight = size.width * 1.5;
if (height.ceil() != newHeight.ceil()) {
ref
.read((isManga
? mangaCardheightStateProvider
: animeCardheightStateProvider)
.notifier)
.state = size.width * 1.5;
}
}
},
child: Padding(
return Padding(
padding: const EdgeInsets.all(2),
child: CoverViewWidget(
isLongPressed: widget.mangaIdsList.contains(entry.id),
@ -363,9 +337,7 @@ class _LibraryGridViewWidgetState extends State<LibraryGridViewWidget> {
)))
],
),
),
),
);
);
});
},
);

View file

@ -1,25 +0,0 @@
import 'package:flutter/material.dart';
class MeasureWidgetSizeSync extends StatefulWidget {
final Function(Size? size) onCalculateSize;
final Widget child;
const MeasureWidgetSizeSync(
{super.key, required this.onCalculateSize, required this.child});
@override
State<MeasureWidgetSizeSync> createState() => _MeasureWidgetSizeSyncState();
}
class _MeasureWidgetSizeSyncState extends State<MeasureWidgetSizeSync> {
final _key = GlobalKey();
@override
Widget build(BuildContext context) {
if (context.mounted) {
WidgetsBinding.instance.addPostFrameCallback(
(_) => widget.onCalculateSize(_key.currentContext?.size));
}
return Container(key: _key, child: widget.child);
}
}

View file

@ -8,8 +8,6 @@ import 'package:mangayomi/eval/dart/model/m_pages.dart';
import 'package:mangayomi/models/settings.dart';
import 'package:mangayomi/models/source.dart';
import 'package:mangayomi/modules/library/providers/library_state_provider.dart';
import 'package:mangayomi/modules/library/widgets/library_gridview_widget.dart';
import 'package:mangayomi/modules/library/widgets/measure_widget_sync.dart';
import 'package:mangayomi/modules/manga/home/providers/state_provider.dart';
import 'package:mangayomi/modules/manga/home/widget/filter_widget.dart';
import 'package:mangayomi/modules/widgets/listview_widget.dart';
@ -533,9 +531,7 @@ class _MangaHomeScreenState extends ConsumerState<MangaHomeScreen> {
final gridSize = ref.watch(
libraryGridSizeStateProvider(
isManga: source.isManga!));
final height = ref.watch(source.isManga!
? mangaCardheightStateProvider
: animeCardheightStateProvider);
return GridViewWidget(
gridSize: gridSize,
controller: _scrollController,
@ -546,35 +542,11 @@ class _MangaHomeScreenState extends ConsumerState<MangaHomeScreen> {
if (index == _length) {
return buildProgressIndicator();
}
return SizedBox(
height: height +
(isComfortableGrid &&
(gridSize != null &&
gridSize != 0)
? 22
: 0),
child: MeasureWidgetSizeSync(
onCalculateSize: (size) {
if (size != null) {
final newHeight = size.width * 1.5;
if (height.ceil() !=
newHeight.ceil()) {
ref
.read((source.isManga!
? mangaCardheightStateProvider
: animeCardheightStateProvider)
.notifier)
.state = size.width * 1.5;
}
}
},
child: MangaHomeImageCard(
isManga: source.isManga ?? true,
manga: _mangaList[index],
source: source,
isComfortableGrid: isComfortableGrid,
),
),
return MangaHomeImageCard(
isManga: source.isManga ?? true,
manga: _mangaList[index],
source: source,
isComfortableGrid: isComfortableGrid,
);
},
);

View file

@ -12,7 +12,7 @@ edition = "2021"
crate-type = ["lib", "cdylib", "staticlib"]
[dependencies]
rinf = "6.6.3"
rinf = "6.7.0"
allo-isolate = "0.1.24"
wasm-bindgen = "0.2.90"
prost = "0.12.3"

View file

@ -294,10 +294,10 @@ packages:
dependency: "direct main"
description:
name: dart_eval
sha256: "2c591884656b550d9d532d2e5ee72341d3dd07df1e0fd379a837d501a41bc00c"
sha256: "4dd114e350fb24a9fdfef1e93c7f491f6eb1ed34633f102a7c0a34486126b602"
url: "https://pub.dev"
source: hosted
version: "0.7.4"
version: "0.7.9"
dart_style:
dependency: transitive
description:

View file

@ -44,7 +44,7 @@ dependencies:
file_picker: ^6.1.1
path_provider: ^2.1.2
scrollable_positioned_list: ^0.3.5
dart_eval: ^0.7.4
dart_eval: ^0.7.9
json_path: ^0.7.0
bot_toast: ^4.1.3
flutter_web_auth_2: ^3.1.1