import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../library/playlist_service.dart'; /// Dialog zum Anlegen einer neuen Playlist. Gibt bei Erfolg die neue /// Playlist-ID zurück (z.B. um direkt danach einen Song hinzuzufügen). class CreatePlaylistDialog extends StatefulWidget { const CreatePlaylistDialog({super.key}); @override State createState() => _CreatePlaylistDialogState(); } class _CreatePlaylistDialogState extends State { final _controller = TextEditingController(); @override void dispose() { _controller.dispose(); super.dispose(); } Future _create() async { final name = _controller.text.trim(); if (name.isEmpty) return; final id = await context.read().createPlaylist(name); if (mounted) Navigator.pop(context, id); } @override Widget build(BuildContext context) { final canCreate = _controller.text.trim().isNotEmpty; return AlertDialog( title: const Text('Neue Playlist'), content: TextField( controller: _controller, autofocus: true, decoration: const InputDecoration(hintText: 'Name der Playlist'), onChanged: (_) => setState(() {}), onSubmitted: (_) => canCreate ? _create() : null, ), actions: [ TextButton( onPressed: () => Navigator.pop(context), child: const Text('Abbrechen'), ), TextButton( onPressed: canCreate ? _create : null, child: const Text('Erstellen'), ), ], ); } }