| import { useSyncExternalStore } from 'react' | |
| import type { QueuedCommand } from '../types/textInputTypes.js' | |
| import { | |
| getCommandQueueSnapshot, | |
| subscribeToCommandQueue, | |
| } from '../utils/messageQueueManager.js' | |
| /** | |
| * React hook to subscribe to the unified command queue. | |
| * Returns a frozen array that only changes reference on mutation. | |
| * Components re-render only when the queue changes. | |
| */ | |
| export function useCommandQueue(): readonly QueuedCommand[] { | |
| return useSyncExternalStore(subscribeToCommandQueue, getCommandQueueSnapshot) | |
| } | |