m3_lightmeter/iap/lib/src/providers/films_provider.dart

52 lines
1.3 KiB
Dart
Raw Normal View History

2023-09-11 15:02:44 +00:00
import 'package:flutter/material.dart';
import 'package:m3_lightmeter_iap/src/providers/selectable_provider.dart';
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
class FilmsProvider extends StatefulWidget {
final Widget child;
const FilmsProvider({
required this.child,
super.key,
});
static FilmsProviderState of(BuildContext context) {
return context.findAncestorStateOfType<FilmsProviderState>()!;
}
@override
State<FilmsProvider> createState() => FilmsProviderState();
}
class FilmsProviderState extends State<FilmsProvider> {
@override
Widget build(BuildContext context) {
return Films(
2023-09-12 15:30:19 +00:00
values: const [Film.other()],
selected: const Film.other(),
2023-09-11 15:02:44 +00:00
child: widget.child,
);
}
2023-09-12 15:30:19 +00:00
void setFilm(Film film) {}
2023-09-11 15:02:44 +00:00
void saveFilms(List<Film> films) {}
}
class Films extends SelectableInheritedModel<Film> {
const Films({
super.key,
required super.values,
required super.selected,
required super.child,
});
static List<Film> of(BuildContext context) {
return InheritedModel.inheritFrom<Films>(context, aspect: SelectableAspect.list)!.values;
}
static Film selectedOf(BuildContext context) {
return InheritedModel.inheritFrom<Films>(context, aspect: SelectableAspect.selected)!.selected;
}
}