import 'package:flutter/material.dart'; class FullScreenImageViewer extends StatefulWidget { final List photoUrls; final int initialIndex; const FullScreenImageViewer({ super.key, required this.photoUrls, required this.initialIndex, }); @override State createState() => _FullScreenImageViewerState(); } class _FullScreenImageViewerState extends State { late PageController _pageController; @override void initState() { super.initState(); _pageController = PageController(initialPage: widget.initialIndex); } String _resolveImageUrl(String path) { if (path.startsWith('http://') || path.startsWith('https://')) return path; return 'https://sharing-api.sparkit.by/$path'; } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.black, appBar: AppBar( backgroundColor: Colors.transparent, iconTheme: const IconThemeData(color: Colors.white), ), body: PageView.builder( controller: _pageController, itemCount: widget.photoUrls.length, itemBuilder: (context, index) { final photo = widget.photoUrls[index]; final imageUrl = _resolveImageUrl(photo); return InteractiveViewer( child: Center( child: Image.network( imageUrl, fit: BoxFit.contain, errorBuilder: (context, error, stackTrace) { return const Icon(Icons.error, color: Colors.white, size: 64); }, ), ), ); }, ), ); } }