@superinterface/react 2.4.2 → 2.4.4

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.js CHANGED
@@ -2665,16 +2665,20 @@ var blobToData = function(blob) {
2665
2665
  import { useMemo as useMemo10 } from "react";
2666
2666
  var useStatus = function(param) {
2667
2667
  var messageAudioProps = param.messageAudioProps, recorderProps = param.recorderProps, createMessageProps = param.createMessageProps;
2668
+ var latestMessageProps = useLatestMessage();
2668
2669
  var status = useMemo10(function() {
2670
+ var _latestMessageProps_latestMessage;
2669
2671
  if (recorderProps.status === "recording") return "recording";
2670
2672
  if (createMessageProps.isPending) return "creatingMessage";
2671
- if (messageAudioProps.playing) return "playing";
2673
+ if (messageAudioProps.playing || messageAudioProps.isPending) return "playing";
2672
2674
  if (messageAudioProps.paused) return "playerPaused";
2673
2675
  if (!messageAudioProps.isReady) return "loading";
2676
+ if (((_latestMessageProps_latestMessage = latestMessageProps.latestMessage) === null || _latestMessageProps_latestMessage === void 0 ? void 0 : _latestMessageProps_latestMessage.status) === "in_progress") return "creatingMessage";
2674
2677
  if (recorderProps.status === "idle") return "idle";
2675
2678
  if (recorderProps.status === "paused") return "recorderPaused";
2676
2679
  return "loading";
2677
2680
  }, [
2681
+ latestMessageProps,
2678
2682
  messageAudioProps,
2679
2683
  recorderProps,
2680
2684
  createMessageProps
@@ -2877,24 +2881,31 @@ var useMessageAudio = function(param) {
2877
2881
  var superinterfaceContext = useSuperinterfaceContext();
2878
2882
  var _useState41 = _sliced_to_array(useState4(false), 2), isPlaying = _useState41[0], setIsPlaying = _useState41[1];
2879
2883
  var latestMessageProps = useLatestMessage();
2880
- useEffect5(function() {
2881
- if (isPlaying) return;
2882
- if (audioPlayer.playing) return;
2883
- if (!latestMessageProps.latestMessage) return;
2884
- if (latestMessageProps.latestMessage.role !== "assistant") return;
2884
+ var unplayedMessageSentences = useMemo12(function() {
2885
+ if (!latestMessageProps.latestMessage) return [];
2886
+ if (latestMessageProps.latestMessage.role !== "assistant") return [];
2885
2887
  var input2 = input({
2886
2888
  message: latestMessageProps.latestMessage
2887
2889
  });
2888
- if (!input2) return;
2890
+ if (!input2) return [];
2889
2891
  var messageSentences = getMessageSentences({
2890
2892
  messageId: latestMessageProps.latestMessage.id,
2891
2893
  input: input2
2892
2894
  });
2893
- var unplayedMessageSentences = messageSentences.filter(function(ms) {
2895
+ return messageSentences.filter(function(ms) {
2894
2896
  return !playedMessageSentences.find(function(pms) {
2895
2897
  return pms.messageId === ms.messageId && pms.sentence === ms.sentence;
2896
2898
  });
2897
2899
  });
2900
+ }, [
2901
+ latestMessageProps,
2902
+ playedMessageSentences
2903
+ ]);
2904
+ useEffect5(function() {
2905
+ if (isPlaying) return;
2906
+ if (audioPlayer.playing) return;
2907
+ if (!latestMessageProps.latestMessage) return;
2908
+ if (latestMessageProps.latestMessage.role !== "assistant") return;
2898
2909
  var firstUnplayedMessageSentence = unplayedMessageSentences[0];
2899
2910
  if (!firstUnplayedMessageSentence) {
2900
2911
  return;
@@ -2932,6 +2943,7 @@ var useMessageAudio = function(param) {
2932
2943
  })
2933
2944
  }));
2934
2945
  }, [
2946
+ unplayedMessageSentences,
2935
2947
  isPlaying,
2936
2948
  superinterfaceContext,
2937
2949
  latestMessageProps,
@@ -2941,13 +2953,22 @@ var useMessageAudio = function(param) {
2941
2953
  ]);
2942
2954
  var isInited = useRef5(false);
2943
2955
  var _useState42 = _sliced_to_array(useState4(null), 2), audioEngine = _useState42[0], setAudioEngine = _useState42[1];
2956
+ useEffect5(function() {
2957
+ if (isHtmlAudioSupported) {
2958
+ var _Howler__howls___sounds_, _Howler__howls_;
2959
+ if (!(Howler === null || Howler === void 0 ? void 0 : (_Howler__howls_ = Howler._howls[0]) === null || _Howler__howls_ === void 0 ? void 0 : (_Howler__howls___sounds_ = _Howler__howls_._sounds[0]) === null || _Howler__howls___sounds_ === void 0 ? void 0 : _Howler__howls___sounds_._node)) return;
2960
+ if (!Howler._howls[0]._sounds[0]._node.crossOrigin) return;
2961
+ Howler._howls[0]._sounds[0]._node.crossOrigin = "anonymous";
2962
+ }
2963
+ }, [
2964
+ audioPlayer
2965
+ ]);
2944
2966
  useEffect5(function() {
2945
2967
  if (!audioPlayer.playing) return;
2946
2968
  if (isInited.current) return;
2947
2969
  isInited.current = true;
2948
2970
  if (isHtmlAudioSupported) {
2949
2971
  var audioContext = new AudioContext();
2950
- Howler._howls[0]._sounds[0]._node.crossOrigin = "anonymous";
2951
2972
  setAudioEngine({
2952
2973
  // @ts-ignore-next-line
2953
2974
  source: audioContext.createMediaElementSource(Howler._howls[0]._sounds[0]._node),
@@ -2972,7 +2993,15 @@ var useMessageAudio = function(param) {
2972
2993
  }, [
2973
2994
  audioEngine
2974
2995
  ]);
2975
- return _object_spread_props(_object_spread({}, audioPlayer), {
2996
+ var isPending = useMemo12(function() {
2997
+ return isPlaying || unplayedMessageSentences.length > 0;
2998
+ }, [
2999
+ isPlaying,
3000
+ unplayedMessageSentences
3001
+ ]);
3002
+ return _object_spread_props(_object_spread({
3003
+ isPending: isPending
3004
+ }, audioPlayer), {
2976
3005
  visualizationAnalyser: visualizationAnalyser
2977
3006
  });
2978
3007
  };
@@ -3330,9 +3359,9 @@ AudioThreadDialog.Trigger = Trigger;
3330
3359
  AudioThreadDialog.Button = Button2;
3331
3360
  AudioThreadDialog.Content = Content4;
3332
3361
  // src/components/suggestions/Suggestions/index.tsx
3333
- import { useMemo as useMemo15 } from "react";
3334
- // src/components/suggestions/Suggestions/Content.tsx
3335
3362
  import { useMemo as useMemo14 } from "react";
3363
+ // src/components/suggestions/Suggestions/Content.tsx
3364
+ import { useMemo as useMemo13 } from "react";
3336
3365
  import { isEmpty as isEmpty2 } from "radash";
3337
3366
  import { onlyText } from "react-children-utilities";
3338
3367
  import { Flex as Flex25 } from "@radix-ui/themes";
@@ -3389,7 +3418,7 @@ import { jsx as jsx63 } from "react/jsx-runtime";
3389
3418
  var Content6 = function(param) {
3390
3419
  var children = param.children;
3391
3420
  var isMutatingMessage = useIsMutatingMessage();
3392
- var suggestions = useMemo14(function() {
3421
+ var suggestions = useMemo13(function() {
3393
3422
  return onlyText(children).split(/\r?\n/).filter(function(c) {
3394
3423
  return !isEmpty2(c);
3395
3424
  }).map(function(c) {
@@ -3416,7 +3445,7 @@ import { jsx as jsx64 } from "react/jsx-runtime";
3416
3445
  var Suggestions = function(param) {
3417
3446
  var children = param.children;
3418
3447
  var latestMessageProps = useLatestMessage();
3419
- var isDisabled = useMemo15(function() {
3448
+ var isDisabled = useMemo14(function() {
3420
3449
  var // @ts-ignore-next-line
3421
3450
  _latestMessageProps_latestMessage_metadata, _latestMessageProps_latestMessage;
3422
3451
  return (_latestMessageProps_latestMessage = latestMessageProps.latestMessage) === null || _latestMessageProps_latestMessage === void 0 ? void 0 : (_latestMessageProps_latestMessage_metadata = _latestMessageProps_latestMessage.metadata) === null || _latestMessageProps_latestMessage_metadata === void 0 ? void 0 : _latestMessageProps_latestMessage_metadata.isBlocking;
@@ -3431,14 +3460,14 @@ var Suggestions = function(param) {
3431
3460
  };
3432
3461
  Suggestions.Item = Item;
3433
3462
  // src/components/markdown/MarkdownProvider/index.tsx
3434
- import { useMemo as useMemo16 } from "react";
3463
+ import { useMemo as useMemo15 } from "react";
3435
3464
  import { jsx as jsx65 } from "react/jsx-runtime";
3436
3465
  var MarkdownProvider = function(_param) {
3437
3466
  var children = _param.children, rest = _object_without_properties(_param, [
3438
3467
  "children"
3439
3468
  ]);
3440
3469
  var prevMarkdownContext = useMarkdownContext();
3441
- var value = useMemo16(function() {
3470
+ var value = useMemo15(function() {
3442
3471
  return merge(prevMarkdownContext, rest);
3443
3472
  }, [
3444
3473
  rest,