import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; void useCustomStatusBarColor(Color color, bool isCurrentRoute) { final context = useContext(); final backgroundColor = Theme.of(context).backgroundColor; resetStatusbar() => SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle( statusBarColor: backgroundColor, // status bar color statusBarIconBrightness: backgroundColor.computeLuminance() > 0.179 ? Brightness.dark : Brightness.light, ), ); final statusBarColor = SystemChrome.latestStyle?.statusBarColor; useEffect(() { if (isCurrentRoute && statusBarColor != color) { SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle( statusBarColor: color, // status bar color statusBarIconBrightness: color.computeLuminance() > 0.179 ? Brightness.dark : Brightness.light, ), ); } else if (!isCurrentRoute && statusBarColor == color) { resetStatusbar(); } return; }, [color, isCurrentRoute, statusBarColor]); useEffect(() { return resetStatusbar; }, []); }