mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-16 11:48:42 +02:00
feat: add new UI tabs for movies and series, including mobile-specific versions with search and pagination.
This commit is contained in:
1 parent
d48d25f65e
commit
6a71f58a36
29 files changed
+78
-78
No files matched your search
@@ -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)
|
||||
|
||||
@@ -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>;
|
||||
|
||||
|
||||
@@ -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>;
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in new issue
Block a user