# Showing Responses URL: /concepts/message-threads/showing-responses ### Showing thread messages and components Since tambo keeps the thread state updated, all you need to do is show the thread's messages somewhere. If a message from tambo includes a component, it can be accessed with `message.renderedComponent`: ```tsx const { thread } = useTamboThread() ... thread.messages.map((message) => (

Sent by: {message.role}

message text: {message.content[0]?.text}

component: {message.renderedComponent}

)) ``` For canvas-style UIs where you want to display only the most recent component, you can walk backwards through the messages to find the latest one with a `renderedComponent`: ```tsx const latestComponent = thread.messages .slice() .reverse() .find((message) => message.renderedComponent)?.renderedComponent; ...
{latestComponent}
``` This approach is useful for building interactive canvases, dashboards, or any UI where you want to show the most up-to-date component state without displaying the full conversation history.