import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:island/services/tour.dart'; const List kStartTours = ['technical_review_intro']; class TourTriggerWidget extends HookConsumerWidget { final Widget child; const TourTriggerWidget({super.key, required this.child}); @override Widget build(BuildContext context, WidgetRef ref) { final tourStatus = ref.watch(tourStatusNotifierProvider.notifier); useEffect(() { Future(() async { for (final tour in kStartTours) { final widget = await tourStatus.showTour(tour); if (widget != null) { if (!context.mounted) return; await showModalBottomSheet( isScrollControlled: true, useRootNavigator: true, context: context, builder: (context) => widget, ); } } }); return null; }, [tourStatus]); return child; } }