openhands / src /dev /seed-pending-chat-preview.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
63522a5 verified
Raw History Blame Contribute Delete
2.09 kB
import { useOptimisticUserMessageStore } from "#/stores/optimistic-user-message-store";
const PREVIEW_SENDING_TEXT = "can you review the readme";
const PREVIEW_SENDING_MULTILINE_TEXT =
"can you review the readme and then update the contributing guide " +
"to match, making sure the setup steps and scripts are consistent " +
"across both files";
const PREVIEW_ERROR_TEXT =
"here's a long message. here's a long message. here's a long message. " +
"here's a long message. here's a long message. here's a long message.";
export function seedPendingChatPreview(conversationId: string): void {
const store = useOptimisticUserMessageStore.getState();
store.clearPendingMessages();
store.enqueuePendingMessage({
conversationId,
text: PREVIEW_SENDING_TEXT,
});
store.enqueuePendingMessage({
conversationId,
text: PREVIEW_SENDING_MULTILINE_TEXT,
});
const errorId = store.enqueuePendingMessage({
conversationId,
text: PREVIEW_ERROR_TEXT,
});
store.markPendingMessageError(errorId, "Failed to send message");
}
export function installPendingChatPreview(): void {
(
window as Window &
typeof globalThis & {
__OH_SEED_PENDING_PREVIEW__?: typeof seedPendingChatPreview;
__OH_CLEAR_PENDING_PREVIEW__?: () => void;
}
).__OH_SEED_PENDING_PREVIEW__ = seedPendingChatPreview;
(
window as Window &
typeof globalThis & {
__OH_CLEAR_PENDING_PREVIEW__?: () => void;
}
).__OH_CLEAR_PENDING_PREVIEW__ = () => {
useOptimisticUserMessageStore.getState().clearPendingMessages();
};
const params = new URLSearchParams(window.location.search);
const preview = params.get("previewPendingChat");
if (!preview) {
return;
}
const conversationId = preview === "true" ? "1" : preview;
const targetPath = `/conversations/${conversationId}`;
if (!window.location.pathname.startsWith(targetPath)) {
window.location.assign(
`${targetPath}?previewPendingChat=${encodeURIComponent(conversationId)}`,
);
return;
}
seedPendingChatPreview(conversationId);
}