mirror of https://github.com/buster-so/buster.git
Update ReasoningMessageSelector.stories.tsx
This commit is contained in:
parent
b53ba83849
commit
65b1695e06
|
@ -223,3 +223,118 @@ export const SameIdDifferentTypes: Story = {
|
|||
}
|
||||
]
|
||||
};
|
||||
|
||||
export const InteractiveTitles: Story = {
|
||||
args: {
|
||||
reasoningMessageId: 'reasoning-1',
|
||||
messageId: 'message-1',
|
||||
isCompletedStream: false,
|
||||
chatId: 'chat-1'
|
||||
},
|
||||
decorators: [
|
||||
(Story) => {
|
||||
const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
retry: false
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Initial message data
|
||||
const initialMessage = {
|
||||
...mockBusterChatMessage,
|
||||
reasoning_messages: {
|
||||
'reasoning-1': {
|
||||
id: 'reasoning-1',
|
||||
type: 'text',
|
||||
title: 'Initial Title',
|
||||
secondary_title: 'Initial Secondary Title',
|
||||
message: 'This is the initial message content.',
|
||||
status: 'completed'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Set initial data
|
||||
queryClient.setQueryData(['chats', 'messages', 'message-1'], initialMessage);
|
||||
|
||||
// Function to update the message
|
||||
const updateMessage = (
|
||||
updates: Partial<(typeof initialMessage.reasoning_messages)['reasoning-1']>
|
||||
) => {
|
||||
const currentData = queryClient.getQueryData([
|
||||
'chats',
|
||||
'messages',
|
||||
'message-1'
|
||||
]) as typeof initialMessage;
|
||||
queryClient.setQueryData(['chats', 'messages', 'message-1'], {
|
||||
...currentData,
|
||||
reasoning_messages: {
|
||||
'reasoning-1': {
|
||||
...currentData.reasoning_messages['reasoning-1'],
|
||||
...updates
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<div className="flex flex-col gap-4">
|
||||
<div className="flex gap-2">
|
||||
<button
|
||||
className="rounded bg-blue-500 px-4 py-2 text-white hover:bg-blue-600"
|
||||
onClick={() =>
|
||||
updateMessage({ title: `New Title ${Math.floor(Math.random() * 1000)}` })
|
||||
}>
|
||||
Change Title
|
||||
</button>
|
||||
<button
|
||||
className="rounded bg-green-500 px-4 py-2 text-white hover:bg-green-600"
|
||||
onClick={() =>
|
||||
updateMessage({
|
||||
secondary_title: `New Secondary Title ${Math.floor(Math.random() * 1000)}`
|
||||
})
|
||||
}>
|
||||
Change Secondary Title
|
||||
</button>
|
||||
<button
|
||||
className="rounded bg-purple-500 px-4 py-2 text-white hover:bg-purple-600"
|
||||
onClick={() => {
|
||||
const currentData = queryClient.getQueryData([
|
||||
'chats',
|
||||
'messages',
|
||||
'message-1'
|
||||
]) as typeof initialMessage;
|
||||
const currentSecondaryTitle =
|
||||
currentData.reasoning_messages['reasoning-1'].secondary_title;
|
||||
updateMessage({
|
||||
secondary_title: currentSecondaryTitle
|
||||
? ''
|
||||
: 'This is the toggled secondary title.'
|
||||
});
|
||||
}}>
|
||||
Toggle Secondary Title
|
||||
</button>
|
||||
<button
|
||||
className="rounded bg-orange-500 px-4 py-2 text-white hover:bg-orange-600"
|
||||
onClick={() => {
|
||||
const randomNum = Math.floor(Math.random() * 1000);
|
||||
updateMessage({
|
||||
title: `New Combined Title ${randomNum}`,
|
||||
secondary_title: `New Combined Secondary Title ${randomNum}`
|
||||
});
|
||||
}}>
|
||||
Change Both Titles
|
||||
</button>
|
||||
</div>
|
||||
<div className="h-full w-full max-w-[400px] min-w-[400px]">
|
||||
<Story />
|
||||
</div>
|
||||
</div>
|
||||
</QueryClientProvider>
|
||||
);
|
||||
}
|
||||
]
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue