PageSourceSearch

https://axis-fe.up.railway.app/app/hooks/useIdeaToWebsiteVoiceInput.ts

js axis-fe.up.railway.app collected 2026-10-03 12:15:23 UTC 5,751 bytes, 54 lines download raw bytes

1import __buffer_polyfill from "/node_modules/.vite/deps/vite-plugin-node-polyfills_shims_buffer.js?v=bf763330"
2globalThis.Buffer = globalThis.Buffer || __buffer_polyfill
3import __global_polyfill from "/node_modules/.vite/deps/vite-plugin-node-polyfills_shims_global.js?v=bf763330"
4globalThis.global = globalThis.global || __global_polyfill
5import __process_polyfill from "/node_modules/.vite/deps/vite-plugin-node-polyfills_shims_process.js?v=bf763330"
6globalThis.process = globalThis.process || __process_polyfill
7
8import __vite__cjsImport3_react from "/node_modules/.vite/deps/react.js?v=bf763330"; const useEffect = __vite__cjsImport3_react["useEffect"]; const useRef = __vite__cjsImport3_react["useRef"]; const useState = __vite__cjsImport3_react["useState"];
9export const useIdeaToWebsiteVoiceInput = (onTranscript) => {
10  const onTranscriptRef = useRef(onTranscript);
11  onTranscriptRef.current = onTranscript;
12  const [isListening, setIsListening] = useState(false);
13  const [recognition, setRecognition] = useState(null);
14  useEffect(() => {
15    if (typeof window === "undefined") {
16      return;
17    }
18    if (!("SpeechRecognition" in window) && !("webkitSpeechRecognition" in window)) {
19      return;
20    }
21    const speechRecognitionCtor = window.SpeechRecognition || window.webkitSpeechRecognition;
22    const instance = new speechRecognitionCtor();
23    instance.continuous = true;
24    instance.interimResults = true;
25    instance.onresult = (event) => {
26      const transcript = Array.from(event.results).map((result) => result[0]).map((result) => result.transcript).join("");
27      onTranscriptRef.current(transcript);
28    };
29    instance.onerror = () => {
30      setIsListening(false);
31    };
32    setRecognition(instance);
33  }, []);
34  const startListening = () => {
35    if (recognition) {
36      recognition.start();
37      setIsListening(true);
38    }
39  };
40  const stopListening = () => {
41    if (recognition) {
42      recognition.stop();
43      setIsListening(false);
44    }
45  };
46  return {
47    isListening,
48    voiceSupported: recognition !== null,
49    startListening,
50    stopListening
51  };
52};
53
54//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZUlkZWFUb1dlYnNpdGVWb2ljZUlucHV0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuLyoqXG4gKiBCcm93c2VyIHNwZWVjaC10by10ZXh0IGZvciB0aGUgaWRlYS10by13ZWJzaXRlIGNvbXBvc2VyIChXZWIgU3BlZWNoIEFQSSkuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VJZGVhVG9XZWJzaXRlVm9pY2VJbnB1dCA9IChvblRyYW5zY3JpcHQ6ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQpID0+IHtcbiAgY29uc3Qgb25UcmFuc2NyaXB0UmVmID0gdXNlUmVmKG9uVHJhbnNjcmlwdCk7XG4gIG9uVHJhbnNjcmlwdFJlZi5jdXJyZW50ID0gb25UcmFuc2NyaXB0O1xuXG4gIGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcmVjb2duaXRpb24sIHNldFJlY29nbml0aW9uXSA9IHVzZVN0YXRlPFNwZWVjaFJlY29nbml0aW9uIHwgbnVsbD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoISgnU3BlZWNoUmVjb2duaXRpb24nIGluIHdpbmRvdykgJiYgISgnd2Via2l0U3BlZWNoUmVjb2duaXRpb24nIGluIHdpbmRvdykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzcGVlY2hSZWNvZ25pdGlvbkN0b3IgPSB3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHwgd2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9uO1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IHNwZWVjaFJlY29nbml0aW9uQ3RvcigpO1xuICAgIGluc3RhbmNlLmNvbnRpbnVvdXMgPSB0cnVlO1xuICAgIGluc3RhbmNlLmludGVyaW1SZXN1bHRzID0gdHJ1ZTtcblxuICAgIGluc3RhbmNlLm9ucmVzdWx0ID0gKGV2ZW50OiBTcGVlY2hSZWNvZ25pdGlvbkV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2NyaXB0ID0gQXJyYXkuZnJvbShldmVudC5yZXN1bHRzKVxuICAgICAgICAubWFwKChyZXN1bHQpID0+IHJlc3VsdFswXSlcbiAgICAgICAgLm1hcCgocmVzdWx0KSA9PiByZXN1bHQudHJhbnNjcmlwdClcbiAgICAgICAgLmpvaW4oJycpO1xuICAgICAgb25UcmFuc2NyaXB0UmVmLmN1cnJlbnQodHJhbnNjcmlwdCk7XG4gICAgfTtcblxuICAgIGluc3RhbmNlLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICBzZXRJc0xpc3RlbmluZyhmYWxzZSk7XG4gICAgfTtcblxuICAgIHNldFJlY29nbml0aW9uKGluc3RhbmNlKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHN0YXJ0TGlzdGVuaW5nID0gKCkgPT4ge1xuICAgIGlmIChyZWNvZ25pdGlvbikge1xuICAgICAgcmVjb2duaXRpb24uc3RhcnQoKTtcbiAgICAgIHNldElzTGlzdGVuaW5nKHRydWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBzdG9wTGlzdGVuaW5nID0gKCkgPT4ge1xuICAgIGlmIChyZWNvZ25pdGlvbikge1xuICAgICAgcmVjb2duaXRpb24uc3RvcCgpO1xuICAgICAgc2V0SXNMaXN0ZW5pbmcoZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGlzTGlzdGVuaW5nLFxuICAgIHZvaWNlU3VwcG9ydGVkOiByZWNvZ25pdGlvbiAhPT0gbnVsbCxcbiAgICBzdGFydExpc3RlbmluZyxcbiAgICBzdG9wTGlzdGVuaW5nLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLFNBQVMsV0FBVyxRQUFRLGdCQUFnQjtBQUtyQyxhQUFNLDZCQUE2QixDQUFDLGlCQUF5QztBQUNsRixRQUFNLGtCQUFrQixPQUFPLFlBQVk7QUFDM0Msa0JBQWdCLFVBQVU7QUFFMUIsUUFBTSxDQUFDLGFBQWEsY0FBYyxJQUFJLFNBQVMsS0FBSztBQUNwRCxRQUFNLENBQUMsYUFBYSxjQUFjLElBQUksU0FBbUMsSUFBSTtBQUU3RSxZQU
54FVLE1BQU07QUFDZCxRQUFJLE9BQU8sV0FBVyxhQUFhO0FBQ2pDO0FBQUEsSUFDRjtBQUVBLFFBQUksRUFBRSx1QkFBdUIsV0FBVyxFQUFFLDZCQUE2QixTQUFTO0FBQzlFO0FBQUEsSUFDRjtBQUVBLFVBQU0sd0JBQXdCLE9BQU8scUJBQXFCLE9BQU87QUFDakUsVUFBTSxXQUFXLElBQUksc0JBQXNCO0FBQzNDLGFBQVMsYUFBYTtBQUN0QixhQUFTLGlCQUFpQjtBQUUxQixhQUFTLFdBQVcsQ0FBQyxVQUFrQztBQUNyRCxZQUFNLGFBQWEsTUFBTSxLQUFLLE1BQU0sT0FBTyxFQUN4QyxJQUFJLENBQUMsV0FBVyxPQUFPLENBQUMsQ0FBQyxFQUN6QixJQUFJLENBQUMsV0FBVyxPQUFPLFVBQVUsRUFDakMsS0FBSyxFQUFFO0FBQ1Ysc0JBQWdCLFFBQVEsVUFBVTtBQUFBLElBQ3BDO0FBRUEsYUFBUyxVQUFVLE1BQU07QUFDdkIscUJBQWUsS0FBSztBQUFBLElBQ3RCO0FBRUEsbUJBQWUsUUFBUTtBQUFBLEVBQ3pCLEdBQUcsQ0FBQyxDQUFDO0FBRUwsUUFBTSxpQkFBaUIsTUFBTTtBQUMzQixRQUFJLGFBQWE7QUFDZixrQkFBWSxNQUFNO0FBQ2xCLHFCQUFlLElBQUk7QUFBQSxJQUNyQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLGdCQUFnQixNQUFNO0FBQzFCLFFBQUksYUFBYTtBQUNmLGtCQUFZLEtBQUs7QUFDakIscUJBQWUsS0FBSztBQUFBLElBQ3RCO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSxnQkFBZ0IsZ0JBQWdCO0FBQUEsSUFDaEM7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUNGOyIsIm5hbWVzIjpbXX0=

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.