import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';

class AppBackground extends StatelessWidget {
  final Widget child;
  const AppBackground({super.key, required this.child});

  @override
  Widget build(BuildContext context) {
    return ScaffoldMessenger(
      child: FutureBuilder(
        future:
            kIsWeb ? Future.value(null) : getApplicationDocumentsDirectory(),
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            final path = '${snapshot.data!.path}/app_background_image';
            final file = File(path);
            if (file.existsSync()) {
              return Container(
                color: Theme.of(context).colorScheme.surface,
                child: Container(
                  decoration: BoxDecoration(
                    backgroundBlendMode: BlendMode.darken,
                    color: Theme.of(context).colorScheme.surface,
                    image: DecorationImage(
                      opacity: 0.2,
                      image: FileImage(file),
                      fit: BoxFit.cover,
                    ),
                  ),
                  child: child,
                ),
              );
            }
          }

          return Material(
            color: Theme.of(context).colorScheme.surface,
            child: child,
          );
        },
      ),
    );
  }
}