mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-08 23:18:16 -07:00
83 lines
2.2 KiB
Dart
83 lines
2.2 KiB
Dart
// ignore_for_file: public_member_api_docs, sort_constructors_first
|
|
|
|
import 'package:fladder/jellyfin/jellyfin_open_api.enums.swagger.dart';
|
|
import 'package:fladder/screens/library/tabs/favourites_tab.dart';
|
|
import 'package:fladder/screens/library/tabs/library_tab.dart';
|
|
import 'package:fladder/screens/library/tabs/timeline_tab.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:fladder/models/view_model.dart';
|
|
import 'package:fladder/screens/library/tabs/recommendations_tab.dart';
|
|
|
|
class LibraryTabs {
|
|
final String name;
|
|
final Icon icon;
|
|
final Widget page;
|
|
final FloatingActionButton? floatingActionButton;
|
|
LibraryTabs({
|
|
required this.name,
|
|
required this.icon,
|
|
required this.page,
|
|
this.floatingActionButton,
|
|
});
|
|
|
|
static List<LibraryTabs> getLibraryForType(ViewModel viewModel, CollectionType type) {
|
|
LibraryTabs recommendTab() {
|
|
return LibraryTabs(
|
|
name: "Recommended",
|
|
icon: const Icon(Icons.recommend_rounded),
|
|
page: RecommendationsTab(viewModel: viewModel),
|
|
);
|
|
}
|
|
|
|
LibraryTabs timelineTab() {
|
|
return LibraryTabs(
|
|
name: "Timeline",
|
|
icon: const Icon(Icons.timeline),
|
|
page: TimelineTab(viewModel: viewModel),
|
|
);
|
|
}
|
|
|
|
LibraryTabs favouritesTab() {
|
|
return LibraryTabs(
|
|
name: "Favourites",
|
|
icon: const Icon(Icons.favorite_rounded),
|
|
page: FavouritesTab(viewModel: viewModel),
|
|
);
|
|
}
|
|
|
|
LibraryTabs libraryTab() {
|
|
return LibraryTabs(
|
|
name: "Library",
|
|
icon: const Icon(Icons.book_rounded),
|
|
page: LibraryTab(viewModel: viewModel),
|
|
);
|
|
}
|
|
|
|
switch (type) {
|
|
case CollectionType.tvshows:
|
|
case CollectionType.movies:
|
|
return [
|
|
libraryTab(),
|
|
recommendTab(),
|
|
favouritesTab(),
|
|
];
|
|
case CollectionType.books:
|
|
case CollectionType.homevideos:
|
|
return [
|
|
libraryTab(),
|
|
timelineTab(),
|
|
recommendTab(),
|
|
favouritesTab(),
|
|
];
|
|
case CollectionType.boxsets:
|
|
case CollectionType.playlists:
|
|
case CollectionType.folders:
|
|
return [
|
|
libraryTab(),
|
|
];
|
|
default:
|
|
return [];
|
|
}
|
|
}
|
|
}
|