profileUi method

Widget profileUi({
  1. required Widget builder(
    1. BuildContext context,
    2. TProfile? profile
    ),
  2. Widget? loading,
})

A simplified reactive StreamBuilder UI helper for the user profile.

Implementation

Widget profileUi({
  required Widget Function(BuildContext context, TProfile? profile) builder,
  Widget? loading,
}) {
  return StreamBuilder<TProfile?>(
    stream: profileStream,
    initialData: profile,
    builder: (context, snapshot) {
      if (snapshot.hasError) {
        return const SizedBox.shrink();
      }
      // If there's no data yet and we're waiting/loading
      if (snapshot.connectionState == ConnectionState.waiting &&
          !snapshot.hasData) {
        return loading ?? const Center(child: CircularProgressIndicator());
      }
      return builder(context, snapshot.data);
    },
  );
}