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 themessage. 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)
)
}
}
}