Contents

init(message:previousMessages:)

Creates a view that shows suggested actions for the specified message.

Declaration

@MainActor init(message: SuggestedActionsMessage, previousMessages: [SuggestedActionsMessage] = [])

Parameters

  • message:

    The message that you want to generate suggested actions for.

  • previousMessages:

    An array of messages that precede the provided message. The Suggested Actions framework uses them as context to generate suggested actions for the message. The system limits the number of previous messages it considers to the value of Previousmessageslimit. This parameter defaults to an empty array if you don’t include previous messages.

Discussion

Use this initializer to present suggested actions that the framework generates for a provided message. The Suggested Actions framework analyzes the message, and previous messages you provide as additional context, then shows relevant actions that a person can take.

If you call generate(message:previousMessages:) to generate suggested actions for future use, and later pass a SuggestedActionsMessage, the Suggested Actions framework checks for suggested actions it already generated and cached. If it finds a message with a matching id, the SuggestedActionsView uses the cached result and renders the suggested actions immediately.

The following example shows how an app might show a SuggestedActionsView with information from previous messages:

struct ChatView: View {
    @Binding
    var messages: [ChatMessage]

    var body: some View {
        ForEach(messages) { message in
            ChatBubble(message)

            SuggestedActionsView(
                message: message.suggestedActionsMessage,
                previousMessages: message.previousMessages
                    .suffix(SuggestedActionsMessage.previousMessagesLimit)
                    .map(\.suggestedActionsMessage)
            )
        }
    }
}

See Also

Displaying suggested actions