Skip to content

Commit 507fced

Browse files
authored
Rename builder parameter to onSuccess in RequestCubitBuilder (#49) (#50)
* feat: rename 'builder' parameter to 'onSuccess' in RequestCubitBuilder - Rename the 'builder' parameter to 'onSuccess' in RequestCubitBuilder class - Update constructor comment to reflect the change - Update field declaration comment - Update all usages in build method (RequestSuccessState and RequestRefreshState) - Update all example code to use the new parameter name - Update all test files to use the new parameter name - Update README documentation to reflect the change This change makes the parameter name more descriptive and aligns with the naming convention of other state handlers (onInitial, onLoading, onError). Resolves: #49 * chore: bump version to 0.4.0 and update changelogs - Bump leancode_cubit_utils version from 0.3.2 to 0.4.0 - Bump leancode_cubit_utils_cqrs version from 0.3.1 to 0.4.0 - Update leancode_cubit_utils_cqrs dependency to ^0.4.0 - Add changelog entries documenting the breaking change This follows semantic versioning best practices where breaking changes in pre-1.0 software bump the minor version (0.x.y -> 0.x+1.0). * chore: update example lock files to reflect 0.4.0 version
1 parent 0d83a0c commit 507fced

12 files changed

Lines changed: 82 additions & 74 deletions

File tree

packages/leancode_cubit_utils/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.4.0
2+
3+
* **BREAKING CHANGE**: Rename `builder` parameter to `onSuccess` in `RequestCubitBuilder`
4+
15
## 0.3.2
26

37
* Upgrade `bloc` to ^9.0.0

packages/leancode_cubit_utils/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ If you call `refresh()` on `ArgsRequestCubit` it will perform a request with the
100100
- `WidgetBuilder? onInitial` - use it to show a widget before invoking the request for the first time,
101101
- `WidgetBuilder? onLoading` - use it to show a loader widget while the request is being performed,
102102
- `WidgetBuilder? onError` - use it to show error widget when processing the request fails,
103-
- `RequestWidgetBuilder<TOut> builder` - use it to build a page when the data is successfully loaded.
103+
- `RequestWidgetBuilder<TOut> onSuccess` - use it to build a page when the data is successfully loaded.
104104

105105
Other than builders, you also need to provide the cubit based on which the `RequestCubitBuilder` will be rebuilt. And you can also pass `onErrorCallback` which allows you to pass a callback to error widget builder. You may want to use it to implement retry button.
106106

@@ -122,7 +122,7 @@ RequestCubitBuilder(
122122
),
123123
),
124124
onErrorCallback: context.read<ProjectDetailsCubit>().run,
125-
builder: (context, data) {
125+
onSuccess: (context, data) {
126126
return ListView.builder(
127127
itemCount: data.assignments.length,
128128
itemBuilder: (context, index) {

packages/leancode_cubit_utils/example/lib/pages/request/request_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class RequestPage extends StatelessWidget {
4141
Center(
4242
child: RequestCubitBuilder(
4343
cubit: context.read<UserRequestCubit>(),
44-
builder: (context, data) =>
44+
onSuccess: (context, data) =>
4545
Text('${data.name} ${data.surname}'),
4646
),
4747
),

packages/leancode_cubit_utils/example/pubspec.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ packages:
55
dependency: "direct main"
66
description:
77
name: async
8-
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
8+
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
99
url: "https://pub.dev"
1010
source: hosted
11-
version: "2.12.0"
11+
version: "2.13.0"
1212
bloc:
1313
dependency: transitive
1414
description:
@@ -69,10 +69,10 @@ packages:
6969
dependency: transitive
7070
description:
7171
name: fake_async
72-
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
72+
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
7373
url: "https://pub.dev"
7474
source: hosted
75-
version: "1.3.2"
75+
version: "1.3.3"
7676
faker:
7777
dependency: "direct main"
7878
description:
@@ -135,10 +135,10 @@ packages:
135135
dependency: transitive
136136
description:
137137
name: leak_tracker
138-
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
138+
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
139139
url: "https://pub.dev"
140140
source: hosted
141-
version: "10.0.8"
141+
version: "10.0.9"
142142
leak_tracker_flutter_testing:
143143
dependency: transitive
144144
description:
@@ -161,7 +161,7 @@ packages:
161161
path: ".."
162162
relative: true
163163
source: path
164-
version: "0.3.2"
164+
version: "0.4.0"
165165
leancode_hooks:
166166
dependency: "direct main"
167167
description:
@@ -315,10 +315,10 @@ packages:
315315
dependency: transitive
316316
description:
317317
name: vm_service
318-
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
318+
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
319319
url: "https://pub.dev"
320320
source: hosted
321-
version: "14.3.1"
321+
version: "15.0.0"
322322
web:
323323
dependency: transitive
324324
description:

packages/leancode_cubit_utils/lib/src/request/request_cubit_builder.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ typedef RequestErrorBuilder<TError> = Widget Function(
1919
/// A widget that builds itself based on the latest request state.
2020
class RequestCubitBuilder<TOut, TError> extends StatelessWidget {
2121
/// Creates a new [RequestCubitBuilder] with the given [cubit] and
22-
/// [builder].
22+
/// [onSuccess].
2323
const RequestCubitBuilder({
2424
super.key,
2525
required this.cubit,
26-
required this.builder,
26+
required this.onSuccess,
2727
this.onInitial,
2828
this.onLoading,
2929
this.onEmpty,
@@ -35,7 +35,7 @@ class RequestCubitBuilder<TOut, TError> extends StatelessWidget {
3535
final BaseRequestCubit<dynamic, dynamic, TOut, TError> cubit;
3636

3737
/// The builder that creates a widget when data successfully loaded.
38-
final RequestWidgetBuilder<TOut> builder;
38+
final RequestWidgetBuilder<TOut> onSuccess;
3939

4040
/// The builder that creates a widget when state is initial.
4141
final WidgetBuilder? onInitial;
@@ -66,9 +66,9 @@ class RequestCubitBuilder<TOut, TError> extends StatelessWidget {
6666
config.onLoading(context),
6767
RequestLoadingState() =>
6868
onLoading?.call(context) ?? config.onLoading(context),
69-
RequestSuccessState(:final data) => builder(context, data),
69+
RequestSuccessState(:final data) => onSuccess(context, data),
7070
RequestRefreshState(:final data) => data != null
71-
? builder(context, data)
71+
? onSuccess(context, data)
7272
: onLoading?.call(context) ?? config.onLoading(context),
7373
RequestEmptyState() => onEmpty?.call(context) ??
7474
config.onEmpty?.call(context) ??

packages/leancode_cubit_utils/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: leancode_cubit_utils
22
description: A collection of cubits and widgets that facilitate the creation of repetitive pages, eliminating boilerplate.
3-
version: 0.3.2
3+
version: 0.4.0
44
repository: https://github.com/leancodepl/leancode_cubit_utils
55

66
environment:

packages/leancode_cubit_utils/test/request_cubit_builder_test.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ void main() {
6161
TestPage(
6262
child: RequestCubitBuilder(
6363
cubit: queryCubit,
64-
builder: (context, data) => Text(data),
64+
onSuccess: (context, data) => Text(data),
6565
),
6666
),
6767
);
@@ -83,7 +83,7 @@ void main() {
8383
TestPage(
8484
child: RequestCubitBuilder(
8585
cubit: queryCubit,
86-
builder: (context, data) => Text(data),
86+
onSuccess: (context, data) => Text(data),
8787
),
8888
),
8989
);
@@ -106,7 +106,7 @@ void main() {
106106
cubit: queryCubit,
107107
onLoading: (context) => const Text('Custom loading...'),
108108
onError: (context, error, retry) => const Text('Custom error!'),
109-
builder: (context, data) => Text(data),
109+
onSuccess: (context, data) => Text(data),
110110
),
111111
),
112112
);
@@ -127,7 +127,7 @@ void main() {
127127
TestPage(
128128
child: RequestCubitBuilder(
129129
cubit: queryCubit,
130-
builder: (context, data) => Text('Success, data: $data'),
130+
onSuccess: (context, data) => Text('Success, data: $data'),
131131
),
132132
),
133133
);
@@ -145,7 +145,7 @@ void main() {
145145
TestPage(
146146
child: RequestCubitBuilder(
147147
cubit: queryCubit,
148-
builder: (context, data) => Text('Success, data: $data'),
148+
onSuccess: (context, data) => Text('Success, data: $data'),
149149
),
150150
),
151151
);

packages/leancode_cubit_utils_cqrs/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.4.0
2+
3+
* Update `leancode_cubit_utils` dependency to `^0.4.0` (includes breaking change: `builder` parameter renamed to `onSuccess` in `RequestCubitBuilder`)
4+
15
## 0.3.1
26

37
* Upgrade `bloc` to ^9.0.0

packages/leancode_cubit_utils_cqrs/example/lib/pages/query/query_page.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ class QueryHookPage extends HookWidget {
4848
Center(
4949
child: RequestCubitBuilder(
5050
cubit: userCubit,
51-
builder: (context, data) => Text('${data.name} ${data.surname}'),
51+
onSuccess: (context, data) =>
52+
Text('${data.name} ${data.surname}'),
5253
),
5354
),
5455
const SizedBox(height: 16),
@@ -87,7 +88,7 @@ class QueryPage extends StatelessWidget {
8788
Center(
8889
child: RequestCubitBuilder(
8990
cubit: context.read<UserQueryCubit>(),
90-
builder: (context, data) =>
91+
onSuccess: (context, data) =>
9192
Text('${data.name} ${data.surname}'),
9293
),
9394
),

0 commit comments

Comments
 (0)