Skip to content

Commit

Permalink
Prevent useless rebuild of whole credential_manifest_credential_offer…
Browse files Browse the repository at this point in the history
…_pick_page
  • Loading branch information
hawkbee1 committed May 29, 2024
1 parent ef9e280 commit b3972be
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import 'dart:convert';

import 'package:altme/app/shared/shared.dart';
import 'package:altme/dashboard/home/home.dart';
import 'package:altme/selective_disclosure/selective_disclosure.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:altme/dashboard/dashboard.dart';
import 'package:altme/l10n/l10n.dart';
import 'package:altme/scan/cubit/scan_cubit.dart';
import 'package:altme/selective_disclosure/selective_disclosure.dart';
import 'package:altme/selective_disclosure/widget/display_selective_disclosure.dart';
import 'package:altme/selective_disclosure/widget/inject_selective_disclosure_state.dart';
import 'package:credential_manifest/credential_manifest.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
Expand Down Expand Up @@ -115,8 +115,8 @@ class _SelectiveDisclosurePickViewState
);
}
},
child: BlocBuilder<SelectiveDisclosureCubit, SelectiveDisclosureState>(
builder: (context, state) {
child: Builder(
builder: (BuildContext context) {
final profileSetting =
context.read<ProfileCubit>().state.model.profileSetting;

Expand All @@ -143,10 +143,8 @@ class _SelectiveDisclosurePickViewState
isDiscover: false,
),
const SizedBox(height: 20),
DisplaySelectiveDisclosure(
ConsumeSelectiveDisclosureCubit(
credentialModel: widget.credentialToBePresented,
claims: null,
selectiveDisclosureState: state,
onPressed: (claimKey, claimKeyId, threeDotValue) {
context.read<SelectiveDisclosureCubit>().disclosureAction(
claimsKey: claimKey,
Expand All @@ -164,13 +162,18 @@ class _SelectiveDisclosurePickViewState
padding: const EdgeInsets.all(16),
child: Tooltip(
message: l10n.credentialPickPresent,
child: MyGradientButton(
onPressed: () => present(
context: context,
selectedSDIndexInJWT: state.selectedSDIndexInJWT,
uri: widget.uri,
),
text: l10n.credentialPickPresent,
child: BlocBuilder<SelectiveDisclosureCubit,
SelectiveDisclosureState>(
builder: (context, state) {
return MyGradientButton(
onPressed: () => present(
context: context,
selectedSDIndexInJWT: state.selectedSDIndexInJWT,
uri: widget.uri,
),
text: l10n.credentialPickPresent,
);
},
),
),
),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import 'package:altme/dashboard/dashboard.dart';
import 'package:altme/selective_disclosure/widget/display_selective_disclosure.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

class ConsumeSelectiveDisclosureCubit extends StatelessWidget {
const ConsumeSelectiveDisclosureCubit({
super.key,
required this.credentialModel,
required this.showVertically,
this.onPressed,
this.parentKeyId,
});

final CredentialModel credentialModel;
final bool showVertically;
final void Function(String?, String, String?)? onPressed;

final String? parentKeyId;

@override
Widget build(BuildContext context) {
return BlocBuilder<SelectiveDisclosureCubit, SelectiveDisclosureState>(
builder: (context, state) {
return DisplaySelectiveDisclosure(
credentialModel: credentialModel,
selectiveDisclosureState: state,
onPressed: onPressed,
showVertically: true,
);
},
);
}
}

0 comments on commit b3972be

Please sign in to comment.