display error banners below ente logo and search icon

This commit is contained in:
ashilkn 2022-08-24 15:54:12 +05:30
parent df76813c2d
commit 59c93e1b23
2 changed files with 21 additions and 19 deletions

View file

@ -49,11 +49,6 @@ class HeaderErrorWidget extends StatelessWidget {
), ),
), ),
const Padding(padding: EdgeInsets.all(12)), const Padding(padding: EdgeInsets.all(12)),
const Divider(
thickness: 2,
height: 0,
),
const Padding(padding: EdgeInsets.all(12)),
], ],
), ),
); );
@ -93,11 +88,6 @@ class HeaderErrorWidget extends StatelessWidget {
), ),
), ),
const Padding(padding: EdgeInsets.all(12)), const Padding(padding: EdgeInsets.all(12)),
const Divider(
thickness: 2,
height: 0,
),
const Padding(padding: EdgeInsets.all(12)),
], ],
), ),
); );
@ -105,6 +95,7 @@ class HeaderErrorWidget extends StatelessWidget {
return Center( return Center(
child: Column( child: Column(
children: [ children: [
const SizedBox(height: 8),
Icon( Icon(
Icons.error_outline, Icons.error_outline,
color: Colors.red[400], color: Colors.red[400],
@ -150,11 +141,6 @@ class HeaderErrorWidget extends StatelessWidget {
), ),
), ),
const Padding(padding: EdgeInsets.all(16)), const Padding(padding: EdgeInsets.all(16)),
const Divider(
thickness: 2,
height: 0,
),
const Padding(padding: EdgeInsets.all(12)),
], ],
), ),
); );

View file

@ -21,10 +21,20 @@ class StatusBarWidget extends StatefulWidget {
class _StatusBarWidgetState extends State<StatusBarWidget> { class _StatusBarWidgetState extends State<StatusBarWidget> {
StreamSubscription<SyncStatusUpdate> _subscription; StreamSubscription<SyncStatusUpdate> _subscription;
bool _showStatus = false; bool _showStatus = false;
bool _showErrorBanner = false;
@override @override
void initState() { void initState() {
_subscription = Bus.instance.on<SyncStatusUpdate>().listen((event) { _subscription = Bus.instance.on<SyncStatusUpdate>().listen((event) {
if (event.status == SyncStatus.error) {
setState(() {
_showErrorBanner = true;
});
} else {
setState(() {
_showErrorBanner = false;
});
}
if (event.status == SyncStatus.completedFirstGalleryImport || if (event.status == SyncStatus.completedFirstGalleryImport ||
event.status == SyncStatus.completedBackup) { event.status == SyncStatus.completedBackup) {
Future.delayed(const Duration(milliseconds: 2000), () { Future.delayed(const Duration(milliseconds: 2000), () {
@ -58,7 +68,11 @@ class _StatusBarWidgetState extends State<StatusBarWidget> {
Stack( Stack(
children: [ children: [
AnimatedOpacity( AnimatedOpacity(
opacity: _showStatus ? 0 : 1, opacity: _showStatus
? _showErrorBanner
? 1
: 0
: 1,
duration: const Duration(milliseconds: 1000), duration: const Duration(milliseconds: 1000),
child: const BrandingWidget(), child: const BrandingWidget(),
), ),
@ -70,7 +84,6 @@ class _StatusBarWidgetState extends State<StatusBarWidget> {
Positioned( Positioned(
right: 0, right: 0,
top: 0, top: 0,
bottom: 0,
child: FeatureFlagService.instance.enableSearchFeature() child: FeatureFlagService.instance.enableSearchFeature()
? Container( ? Container(
color: Theme.of(context) color: Theme.of(context)
@ -79,7 +92,7 @@ class _StatusBarWidgetState extends State<StatusBarWidget> {
height: kContainerHeight, height: kContainerHeight,
child: const SearchIconWidget(), child: const SearchIconWidget(),
) )
: const SizedBox.shrink(), : const SizedBox(height: 36, width: 48),
), ),
], ],
), ),
@ -135,7 +148,10 @@ class _SyncStatusWidgetState extends State<SyncStatusWidget> {
return const SizedBox.shrink(); return const SizedBox.shrink();
} }
if (_event.status == SyncStatus.error) { if (_event.status == SyncStatus.error) {
return HeaderErrorWidget(error: _event.error); return Padding(
padding: const EdgeInsets.only(top: kContainerHeight + 8),
child: HeaderErrorWidget(error: _event.error),
);
} }
if (_event.status == SyncStatus.completedBackup) { if (_event.status == SyncStatus.completedBackup) {
return const SyncStatusCompletedWidget(); return const SyncStatusCompletedWidget();