whenOrNull<TResult extends Object?> method
TResult?
whenOrNull<TResult extends Object?>(
- TResult? $default(
- LocalizedText name,
- @JsonKey.new(name: 'welcome_message') LocalizedText welcomeMessage,
- @JsonKey.new(name: 'system_instruction') LocalizedText systemInstruction,
- @JsonKey.new(name: 'default_locale') String defaultLocale,
- @JsonKey.new(name: 'supported_locales') List<
String> supportedLocales, - @JsonKey.new(name: 'font_family') String? fontFamily,
- String? color,
- String? avatar,
- @JsonKey.new(name: 'show_avatar') bool showAvatar,
- @JsonKey.new(name: 'hide_bars_on_scroll') bool hideBarsOnScroll,
- @JsonKey.new(name: 'fab_configuration') FabConfiguration? fabConfiguration,
- @JsonKey.new(name: 'chat_appearance') ChatAppearance? chatAppearance,
- @JsonKey.new(name: 'chat_appearance_dark') ChatAppearance? chatAppearanceDark,
- @JsonKey.new(name: 'show_theme_toggle') bool showThemeToggle,
- @JsonKey.new(name: 'default_theme_mode') String defaultThemeMode,
- @JsonKey.new(name: 'sound_configuration') SoundConfiguration? soundConfiguration,
- @JsonKey.new(name: 'enable_user_export') bool enableUserExport,
- @JsonKey.new(name: 'enable_clear_history') bool enableClearHistory,
- @JsonKey.new(name: 'enable_file_attach') bool enableFileAttach,
- @JsonKey.new(name: 'dynamic_language_enabled') bool dynamicLanguageEnabled,
- @JsonKey.new(name: 'ai_disclosure_enabled') bool aiDisclosureEnabled,
- @JsonKey.new(name: 'ai_disclosure_text') LocalizedText? aiDisclosureText,
- @JsonKey.new(name: 'ai_disclosure_require_ack') bool aiDisclosureRequireAck,
- @JsonKey.new(name: 'message_reporting_enabled') bool messageReportingEnabled,
- @JsonKey.new(name: 'ai_info_url') String? aiInfoUrl,
- @JsonKey.new(name: 'privacy_url') String? privacyUrl,
- @JsonKey.new(name: 'ai_data_reuse_notice') bool aiDataReuseNotice,
A variant of when that fallback to returning null
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case _:
return null;
}
Implementation
@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( LocalizedText name, @JsonKey(name: 'welcome_message') LocalizedText welcomeMessage, @JsonKey(name: 'system_instruction') LocalizedText systemInstruction, @JsonKey(name: 'default_locale') String defaultLocale, @JsonKey(name: 'supported_locales') List<String> supportedLocales, @JsonKey(name: 'font_family') String? fontFamily, String? color, String? avatar, @JsonKey(name: 'show_avatar') bool showAvatar, @JsonKey(name: 'hide_bars_on_scroll') bool hideBarsOnScroll, @JsonKey(name: 'fab_configuration') FabConfiguration? fabConfiguration, @JsonKey(name: 'chat_appearance') ChatAppearance? chatAppearance, @JsonKey(name: 'chat_appearance_dark') ChatAppearance? chatAppearanceDark, @JsonKey(name: 'show_theme_toggle') bool showThemeToggle, @JsonKey(name: 'default_theme_mode') String defaultThemeMode, @JsonKey(name: 'sound_configuration') SoundConfiguration? soundConfiguration, @JsonKey(name: 'enable_user_export') bool enableUserExport, @JsonKey(name: 'enable_clear_history') bool enableClearHistory, @JsonKey(name: 'enable_file_attach') bool enableFileAttach, @JsonKey(name: 'dynamic_language_enabled') bool dynamicLanguageEnabled, @JsonKey(name: 'ai_disclosure_enabled') bool aiDisclosureEnabled, @JsonKey(name: 'ai_disclosure_text') LocalizedText? aiDisclosureText, @JsonKey(name: 'ai_disclosure_require_ack') bool aiDisclosureRequireAck, @JsonKey(name: 'message_reporting_enabled') bool messageReportingEnabled, @JsonKey(name: 'ai_info_url') String? aiInfoUrl, @JsonKey(name: 'privacy_url') String? privacyUrl, @JsonKey(name: 'ai_data_reuse_notice') bool aiDataReuseNotice)? $default,) {final _that = this;
switch (_that) {
case _RemoteConfig() when $default != null:
return $default(_that.name,_that.welcomeMessage,_that.systemInstruction,_that.defaultLocale,_that.supportedLocales,_that.fontFamily,_that.color,_that.avatar,_that.showAvatar,_that.hideBarsOnScroll,_that.fabConfiguration,_that.chatAppearance,_that.chatAppearanceDark,_that.showThemeToggle,_that.defaultThemeMode,_that.soundConfiguration,_that.enableUserExport,_that.enableClearHistory,_that.enableFileAttach,_that.dynamicLanguageEnabled,_that.aiDisclosureEnabled,_that.aiDisclosureText,_that.aiDisclosureRequireAck,_that.messageReportingEnabled,_that.aiInfoUrl,_that.privacyUrl,_that.aiDataReuseNotice);case _:
return null;
}
}