fluffychat/lib/pages/chat_list/chat_list_header.dart
2025-08-25 15:43:17 -04:00

142 lines
5.8 KiB
Dart

// #Pangea
// import 'package:flutter/material.dart';
// import 'package:matrix/matrix.dart';
// import 'package:fluffychat/config/themes.dart';
// import 'package:fluffychat/l10n/l10n.dart';
// import 'package:fluffychat/pages/chat_list/chat_list.dart';
// import 'package:fluffychat/pages/chat_list/client_chooser_button.dart';
// import 'package:fluffychat/utils/sync_status_localization.dart';
// import '../../widgets/matrix.dart';
// class ChatListHeader extends StatelessWidget implements PreferredSizeWidget {
// final ChatListController controller;
// final bool globalSearch;
// const ChatListHeader({
// super.key,
// required this.controller,
// this.globalSearch = true,
// });
// @override
// Widget build(BuildContext context) {
// final theme = Theme.of(context);
// final client = Matrix.of(context).client;
// return SliverAppBar(
// floating: true,
// toolbarHeight: 72,
// pinned: FluffyThemes.isColumnMode(context),
// scrolledUnderElevation: 0,
// backgroundColor: Colors.transparent,
// automaticallyImplyLeading: false,
// title: StreamBuilder(
// stream: client.onSyncStatus.stream,
// builder: (context, snapshot) {
// final status = client.onSyncStatus.value ??
// const SyncStatusUpdate(SyncStatus.waitingForResponse);
// final hide = client.onSync.value != null &&
// status.status != SyncStatus.error &&
// client.prevBatch != null;
// return TextField(
// controller: controller.searchController,
// focusNode: controller.searchFocusNode,
// textInputAction: TextInputAction.search,
// onChanged: (text) => controller.onSearchEnter(
// text,
// globalSearch: globalSearch,
// ),
// decoration: InputDecoration(
// filled: true,
// fillColor: theme.colorScheme.secondaryContainer,
// border: OutlineInputBorder(
// borderSide: BorderSide.none,
// borderRadius: BorderRadius.circular(99),
// ),
// contentPadding: EdgeInsets.zero,
// hintText: hide
// ? L10n.of(context).searchChatsRooms
// : status.calcLocalizedString(context),
// hintStyle: TextStyle(
// color: status.error != null
// ? Colors.orange
// : theme.colorScheme.onPrimaryContainer,
// fontWeight: FontWeight.normal,
// ),
// prefixIcon: hide
// ? controller.isSearchMode
// ? IconButton(
// tooltip: L10n.of(context).cancel,
// icon: const Icon(Icons.close_outlined),
// onPressed: controller.cancelSearch,
// color: theme.colorScheme.onPrimaryContainer,
// )
// : IconButton(
// onPressed: controller.startSearch,
// icon: Icon(
// Icons.search_outlined,
// color: theme.colorScheme.onPrimaryContainer,
// ),
// )
// : Container(
// margin: const EdgeInsets.all(12),
// width: 8,
// height: 8,
// child: Center(
// child: CircularProgressIndicator.adaptive(
// strokeWidth: 2,
// value: status.progress,
// valueColor: status.error != null
// ? const AlwaysStoppedAnimation<Color>(
// Colors.orange,
// )
// : null,
// ),
// ),
// ),
// suffixIcon: controller.isSearchMode && globalSearch
// ? controller.isSearching
// ? const Padding(
// padding: EdgeInsets.symmetric(
// vertical: 10.0,
// horizontal: 12,
// ),
// child: SizedBox.square(
// dimension: 24,
// child: CircularProgressIndicator.adaptive(
// strokeWidth: 2,
// ),
// ),
// )
// : TextButton.icon(
// onPressed: controller.setServer,
// style: TextButton.styleFrom(
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(99),
// ),
// textStyle: const TextStyle(fontSize: 12),
// ),
// icon: const Icon(Icons.edit_outlined, size: 16),
// label: Text(
// controller.searchServer ??
// Matrix.of(context).client.homeserver!.host,
// maxLines: 2,
// ),
// )
// : SizedBox(
// width: 0,
// child: ClientChooserButton(controller),
// ),
// ),
// );
// },
// ),
// );
// }
// @override
// Size get preferredSize => const Size.fromHeight(56);
// }
// Pangea#