fluffychat/lib/pages/chat_search/search_footer.dart
2025-12-21 10:38:52 +01:00

68 lines
2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:fluffychat/l10n/l10n.dart';
import 'package:fluffychat/utils/date_time_extension.dart';
class SearchFooter extends StatelessWidget {
final DateTime? searchedUntil;
final bool endReached, isLoading;
final void Function() onStartSearch;
const SearchFooter({
super.key,
required this.searchedUntil,
required this.endReached,
required this.isLoading,
required this.onStartSearch,
});
@override
Widget build(BuildContext context) {
if (endReached) {
return Center(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Text(L10n.of(context).noMoreResultsFound),
),
);
}
final theme = Theme.of(context);
final searchedUntil = this.searchedUntil;
return Center(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisSize: .min,
children: [
if (searchedUntil != null)
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: Text(
L10n.of(
context,
).chatSearchedUntil(searchedUntil.localizedTime(context)),
style: TextStyle(fontSize: 10.5),
),
),
TextButton.icon(
style: TextButton.styleFrom(
backgroundColor: theme.colorScheme.secondaryContainer,
foregroundColor: theme.colorScheme.onSecondaryContainer,
),
onPressed: isLoading ? null : onStartSearch,
icon: isLoading
? SizedBox.square(
dimension: 18,
child: const CircularProgressIndicator.adaptive(
strokeWidth: 2,
),
)
: const Icon(Icons.arrow_downward_outlined),
label: Text(L10n.of(context).searchMore),
),
],
),
),
);
}
}