UsageSettings.fromMap constructor

UsageSettings.fromMap(
  1. Map<String, dynamic> json, {
  2. List? conversationActions,
})

Implementation

factory UsageSettings.fromMap(
  Map<String, dynamic> json, {
  List<dynamic>? conversationActions,
}) => UsageSettings(
  canAttach:
      json[Settings.settingAttachmentId]?[Settings.settingEnableName] ??
      false,
  canTag:
      json[Settings.settingMultiTagId]?[Settings.settingEnableName] ?? false,
  canShare: getChatSharingEnum(
    json[Settings.settingShareId]?[Settings.settingShareName] ?? "",
  ),
  canWebSearch:
      json[Settings.settingSearchEngineUseId]?[Settings.settingEnableName] ??
      false,
  actionBarAlwaysVisible:
      json[Settings.settingActionBarAlwaysVisibleId]?[Settings
          .settingEnableName] ??
      true,
  canAnonymous:
      json[Settings.settingAnonymousSessionsId]?[Settings
          .settingEnableName] ??
      false,
  chatVisibility: getChatVisibilityEnum(
    json[Settings.settingChatVisibilityId]?[Settings
            .settingChatVisibilityName] ??
        "",
  ),
  thinkingEnabled:
      json[Settings.assistantThinkingEnabledId]?[Settings
          .settingEnableName] ??
      false,
  thinkingEffort:
      json[Settings.assistantThinkingEffortId]?[Settings
          .assistantThinkingEffortName],
  chatEngagementPrompts: (conversationActions ?? const <dynamic>[])
      .whereType<Map<String, dynamic>>()
      .map((Map<String, dynamic> action) {
        return getString(action["userMessage"]);
      })
      .where((String message) => message.isNotEmpty)
      .toList(growable: false),
);