Files
plezy/lib/mixins/library_tab_state.dart
T

23 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
import '../media/media_library.dart';
import '../media/media_server_client.dart';
import '../services/plex_client.dart';
import '../utils/provider_extensions.dart';
/// Mixin providing common functionality for library tab screens
/// Provides server-specific client resolution for multi-server support
mixin LibraryTabStateMixin<T extends StatefulWidget> on State<T> {
MediaLibrary get library;
/// Get the [PlexClient] for this library's server. Throws if unavailable.
/// Use [getMediaClientForLibrary] in code paths that work for both Plex
/// and Jellyfin via the [MediaServerClient] interface — this getter is
/// for Plex-only methods (collections, metadata edit, etc.).
PlexClient getClientForLibrary() => context.getPlexClientForLibrary(library);
/// Get a backend-neutral [MediaServerClient] for this library's server.
/// Throws if unavailable. Prefer this over [getClientForLibrary] for any
/// flow that doesn't strictly need Plex-only APIs.
MediaServerClient getMediaClientForLibrary() => context.getMediaClientForLibrary(library);
}