fApp/lib/screens/detail copy.dart
2025-05-31 16:40:25 +02:00

83 lines
2.5 KiB
Dart

import 'package:f0ckapp/services/api.dart';
import 'package:flutter/material.dart';
import 'package:f0ckapp/models/mediaitem_detail.dart';
import 'package:f0ckapp/widgets/video_widget.dart';
class DetailScreen extends StatelessWidget {
final MediaItemDetail details;
const DetailScreen({super.key, required this.details});
@override
Widget build(BuildContext context) {
return GestureDetector(
onHorizontalDragEnd: (details) {
if (details.velocity.pixelsPerSecond.dx > 0) {
_navigateToPrev(context);
} else {
_navigateToNext(context);
}
},
child: VideoWidget(details: this.details)
);
//return VideoWidget(url: this.details.mediaUrl);
/*return GestureDetector(
onHorizontalDragEnd: (details) {
if (details.velocity.pixelsPerSecond.dx > 0) {
_navigateToPrev(context);
} else {
_navigateToNext(context);
}
},
child: Scaffold(
body: Column(
children: [
if (this.details.mime.startsWith('image'))
ClipRRect(
child: Image.network(this.details.mediaUrl, fit: BoxFit.cover),
)
else
VideoPost(
url: this.details.mediaUrl,
/*appBar: AppBar(
backgroundColor: const Color.fromARGB(255, 43, 43, 43),
foregroundColor: const Color.fromARGB(255, 255, 255, 255),
title: const Text('f0ck'),
centerTitle: true,
)*/
),
//const SizedBox(height: 10),
//Text('f0cked by: ${this.details.username}', style: const TextStyle(fontSize: 16, color: Color.fromARGB(255, 255, 255, 255))),
],
),
),
);*/
}
void _navigateToNext(BuildContext context) async {
try {
final nextDetails = await fetchMediaDetail(details.next);
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => DetailScreen(details: nextDetails)),
);
} catch (e) {
print('Fehler beim Laden des nächsten Items: $e');
}
}
void _navigateToPrev(BuildContext context) async {
try {
final prevDetails = await fetchMediaDetail(details.prev);
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => DetailScreen(details: prevDetails)),
);
} catch (e) {
print('Fehler beim Laden des vorherigen Items: $e');
}
}
}