@superinterface/react 2.3.0 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +48 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +44 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -527,6 +527,11 @@ declare const AudioThread: {
|
|
|
527
527
|
Form: () => react_jsx_runtime.JSX.Element;
|
|
528
528
|
};
|
|
529
529
|
|
|
530
|
+
declare const useThreadDialogContext: () => {
|
|
531
|
+
isOpen: boolean;
|
|
532
|
+
setIsOpen: react.Dispatch<react.SetStateAction<boolean>>;
|
|
533
|
+
};
|
|
534
|
+
|
|
530
535
|
declare const Suggestions: {
|
|
531
536
|
({ children, }: {
|
|
532
537
|
children: React.ReactNode;
|
|
@@ -599,4 +604,4 @@ type Args = {
|
|
|
599
604
|
};
|
|
600
605
|
declare const FunctionBase: ({ fn, runStep, title, }: Args) => react_jsx_runtime.JSX.Element;
|
|
601
606
|
|
|
602
|
-
export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useLatestMessage, useMarkdownContext, useMessageContext, useMessages };
|
|
607
|
+
export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useLatestMessage, useMarkdownContext, useMessageContext, useMessages, useThreadDialogContext };
|
package/dist/index.d.ts
CHANGED
|
@@ -527,6 +527,11 @@ declare const AudioThread: {
|
|
|
527
527
|
Form: () => react_jsx_runtime.JSX.Element;
|
|
528
528
|
};
|
|
529
529
|
|
|
530
|
+
declare const useThreadDialogContext: () => {
|
|
531
|
+
isOpen: boolean;
|
|
532
|
+
setIsOpen: react.Dispatch<react.SetStateAction<boolean>>;
|
|
533
|
+
};
|
|
534
|
+
|
|
530
535
|
declare const Suggestions: {
|
|
531
536
|
({ children, }: {
|
|
532
537
|
children: React.ReactNode;
|
|
@@ -599,4 +604,4 @@ type Args = {
|
|
|
599
604
|
};
|
|
600
605
|
declare const FunctionBase: ({ fn, runStep, title, }: Args) => react_jsx_runtime.JSX.Element;
|
|
601
606
|
|
|
602
|
-
export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useLatestMessage, useMarkdownContext, useMessageContext, useMessages };
|
|
607
|
+
export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useLatestMessage, useMarkdownContext, useMessageContext, useMessages, useThreadDialogContext };
|
package/dist/index.js
CHANGED
|
@@ -2858,33 +2858,57 @@ var unsupportedNames = [
|
|
|
2858
2858
|
];
|
|
2859
2859
|
var isHtmlAudioSupported = !unsupportedNames.includes(((_detect = detect()) === null || _detect === void 0 ? void 0 : _detect.name) || "");
|
|
2860
2860
|
// src/hooks/audioThreads/useMessageAudio/index.ts
|
|
2861
|
+
var SPLIT_SENTENCE_REGEX = /[^\.\?!]+[\.\?!]/g;
|
|
2862
|
+
var FULL_SENTENCE_REGEX = /^\s*[A-Z].*[.?!]$/;
|
|
2863
|
+
var getMessageSentences = function(param) {
|
|
2864
|
+
var messageId = param.messageId, input2 = param.input;
|
|
2865
|
+
var sentences = input2.match(SPLIT_SENTENCE_REGEX) || [];
|
|
2866
|
+
return sentences.map(function(sentence) {
|
|
2867
|
+
return {
|
|
2868
|
+
messageId: messageId,
|
|
2869
|
+
sentence: sentence
|
|
2870
|
+
};
|
|
2871
|
+
});
|
|
2872
|
+
};
|
|
2861
2873
|
var useMessageAudio = function(param) {
|
|
2862
2874
|
var onEnd = param.onEnd;
|
|
2863
|
-
var _useState4 = _sliced_to_array(useState4([]), 2),
|
|
2875
|
+
var _useState4 = _sliced_to_array(useState4([]), 2), playedMessageSentences = _useState4[0], setPlayedMessageSentences = _useState4[1];
|
|
2864
2876
|
var audioPlayer = useAudioPlayer2();
|
|
2865
2877
|
var superinterfaceContext = useSuperinterfaceContext();
|
|
2878
|
+
var _useState41 = _sliced_to_array(useState4(false), 2), isPlaying = _useState41[0], setIsPlaying = _useState41[1];
|
|
2866
2879
|
var latestMessageProps = useLatestMessage();
|
|
2867
2880
|
useEffect5(function() {
|
|
2881
|
+
if (isPlaying) return;
|
|
2868
2882
|
if (audioPlayer.playing) return;
|
|
2869
2883
|
if (!latestMessageProps.latestMessage) return;
|
|
2870
2884
|
if (latestMessageProps.latestMessage.role !== "assistant") return;
|
|
2871
|
-
if (playedMessages.find(function(pm) {
|
|
2872
|
-
return pm.id === latestMessageProps.latestMessage.id || isOptimistic({
|
|
2873
|
-
id: pm.id
|
|
2874
|
-
}) && pm.content === latestMessageProps.latestMessage.content;
|
|
2875
|
-
})) return;
|
|
2876
|
-
if (playedMessages.includes(latestMessageProps.latestMessage)) return;
|
|
2877
2885
|
var input2 = input({
|
|
2878
2886
|
message: latestMessageProps.latestMessage
|
|
2879
2887
|
});
|
|
2880
2888
|
if (!input2) return;
|
|
2881
|
-
|
|
2889
|
+
var messageSentences = getMessageSentences({
|
|
2890
|
+
messageId: latestMessageProps.latestMessage.id,
|
|
2891
|
+
input: input2
|
|
2892
|
+
});
|
|
2893
|
+
var unplayedMessageSentences = messageSentences.filter(function(ms) {
|
|
2894
|
+
return !playedMessageSentences.find(function(pms) {
|
|
2895
|
+
return pms.messageId === ms.messageId && pms.sentence === ms.sentence;
|
|
2896
|
+
});
|
|
2897
|
+
});
|
|
2898
|
+
var firstUnplayedMessageSentence = unplayedMessageSentences[0];
|
|
2899
|
+
if (!firstUnplayedMessageSentence) {
|
|
2900
|
+
return;
|
|
2901
|
+
}
|
|
2902
|
+
var isFullSentence = FULL_SENTENCE_REGEX.test(firstUnplayedMessageSentence.sentence);
|
|
2903
|
+
if (!isFullSentence) return;
|
|
2904
|
+
setIsPlaying(true);
|
|
2905
|
+
setPlayedMessageSentences(function(prev) {
|
|
2882
2906
|
return _to_consumable_array(prev).concat([
|
|
2883
|
-
|
|
2907
|
+
firstUnplayedMessageSentence
|
|
2884
2908
|
]);
|
|
2885
2909
|
});
|
|
2886
2910
|
var searchParams = new URLSearchParams(_object_spread({
|
|
2887
|
-
input:
|
|
2911
|
+
input: firstUnplayedMessageSentence.sentence
|
|
2888
2912
|
}, isHtmlAudioSupported && superinterfaceContext.publicApiKey ? {
|
|
2889
2913
|
publicApiKey: superinterfaceContext.publicApiKey
|
|
2890
2914
|
} : {}));
|
|
@@ -2892,7 +2916,12 @@ var useMessageAudio = function(param) {
|
|
|
2892
2916
|
format: "mp3",
|
|
2893
2917
|
autoplay: true,
|
|
2894
2918
|
html5: isHtmlAudioSupported,
|
|
2895
|
-
onend:
|
|
2919
|
+
onend: function() {
|
|
2920
|
+
setIsPlaying(false);
|
|
2921
|
+
if (unplayedMessageSentences.length === 1 && latestMessageProps.latestMessage.status !== "in_progress") {
|
|
2922
|
+
onEnd();
|
|
2923
|
+
}
|
|
2924
|
+
}
|
|
2896
2925
|
}, isHtmlAudioSupported ? {} : {
|
|
2897
2926
|
xhr: _object_spread_props(_object_spread({}, superinterfaceContext.publicApiKey ? {
|
|
2898
2927
|
headers: {
|
|
@@ -2903,14 +2932,15 @@ var useMessageAudio = function(param) {
|
|
|
2903
2932
|
})
|
|
2904
2933
|
}));
|
|
2905
2934
|
}, [
|
|
2935
|
+
isPlaying,
|
|
2906
2936
|
superinterfaceContext,
|
|
2907
2937
|
latestMessageProps,
|
|
2908
2938
|
audioPlayer,
|
|
2909
|
-
|
|
2939
|
+
playedMessageSentences,
|
|
2910
2940
|
onEnd
|
|
2911
2941
|
]);
|
|
2912
2942
|
var isInited = useRef5(false);
|
|
2913
|
-
var
|
|
2943
|
+
var _useState42 = _sliced_to_array(useState4(null), 2), audioEngine = _useState42[0], setAudioEngine = _useState42[1];
|
|
2914
2944
|
useEffect5(function() {
|
|
2915
2945
|
if (!audioPlayer.playing) return;
|
|
2916
2946
|
if (isInited.current) return;
|
|
@@ -3418,5 +3448,5 @@ var MarkdownProvider = function(_param) {
|
|
|
3418
3448
|
children: children
|
|
3419
3449
|
});
|
|
3420
3450
|
};
|
|
3421
|
-
export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useLatestMessage, useMarkdownContext, useMessageContext, useMessages, useSuperinterfaceContext, useSuperinterfaceContext as useThreadContext };
|
|
3451
|
+
export { AssistantAvatarContext, AssistantNameContext, AudioThread, AudioThreadDialog, FunctionBase, FunctionComponentsContext, MarkdownContext, MarkdownProvider, Suggestions, SuperinterfaceProvider, Thread, ThreadDialog, ThreadDialogContext, useCreateMessage, useLatestMessage, useMarkdownContext, useMessageContext, useMessages, useSuperinterfaceContext, useSuperinterfaceContext as useThreadContext, useThreadDialogContext };
|
|
3422
3452
|
//# sourceMappingURL=index.js.map
|