BankAlertPreferencesPanel class

Per-event, per-channel alert preference matrix for the notification settings screen.

Rows group into Security & fraud / Payments / Account activity / Marketing sections with the security section pinned first. Locked (compliance) rows render their switches on and disabled. Changes fire onChanged immediately: hosts debounce persistence.

BankAlertPreferencesPanel(
  preferences: prefs,
  onChanged: (type, channel, enabled) =>
      api.setAlertPref(type, channel, enabled),
)
Inheritance

Constructors

BankAlertPreferencesPanel({required List<BankAlertPreference> preferences, required void onChanged(BankNotificationType type, BankAlertChannel channel, bool enabled), Key? key, Set<BankAlertChannel> availableChannels = const {BankAlertChannel.push, BankAlertChannel.email}, Widget? header, String requiredLabel = 'Required', Map<BankAlertSection, String> sectionLabels = const {BankAlertSection.security : 'Security & fraud', BankAlertSection.payments : 'Payments', BankAlertSection.account : 'Account activity', BankAlertSection.marketing : 'Marketing'}, Map<BankAlertChannel, String> channelLabels = const {BankAlertChannel.push : 'Push', BankAlertChannel.email : 'Email', BankAlertChannel.sms : 'SMS'}, Map<BankNotificationType, String> typeLabels = const {}, Widget? footer, EdgeInsetsGeometry? sectionHeaderPadding, EdgeInsetsGeometry? rowPadding, Color? accentColor, Color? switchThumbColor, Color? iconColor, TextStyle? sectionLabelStyle, TextStyle? channelLabelStyle, TextStyle? titleStyle, TextStyle? requiredLabelStyle, Map<BankNotificationType, IconData> typeIcons = const {}, IconData? securityIcon, IconData? lockIcon, double? channelColumnWidth, String? semanticLabel})
const

Properties

accentColor Color?
Overrides the accent used for the security header icon and the switch active track. Defaults to the theme primary.
final
availableChannels Set<BankAlertChannel>
Which channel columns to render.
final
channelColumnWidth double?
Overrides the width of each channel column. Defaults to 56.
final
channelLabels Map<BankAlertChannel, String>
final
channelLabelStyle TextStyle?
Merged over the channel column header style (BankTokens.labelSmall in onSurfaceVariant).
final
Optional slot below the matrix. Defaults to no footer.
final
hashCode int
The hash code for this object.
no setterinherited
Optional slot above the matrix.
final
iconColor Color?
Overrides the per-row type icon and lock icon color. Defaults to the theme onSurfaceVariant.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
lockIcon IconData?
Overrides the locked row icon. Defaults to BankIcons.lock.
final
onChanged → void Function(BankNotificationType type, BankAlertChannel channel, bool enabled)
Fired immediately on every switch flip.
final
preferences List<BankAlertPreference>
final
requiredLabel String
Helper shown on locked rows.
final
requiredLabelStyle TextStyle?
Merged over the locked helper label style (BankTokens.labelSmall in onSurfaceVariant).
final
rowPadding EdgeInsetsGeometry?
Overrides each preference row padding. Defaults to EdgeInsets.symmetric(horizontal: space4, vertical: space1).
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sectionHeaderPadding EdgeInsetsGeometry?
Overrides the section header padding. Defaults to EdgeInsets.fromLTRB(space4, space5, space4, space2).
final
sectionLabels Map<BankAlertSection, String>
final
sectionLabelStyle TextStyle?
Merged over the section label style (BankTokens.labelMedium in onSurfaceVariant).
final
securityIcon IconData?
Overrides the security section header icon. Defaults to BankIcons.shield.
final
semanticLabel String?
When non-null, wraps the panel in a Semantics label. Defaults to no extra semantics node.
final
switchThumbColor Color?
Overrides the switch thumb color when on. Defaults to the theme onPrimary.
final
titleStyle TextStyle?
Merged over the row title style (BankTokens.bodyLarge in onSurface).
final
typeIcons Map<BankNotificationType, IconData>
Overrides the per-type icon glyphs. Missing entries fall back to the built-in defaults.
final
typeLabels Map<BankNotificationType, String>
Overrides the default English labels per notification type.
final

Methods

build(BuildContext context) 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