didvan-app/lib/views/home/search/search.dart

38 lines
1.3 KiB
Dart

import 'package:didvan/models/enums.dart';
import 'package:didvan/views/home/home_state.dart';
import 'package:didvan/views/home/search/widgets/search_result_item.dart';
import 'package:didvan/views/widgets/state_handlers/empty_list.dart';
import 'package:didvan/views/widgets/state_handlers/state_handler.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class SearchPage extends StatelessWidget {
const SearchPage({super.key});
@override
Widget build(BuildContext context) {
final state = context.watch<HomeState>();
return SizedBox(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: StateHandler<HomeState>(
state: state,
enableEmptyState:
state.appState == AppState.idle && state.results.isEmpty,
emptyState: const EmptyList(),
onRetry: () => state.searchAll(page: state.page),
builder: (context, state) => ListView.builder(
padding: const EdgeInsets.all(16),
itemBuilder: (context, index) => Padding(
padding: const EdgeInsets.only(bottom: 16),
child: SearchResultItem(
item: state.results[index],
),
),
itemCount: state.results.length,
),
),
);
}
}