Files
tolaria/src/components/useQueuedAiPrompt.ts

25 lines
631 B
TypeScript
Raw Normal View History

import { useEffect } from 'react'
import {
AI_PROMPT_QUEUED_EVENT,
takeQueuedAiPrompt,
type QueuedAiPrompt,
} from '../utils/aiPromptBridge'
export function useQueuedAiPrompt(
onPrompt: (prompt: QueuedAiPrompt) => void,
2026-05-26 16:26:51 +02:00
enabled = true,
) {
useEffect(() => {
2026-05-26 16:26:51 +02:00
if (!enabled) return
const consumePrompt = () => {
const queuedPrompt = takeQueuedAiPrompt()
if (queuedPrompt) onPrompt(queuedPrompt)
}
consumePrompt()
window.addEventListener(AI_PROMPT_QUEUED_EVENT, consumePrompt)
return () => window.removeEventListener(AI_PROMPT_QUEUED_EVENT, consumePrompt)
2026-05-26 16:26:51 +02:00
}, [enabled, onPrompt])
}