h4-projekt-gruppe-0-sm/mobile/lib/utils/build_if_session_exists.dart

34 lines
953 B
Dart

import 'package:flutter/material.dart';
import 'package:mobile/controllers/session.dart';
import 'package:mobile/models/user.dart';
import 'package:mobile/results.dart';
class BuildIfSessionExists extends StatelessWidget {
final SessionController sessionController;
final Widget placeholder;
final Widget Function(BuildContext, User) builder;
const BuildIfSessionExists(
{super.key,
required this.sessionController,
required this.placeholder,
required this.builder});
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: sessionController.user(),
builder: (context, snapshot) {
final data = snapshot.data;
if (data == null) {
return placeholder;
}
if (data is Ok<User, Null>) {
final user = data.value;
return builder(context, user);
}
return Container();
});
}
}