voicebot-react-native-expo
Version:
This is a voicebot-react-native package of Kipps AI voice bot for React Native Expo
45 lines (44 loc) • 1.42 kB
JavaScript
import * as i from "react";
import { LocalAudioTrack as m } from "livekit-client";
import { C as E } from "./hooks-C6T19zG6.mjs";
function b(n = {}) {
const [o, f] = i.useState(!1), [u, a] = i.useState(!1), [p, l] = i.useState(!1);
let e = E().microphoneTrack;
const [t, d] = i.useState();
n.trackRef && (e = n.trackRef.publication);
const k = i.useCallback(async (r) => {
if (r) {
const { KrispNoiseFilter: s, isKrispNoiseFilterSupported: c } = await import("@livekit/krisp-noise-filter");
if (!c()) {
console.warn("Krisp noise filter is not supported in this browser");
return;
}
t || d(s(n.filterOptions));
}
f((s) => (s !== r && a(!0), r));
}, []);
return i.useEffect(() => {
var r;
if (e && e.track instanceof m && t) {
const s = e.track.getProcessor();
s && s.name === "livekit-noise-filter" ? (a(!0), s.setEnabled(o).finally(() => {
a(!1), l(o);
})) : !s && o && (a(!0), (r = e == null ? void 0 : e.track) == null || r.setProcessor(t).then(() => t.setEnabled(o)).then(() => {
l(!0);
}).catch((c) => {
l(!1), console.error(c);
}).finally(() => {
a(!1);
}));
}
}, [o, e, t]), {
setNoiseFilterEnabled: k,
isNoiseFilterEnabled: p,
isNoiseFilterPending: u,
processor: t
};
}
export {
b as useKrispNoiseFilter
};
//# sourceMappingURL=krisp.mjs.map