ContextAccessGate class final
A universal access gate widget that operates on an AccessContext instance, allowing both sync and async permission checks.
Displays child if the provided allow condition returns true,
otherwise shows fallback or hides the widget.
Basic usage:
ContextAccessGate(
context: MyAccessContext(),
allow: (ctx) => ctx.hasRole('admin'),
child: Text('Access granted'),
fallback: Text('Access denied'),
)
With builder:
ContextAccessGate(
context: MyAccessContext(),
allow: (ctx) => ctx.isFeatureEnabled('dark_mode'),
builder: (context, allowed) => Icon(
allowed ? Icons.check : Icons.block,
),
)
With async conditions:
ContextAccessGate(
context: MyAccessContext(),
allow: (ctx) async => await ctx.hasPermission('edit'),
loading: CircularProgressIndicator(),
child: Text('Allowed'),
)
Optional callbacks:
- onAllow: Called when access is granted
- onDeny: Called when access is denied
- onError: Called on exception during evaluation
This gate is context-agnostic and ideal for non-UI driven access models (e.g., BLoC, Riverpod, pure DI).
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- ContextAccessGate
Constructors
- ContextAccessGate({required AccessContext context, required ContextAccessCondition allow, Widget? child, Widget? fallback, Widget? loading, ContextAccessBuilder? builder, VoidCallback? onAllow, VoidCallback? onDeny, void onError(Object error)?, Key? key})
-
const
Properties
- allow → ContextAccessCondition
-
final
- builder → ContextAccessBuilder?
-
final
- child → Widget?
-
final
- context → AccessContext
-
final
- fallback → Widget?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- loading → Widget?
-
final
- onAllow → VoidCallback?
-
final
- onDeny → VoidCallback?
-
final
- onError → void Function(Object error)?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
build(
BuildContext ctx) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited