OrgFeatureGate class
Wraps an org-scoped feature screen with an entitlement check.
If the org has the required entitlement, renders child unchanged. Otherwise renders an editorial-style gated layout: an EditorialHeader (so the user knows what feature they're looking at), an UpgradePrompt card with the right CTA for their role, and a muted bullet list of highlights so prospects can see what they would unlock instead of staring at an empty viewport. The server-side RLS still enforces the gate if this widget is bypassed — it's purely a UX hint.
Usage:
body: OrgFeatureGate(
orgId: widget.orgId,
feature: 'SSO/SAML',
check: (ent) => ent.canUseSso,
highlights: const [
'SAML 2.0 single sign-on',
'SCIM provisioning',
'Customizable session policies',
],
child: _ssoConfigForm(),
),
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- ConsumerStatefulWidget
- ConsumerWidget
- OrgFeatureGate
- Available extensions
Constructors
Properties
- check → bool Function(OrgEntitlement)
-
Entitlement check against the org's resolved plan. Receives the org's
OrgEntitlement and returns true if access is allowed.
final
- child → Widget
-
final
- feature → String
-
Human-readable feature name shown in the upgrade prompt.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
-
highlights
→ List<
String> -
Bullet points describing what the gated feature offers. Rendered as
a muted preview list below the upgrade card so the screen does not
feel empty when access is denied.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- kicker → String?
-
Optional editorial-header kicker shown on the gated screen
(defaults to "Locked"). Used so the page reads as a proper screen
rather than a bare upsell banner.
final
- orgId → String
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- title → String?
-
Optional editorial-header title shown on the gated screen
(defaults to "$feature").
final
Methods
-
animate(
{Key? key, List< Effect> ? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) → Animate -
Available on Widget, provided by the AnimateWidgetExtensions extension
Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex.myWidget.animate()is equivalent toAnimate(child: myWidget). -
build(
BuildContext context, WidgetRef ref) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → ConsumerStatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → _ConsumerState -
Creates the mutable state for this widget at a given 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