feat: add new UI tabs for movies and series, including mobile-specific versions with search and pagination.

This commit is contained in:
Michael committed 2025-12-08 20:43:41 +01:00
1 parent d48d25f65e
commit 6a71f58a36
29 files changed
+78 -78

No files matched your search

+2 -2
View File
@@ -15,13 +15,13 @@ class ApiClient {
headers: {'Content-Type': 'application/json'},
connectTimeout: const Duration(seconds: 10),
receiveTimeout: const Duration(seconds: 10),
));
),);
// Add interceptor for logging
_dio.interceptors.add(LogInterceptor(
requestBody: true,
responseBody: true,
));
),);
}
/// Get base URL (same origin for production)
+1 -1
View File
@@ -11,7 +11,7 @@ class AuthApiService {
final response = await _api.post('/api/auth/login', data: {
'username': username,
'password': password,
});
},);
final data = response.data as Map<String, dynamic>;
+2 -2
View File
@@ -43,7 +43,7 @@ class PlaylistApiService {
'username': username,
'password': password,
'dns': dns,
});
},);
final data = response.data as Map<String, dynamic>;
@@ -80,7 +80,7 @@ class PlaylistApiService {
'username': username,
'password': password,
'dns': dns,
});
},);
final data = response.data as Map<String, dynamic>;
+4 -4
View File
@@ -20,7 +20,7 @@ class UserApiService {
passwordHash: '',
isAdmin: u['isAdmin'] as bool? ?? false,
createdAt: DateTime.tryParse(u['createdAt'] ?? '') ?? DateTime.now(),
)).toList();
),).toList();
}
return [];
} catch (e) {
@@ -40,7 +40,7 @@ class UserApiService {
'username': username,
'password': password,
'isAdmin': isAdmin,
});
},);
final data = response.data as Map<String, dynamic>;
@@ -75,7 +75,7 @@ class UserApiService {
_api.restoreToken();
final response = await _api.put('/api/users/$userId/password', data: {
'password': newPassword,
});
},);
final data = response.data as Map<String, dynamic>;
@@ -117,7 +117,7 @@ class UserApiService {
_api.restoreToken();
final response = await _api.put('/api/users/$userId', data: {
'isAdmin': isAdmin,
});
},);
final data = response.data as Map<String, dynamic>;
@@ -373,14 +373,14 @@ class _MediaCardState extends State<MediaCard>
color: Colors.black.withOpacity(0.5),
blurRadius: 20,
offset: const Offset(0, 10),
)
),
]
: [
BoxShadow(
color: Colors.black.withOpacity(0.2),
blurRadius: 4,
offset: const Offset(0, 2),
)
),
],
),
child: ClipRRect(