import 'dart:collection'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../modeller/proje.dart'; /// Proje değişikliklerini stack'te tutar — Ctrl+Z / Ctrl+Y için. class GeriAlGeleri { final Queue _gecmis = Queue(); final Queue _ileri = Queue(); static const _maks = 50; bool get geriAlinabilir => _gecmis.isNotEmpty; bool get ileriAlinabilir => _ileri.isNotEmpty; void kaydet(Proje p) { _gecmis.addLast(p); while (_gecmis.length > _maks) { _gecmis.removeFirst(); } _ileri.clear(); } Proje? geriAl(Proje suanki) { if (_gecmis.isEmpty) return null; final eski = _gecmis.removeLast(); _ileri.addLast(suanki); return eski; } Proje? ileriAl(Proje suanki) { if (_ileri.isEmpty) return null; final yeni = _ileri.removeLast(); _gecmis.addLast(suanki); return yeni; } void temizle() { _gecmis.clear(); _ileri.clear(); } } final geriAlProvider = Provider((ref) => GeriAlGeleri());