@superinterface/react 2.4.2 → 2.4.3

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 CHANGED
@@ -2792,16 +2792,20 @@ var blobToData = function(blob) {
2792
2792
  var import_react38 = require("react");
2793
2793
  var useStatus = function(param) {
2794
2794
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2795
+ var latestMessageProps = useLatestMessage();
2795
2796
  var status = (0, import_react38.useMemo)(function() {
2797
+ var _latestMessageProps_latestMessage;
2796
2798
  if (recorderProps.status === "recording") return "recording";
2797
2799
  if (createMessageProps.isPending) return "creatingMessage";
2798
- if (messageAudioProps.playing) return "playing";
2800
+ if (messageAudioProps.playing || messageAudioProps.isPending) return "playing";
2799
2801
  if (messageAudioProps.paused) return "playerPaused";
2800
2802
  if (!messageAudioProps.isReady) return "loading";
2803
+ if (((_latestMessageProps_latestMessage = latestMessageProps.latestMessage) === null || _latestMessageProps_latestMessage === void 0 ? void 0 : _latestMessageProps_latestMessage.status) === "in_progress") return "creatingMessage";
2801
2804
  if (recorderProps.status === "idle") return "idle";
2802
2805
  if (recorderProps.status === "paused") return "recorderPaused";
2803
2806
  return "loading";
2804
2807
  }, [
2808
+ latestMessageProps,
2805
2809
  messageAudioProps,
2806
2810
  recorderProps,
2807
2811
  createMessageProps
@@ -3004,24 +3008,31 @@ var useMessageAudio = function(param) {
3004
3008
  var superinterfaceContext = useSuperinterfaceContext();
3005
3009
  var _ref1 = _sliced_to_array((0, import_react40.useState)(false), 2), isPlaying = _ref1[0], setIsPlaying = _ref1[1];
3006
3010
  var latestMessageProps = useLatestMessage();
3007
- (0, import_react40.useEffect)(function() {
3008
- if (isPlaying) return;
3009
- if (audioPlayer.playing) return;
3010
- if (!latestMessageProps.latestMessage) return;
3011
- if (latestMessageProps.latestMessage.role !== "assistant") return;
3011
+ var unplayedMessageSentences = (0, import_react40.useMemo)(function() {
3012
+ if (!latestMessageProps.latestMessage) return [];
3013
+ if (latestMessageProps.latestMessage.role !== "assistant") return [];
3012
3014
  var input2 = input({
3013
3015
  message: latestMessageProps.latestMessage
3014
3016
  });
3015
- if (!input2) return;
3017
+ if (!input2) return [];
3016
3018
  var messageSentences = getMessageSentences({
3017
3019
  messageId: latestMessageProps.latestMessage.id,
3018
3020
  input: input2
3019
3021
  });
3020
- var unplayedMessageSentences = messageSentences.filter(function(ms) {
3022
+ return messageSentences.filter(function(ms) {
3021
3023
  return !playedMessageSentences.find(function(pms) {
3022
3024
  return pms.messageId === ms.messageId && pms.sentence === ms.sentence;
3023
3025
  });
3024
3026
  });
3027
+ }, [
3028
+ latestMessageProps,
3029
+ playedMessageSentences
3030
+ ]);
3031
+ (0, import_react40.useEffect)(function() {
3032
+ if (isPlaying) return;
3033
+ if (audioPlayer.playing) return;
3034
+ if (!latestMessageProps.latestMessage) return;
3035
+ if (latestMessageProps.latestMessage.role !== "assistant") return;
3025
3036
  var firstUnplayedMessageSentence = unplayedMessageSentences[0];
3026
3037
  if (!firstUnplayedMessageSentence) {
3027
3038
  return;
@@ -3059,6 +3070,7 @@ var useMessageAudio = function(param) {
3059
3070
  })
3060
3071
  }));
3061
3072
  }, [
3073
+ unplayedMessageSentences,
3062
3074
  isPlaying,
3063
3075
  superinterfaceContext,
3064
3076
  latestMessageProps,
@@ -3099,7 +3111,15 @@ var useMessageAudio = function(param) {
3099
3111
  }, [
3100
3112
  audioEngine
3101
3113
  ]);
3102
- return _object_spread_props(_object_spread({}, audioPlayer), {
3114
+ var isPending = (0, import_react40.useMemo)(function() {
3115
+ return isPlaying || unplayedMessageSentences.length > 0;
3116
+ }, [
3117
+ isPlaying,
3118
+ unplayedMessageSentences
3119
+ ]);
3120
+ return _object_spread_props(_object_spread({
3121
+ isPending: isPending
3122
+ }, audioPlayer), {
3103
3123
  visualizationAnalyser: visualizationAnalyser
3104
3124
  });
3105
3125
  };