feat: Add response delay generator to mock_server

This commit is contained in:
Anton Stubenbord
2023-05-29 12:19:34 +02:00
parent 886b82df9e
commit f46ae73f49
4 changed files with 102 additions and 39 deletions

View File

@@ -1,6 +1,7 @@
import 'dart:async';
import 'package:collection/collection.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:paperless_mobile/core/navigation/push_routes.dart';
@@ -75,6 +76,17 @@ class _DocumentSearchPageState extends State<DocumentSearchPage> {
},
).padded(),
],
bottom: PreferredSize(
preferredSize: Size.fromHeight(1),
child: BlocBuilder<DocumentSearchCubit, DocumentSearchState>(
builder: (context, state) {
if (state.isLoading) {
return const LinearProgressIndicator();
}
return const SizedBox.shrink();
},
),
),
),
body: Column(
children: [
@@ -117,24 +129,17 @@ class _DocumentSearchPageState extends State<DocumentSearchPage> {
childCount: historyMatches.length,
),
),
if (state.isLoading)
const SliverToBoxAdapter(
child: Center(
child: CircularProgressIndicator(),
),
)
else
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => ListTile(
title: Text(suggestions[index]),
leading: const Icon(Icons.search),
onTap: () => _selectSuggestion(suggestions[index]),
trailing: _buildInsertSuggestionButton(suggestions[index]),
),
childCount: suggestions.length,
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => ListTile(
title: Text(suggestions[index]),
leading: const Icon(Icons.search),
onTap: () => _selectSuggestion(suggestions[index]),
trailing: _buildInsertSuggestionButton(suggestions[index]),
),
childCount: suggestions.length,
),
),
],
);
}

View File

@@ -75,7 +75,14 @@ Future<void> _initHive() async {
void main() async {
if (kDebugMode) {
await LocalMockApiServer().start();
// URL: http://localhost:3131
// Login: admin:test
await LocalMockApiServer(
RandomDelayGenerator(
const Duration(milliseconds: 100),
const Duration(milliseconds: 800),
),
).start();
}
await _initHive();
final widgetsBinding = WidgetsFlutterBinding.ensureInitialized();