mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2025-12-24 03:49:30 +00:00
fix: correct type checking and imports in filtered library page
- Add shelfsdk import to router.dart for Filter types - Fix Media and MediaMetadata type checking using freezed mapOrNull - Handle all Media variants (book, bookMinified, bookExpanded) - Handle all MediaMetadata variants to extract title, subtitle, and authors - Fix BookMetadata accessing authors list instead of authorName property Resolves compilation errors in GitHub Actions build.
This commit is contained in:
parent
43712643a2
commit
8300cc7571
2 changed files with 76 additions and 18 deletions
|
|
@ -113,24 +113,81 @@ class LibraryItemListTile extends ConsumerWidget {
|
|||
String? subtitle;
|
||||
String? authorName;
|
||||
|
||||
if (media is MediaBook) {
|
||||
final metadata = media.metadata;
|
||||
if (metadata is BookMetadata) {
|
||||
title = metadata.title ?? 'Unknown';
|
||||
subtitle = metadata.subtitle;
|
||||
authorName = metadata.authorName;
|
||||
} else if (metadata is BookMetadataMinified) {
|
||||
title = metadata.title ?? 'Unknown';
|
||||
authorName = metadata.authorName;
|
||||
} else if (metadata is BookMetadataExpanded) {
|
||||
title = metadata.title ?? 'Unknown';
|
||||
subtitle = metadata.subtitle;
|
||||
final authors = metadata.authors;
|
||||
if (authors != null && authors.isNotEmpty) {
|
||||
authorName = authors.map((a) => a.name).join(', ');
|
||||
}
|
||||
}
|
||||
}
|
||||
// Use map to handle Media variants
|
||||
media.mapOrNull(
|
||||
book: (book) {
|
||||
final metadata = book.metadata;
|
||||
metadata.mapOrNull(
|
||||
book: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
if (m.authors.isNotEmpty) {
|
||||
authorName = m.authors.map((a) => a.name).join(', ');
|
||||
}
|
||||
},
|
||||
bookMinified: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
authorName = m.authorName;
|
||||
},
|
||||
bookExpanded: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
if (m.authors.isNotEmpty) {
|
||||
authorName = m.authors.map((a) => a.name).join(', ');
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
bookMinified: (book) {
|
||||
final metadata = book.metadata;
|
||||
metadata.mapOrNull(
|
||||
book: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
if (m.authors.isNotEmpty) {
|
||||
authorName = m.authors.map((a) => a.name).join(', ');
|
||||
}
|
||||
},
|
||||
bookMinified: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
authorName = m.authorName;
|
||||
},
|
||||
bookExpanded: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
if (m.authors.isNotEmpty) {
|
||||
authorName = m.authors.map((a) => a.name).join(', ');
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
bookExpanded: (book) {
|
||||
final metadata = book.metadata;
|
||||
metadata.mapOrNull(
|
||||
book: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
if (m.authors.isNotEmpty) {
|
||||
authorName = m.authors.map((a) => a.name).join(', ');
|
||||
}
|
||||
},
|
||||
bookMinified: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
authorName = m.authorName;
|
||||
},
|
||||
bookExpanded: (m) {
|
||||
title = m.title ?? 'Unknown';
|
||||
subtitle = m.subtitle;
|
||||
if (m.authors.isNotEmpty) {
|
||||
authorName = m.authors.map((a) => a.name).join(', ');
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
final imageUrl = apiSettings.activeServer != null
|
||||
? '${apiSettings.activeServer!.serverUrl}/api/items/${item.id}/cover'
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||
import 'package:vaani/features/downloads/view/downloads_page.dart';
|
||||
import 'package:vaani/features/explore/view/explore_page.dart';
|
||||
import 'package:vaani/features/explore/view/search_result_page.dart';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue