Compare commits

..

11 Commits

Author SHA1 Message Date
811ba789ee feat(bloc_layout): add components ids in crud mixin
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-28 14:33:48 +02:00
00d32e3db7 refactor(bloc_layouts): refactored block using the ui layout package, due to breaking changes 2023-08-28 14:20:49 +02:00
7fecc80674 refactor(ui_layouts): Refactored block using the UI components package, introducing breaking changes 2023-08-28 14:20:14 +02:00
244dc38089 refactor(ui_kit): Refactored code using the UI components package, due to breaking changes 2023-08-28 14:19:36 +02:00
18f34bc95c feat(ui_components): marking fields as private since it was accessible from getters 2023-08-28 14:18:15 +02:00
70030ed128 feat(ui_components)!: available same type component usage (#200) 2023-08-25 19:12:58 +02:00
bc57974896 fix(authentication_bloc): upgrade google sign to his major v
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-24 18:13:22 +02:00
251e9b28f0 fix: apply dart format
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-24 18:08:18 +02:00
52d60db85e fix: apply dart fix --apply
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-24 18:07:35 +02:00
68426786ec fix(authentication_bloc): go router version refactoring
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-24 18:06:07 +02:00
cccea8de8c chore: upgrade deps to major versions
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-24 18:00:21 +02:00
2 changed files with 33 additions and 114 deletions

View File

@ -11,124 +11,29 @@ and the Flutter guide for
[developing packages and plugins](https://flutter.dev/developing-packages).
-->
# Cloud Messaging BLoC Base
<p align="left">
<a href="https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis"><img src="https://img.shields.io/badge/Style-Wyatt%20Analysis-blue.svg?style=flat-square" alt="Style: Wyatt Analysis" /></a>
<img src="https://img.shields.io/badge/SDK-Flutter-blue?style=flat-square" alt="SDK: Flutter" />
</p>
This package serves as an abstraction for managing notifications within Flutter applications. It does not include a built-in data source implementation. Therefore, it is essential to provide your own implementation or utilize one of our various implementations listed below:
- [Firebase Cloud Messaging ](https://git.wyatt-studio.fr/Wyatt-FOSS/-/packages/pub/wyatt_cloud_messaging_bloc_base/0.1.1+1)
This package enables you to easily integrate your data source, allowing the package to handle business logic, error management, and state logic seamlessly.
TODO: Put a short description of the package here that helps potential users
know whether this package might be useful for them.
## Features
* 🧐 Wyatt Architecture
* 🧱 Entities
- `RemoteNotification` -> Contains notification innformations
* 🧊 Cubits, why make it complicated when you can make it simple?
- Goes to the essential
* 📐 Consistent
- Every class have same naming convention
TODO: List what your package can do. Maybe include images, gifs, or videos.
## Getting started
Simply add `wyatt_cloud_messaging_bloc_base` in `pubspec.yaml` , then
```dart
import 'package:wyatt_cloud_messaging_bloc_base/wyatt_cloud_messaging_bloc_base.dart';
```
TODO: List prerequisites and provide or point to information on how to
start using the package.
## Usage
### Data source
The initial step involves furnishing a data source, presenting you with two options:
- You can select from our provided implementations, which are listed above.
- Alternatively, you can craft a custom implementation by extending the `CloudMessagingRemoteDataSource` class and implementing all of its methods.
In this example, we will use the Firebase Cloud Messaging implementation.
TODO: Include short and useful examples for package users. Add longer examples
to `/example` folder.
```dart
getIt.registerLazySingleton<CloudMessagingRemoteDataSource>(
() => CloudMessagingFirebaseDataSource())
const like = 'sample';
```
> Here we use GetIt.
### Repository
Do the same for the repository. This one is already developed, you just need to inject it.
```dart
getIt.registerLazySingleton<CloudMessagingRepository>(
() => CloudMessagingRepositoryImpl(
notificationRemoteDataSource: getIt(),
),
)
```
### Use cases
Do the same for use cases. Select an inject the ones you need in your app. Here are avalaible use cases:
- `GetCloudMessagingTokenUsCase`
- `InitCloudmessagingUseCase`
- `ListenCloudMessagingUseCase`
- `RequestCloudMessagingPermissionUseCase`
- `SubscribeToNotificationTopicUseCase`
- `UnsubscribeFromNotificationTopicUseCase`
Here is an example with some usecase.
```dart
getIt
..registerLazySingleton<ListenNotificationUseCase>(
() => ListenNotificationUseCase(
notificationRepository: getIt(),
),
)
..registerLazySingleton<GetCloudMessagingTokenUseCase>(
() => GetCloudMessagingTokenUseCase(
notificationRepository: getIt(),
),
)
..registerLazySingleton<RequestCloudMessagingPermissionUseCase>(
() => RequestCloudMessagingPermissionUseCase(
notificationRepository: getIt(),
),
);
```
### Widgets
From this point onward, your task simply involves enveloping your app within the `CloudMessagingWrapperScreen`. Subsequently, you can proceed to implement your desired actions for handling incoming notifications.
## Additional information
If necessary, you can access data sources, repositories, and use cases through `getIt`. Here's a helpful example:
```dart
abstract class CloudMessagingHelper {
static Future<void> initMessaging() async {
await getIt<RequestCloudMessagingPermissionUseCase>().call(null);
final token = await getIt<GetCloudMessagingTokenUseCase>().call(null);
if (token.isOk) {
await notifLocalDataSource.storeToken(token: token.ok!);
}
}
static dataProcess(String? path) {
if (PageEnum.values.where((element) => (element.path == path)).isNotEmpty) {
AppRouter.goRouterNavigatorKey.currentState?.context.push(path!);
}
}
}
```
TODO: Tell users more about the package: where to find more information, how to
contribute to the package, how to file issues, what response they can expect
from the package authors, and more.

View File

@ -18,25 +18,39 @@
# Cloud Messaging Bloc Firebase Implementation
# Flutter - Cloud Messaging Bloc Firebase
<p align="left">
<a href="https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_analysis"><img src="https://img.shields.io/badge/Style-Wyatt%20Analysis-blue.svg?style=flat-square" alt="Style: Wyatt Analysis" /></a>
<img src="https://img.shields.io/badge/SDK-Flutter-blue?style=flat-square" alt="SDK: Flutter" />
</p>
A
## Features
TODO: List what your package can do. Maybe include images, gifs, or videos.
## Getting started
Simply add `wyatt_cloud_messaging_bloc_firebase` in `pubspec.yaml` , then
TODO: List prerequisites and provide or point to information on how to
start using the package.
## Usage
TODO: Include short and useful examples for package users. Add longer examples
to `/example` folder.
```dart
import 'package:wyatt_cloud_messaging_bloc_firebase/wyatt_cloud_messaging_bloc_fiebase.dart';
const like = 'sample';
```
## Additional information
- This package includes the implementation of the `CloudMessagingRemoteDataSource` found in the [Wyatt Cloud Messaging Bloc Base](https://git.wyatt-studio.fr/Wyatt-FOSS/-/packages/pub/wyatt_cloud_messaging_bloc_base) package, enabling the utilization of Firebase Cloud Messaging.
- It's worth noting that this package exports [Wyatt Cloud Messaging Bloc Base](https://git.wyatt-studio.fr/Wyatt-FOSS/-/packages/pub/wyatt_cloud_messaging_bloc_base), so there's no need to import both packages.
- This implementation is kept separate from the package to enhance dependency management efficiency.
- All the instructions for using this package are provided in the [Wyatt Cloud Messaging Bloc Base](https://git.wyatt-studio.fr/Wyatt-FOSS/-/packages/pub/wyatt_cloud_messaging_bloc_base) package's readme.
TODO: Tell users more about the package: where to find more information, how to
contribute to the package, how to file issues, what response they can expect
from the package authors, and more.