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;
|
|
|
|
}
|
|
|
|
}
|