Files
companion/lib/features/onboarding/onboarding_screen.dart
T
2026-05-07 18:35:58 +02:00

47 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'steps/step_admin_user.dart';
import 'steps/step_floor_plan.dart';
import 'steps/step_sensors.dart';
import 'steps/step_tags.dart';
import 'steps/step_done.dart';
class OnboardingScreen extends ConsumerStatefulWidget {
const OnboardingScreen({super.key});
@override
ConsumerState<OnboardingScreen> createState() => _OnboardingScreenState();
}
class _OnboardingScreenState extends ConsumerState<OnboardingScreen> {
int _step = 0;
void _advance() => setState(() => _step++);
@override
Widget build(BuildContext context) {
final steps = <Widget>[
StepAdminUser(onComplete: _advance),
StepFloorPlan(onComplete: _advance),
StepSensors(onComplete: _advance),
StepTags(onComplete: _advance),
StepDone(onComplete: () => context.go('/floorplan')),
];
return Scaffold(
appBar: AppBar(
title: const Text('Setup'),
bottom: PreferredSize(
preferredSize: const Size.fromHeight(4),
child: LinearProgressIndicator(
value: (_step + 1) / steps.length,
),
),
),
body: steps[_step],
);
}
}