import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; @immutable class ShellBackdropState { final String primaryImageUrl; final List fallbackImageUrls; final Color accentColor; const ShellBackdropState({ required this.primaryImageUrl, this.fallbackImageUrls = const [], required this.accentColor, }); } class ShellBackdropNotifier extends Notifier { @override ShellBackdropState? build() => null; void show(ShellBackdropState backdrop) { state = backdrop; } void clear() { state = null; } } final shellBackdropProvider = NotifierProvider( ShellBackdropNotifier.new, ); class ShellLocationNotifier extends Notifier { @override String build() => '/'; void set(String loc) { if (state != loc) state = loc; } } final shellLocationProvider = NotifierProvider( ShellLocationNotifier.new, );