{"version":3,"sources":["../../src/components/connection-status.tsx"],"sourcesContent":["/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport { agentConnectionStateObservable } from \"@/rapida/hooks/observables/voice-agent\";\nimport { useMaybeVoiceAgent } from \"@/rapida/hooks/use-voice-agent\";\nimport { cn } from \"@/rapida/styles\";\nimport React, { FC, HTMLAttributes, useState } from \"react\";\n\ninterface ConnectionStatusProps extends HTMLAttributes<HTMLSpanElement> {}\n//\nexport const ConnectionStatus: FC<ConnectionStatusProps> = ({ className }) => {\n  const agentContext = useMaybeVoiceAgent();\n  const [connected, setConnected] = useState<boolean>(false);\n\n  React.useEffect(() => {\n    const listener = agentConnectionStateObservable(agentContext!).subscribe(\n      (x) => {\n        setConnected(x.isConnected);\n      }\n    );\n    return () => listener.unsubscribe();\n  }, [agentContext]);\n\n  return (\n    <span\n      className={cn(connected && \"text-green-600\", \"font-medium\", className)}\n    >\n      {connected ? \"Connected\" : \"Disconnected\"}\n    </span>\n  );\n};\n"],"mappings":";;;;;;;;;AA2BA,OAAO,SAA6B,gBAAgB;AAkBhD;AAdG,IAAM,mBAA8C,CAAC,EAAE,UAAU,MAAM;AAC5E,QAAM,eAAe,mBAAmB;AACxC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAkB,KAAK;AAEzD,QAAM,UAAU,MAAM;AACpB,UAAM,WAAW,+BAA+B,YAAa,EAAE;AAAA,MAC7D,CAAC,MAAM;AACL,qBAAa,EAAE,WAAW;AAAA,MAC5B;AAAA,IACF;AACA,WAAO,MAAM,SAAS,YAAY;AAAA,EACpC,GAAG,CAAC,YAAY,CAAC;AAEjB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,aAAa,kBAAkB,eAAe,SAAS;AAAA,MAEpE,sBAAY,cAAc;AAAA;AAAA,EAC7B;AAEJ;","names":[]}