Compare commits

..

2 Commits

Author SHA1 Message Date
873a3b426d
feat(bloc_layout): add consumer layouts
All checks were successful
continuous-integration/drone/pr Build is passing
2023-05-15 16:16:02 +02:00
296bb0175e
feat(auth): add mocked cache data source 2023-05-15 16:15:42 +02:00
7 changed files with 150 additions and 0 deletions

View File

@ -0,0 +1,41 @@
// Copyright (C) 2023 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:wyatt_authentication_bloc/wyatt_authentication_bloc.dart';
/// {@template authentication_mock_cache_data_source_impl}
/// A data source that manages the cache strategy.
/// This implementation is mocked.
/// {@endtemplate}
class AuthenticationMockCacheDataSourceImpl<Data>
extends AuthenticationCacheDataSource<Data> {
/// {@macro authentication_mock_cache_data_source_impl}
AuthenticationMockCacheDataSourceImpl();
@override
Future<void> cacheAccount(Account account) => Future.value();
/// Always returns null.
@override
Future<Account?> getCachedAccount() async {
await Future<void>.delayed(const Duration(milliseconds: 200));
return null;
}
@override
Future<void> removeCachedAccount() => Future.value();
}

View File

@ -15,5 +15,6 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
export 'authentication_firebase_cache_data_source_impl.dart';
export 'authentication_mock_cache_data_source_impl.dart';
export 'authentication_secure_storage_cache_data_source_impl.dart';
export 'authentication_session_data_source_impl.dart';

View File

@ -0,0 +1,23 @@
// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:flutter_bloc/flutter_bloc.dart' as bloc_base;
import 'package:wyatt_bloc_helper/wyatt_bloc_helper.dart';
abstract class CubitConsumerBase<Cubit extends bloc_base.Cubit<State>,
State extends Object> extends CubitConsumerScreen<Cubit, State> {
const CubitConsumerBase({super.key});
}

View File

@ -0,0 +1,31 @@
// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart' as bloc_base;
import 'package:wyatt_bloc_layout/wyatt_bloc_layout.dart';
import 'package:wyatt_crud_bloc/wyatt_crud_bloc.dart';
abstract class CubitConsumerCrudBase<Cubit extends bloc_base.Cubit<CrudState>,
CrudSuccessState extends CrudSuccess>
extends CubitConsumerBase<Cubit, CrudState>
with CrudMixin<Cubit, CrudSuccessState> {
const CubitConsumerCrudBase({super.key});
@override
Widget onBuild(BuildContext context, CrudState state) =>
crudBuilder(context, state);
}

View File

@ -0,0 +1,25 @@
// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:flutter_bloc/flutter_bloc.dart' as bloc_base;
import 'package:wyatt_bloc_layout/wyatt_bloc_layout.dart';
import 'package:wyatt_crud_bloc/wyatt_crud_bloc.dart';
abstract class CubitConsumerCrudItemBase<
Cubit extends bloc_base.Cubit<CrudState>,
T extends Object?> extends CubitConsumerCrudBase<Cubit, CrudLoaded<T>> {
const CubitConsumerCrudItemBase({super.key});
}

View File

@ -0,0 +1,25 @@
// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:flutter_bloc/flutter_bloc.dart' as bloc_base;
import 'package:wyatt_bloc_layout/wyatt_bloc_layout.dart';
import 'package:wyatt_crud_bloc/wyatt_crud_bloc.dart';
abstract class CubitConsumerCrudListBase<
Cubit extends bloc_base.Cubit<CrudState>,
T extends Object?> extends CubitConsumerCrudBase<Cubit, CrudListLoaded<T>> {
const CubitConsumerCrudListBase({super.key});
}

View File

@ -15,6 +15,10 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
export './bottom_navigation_bar_bloc_layout/bottom_navigation_bar_bloc_layout.dart';
export './cubit_consumer_base.dart';
export './cubit_consumer_crud_base.dart';
export './cubit_consumer_crud_item_base.dart';
export './cubit_consumer_crud_list_base.dart';
export './cubit_screen_base.dart';
export './cubit_screen_crud_base.dart';
export './cubit_screen_crud_item_base.dart';