genUiCatalogComponent method

void genUiCatalogComponent(
  1. GenUiChatTarget chat, {
  2. required Object component,
})

Adds a reusable component to a chat widget's GenUI catalog.

Implementation

void genUiCatalogComponent(
  GenUiChatTarget chat, {
  required Object component,
}) {
  final chatName = chat.chatName;
  final componentName = _resolveComponentReference(component, 'component');
  final duplicate = _genUiCatalogComponents.any(
    (entry) =>
        entry.chatName == chatName && entry.componentName == componentName,
  );
  if (duplicate) {
    throw ArgumentError(
      'Component "$componentName" is already registered in the GenUI catalog for "$chatName".',
    );
  }
  _genUiCatalogComponents.add(
    GenUiCatalogComponentDeclaration(
      chatName: chatName,
      componentName: componentName,
    ),
  );
}