WebConferenceButton.jsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import React from "react";
  2. import { useTranslation } from "react-i18next";
  3. import { useUsers } from "react-sync-board";
  4. import Touch from "../ui/Touch";
  5. import useLocalStorage from "../hooks/useLocalStorage";
  6. import { WEBCONFERENCE } from "../utils/settings";
  7. import WebConference from "./WebConference";
  8. export const WeConferenceButton = ({ room }) => {
  9. const { t } = useTranslation();
  10. const { currentUser, localUsers } = useUsers();
  11. const [webConference, setWebConference] = useLocalStorage(
  12. "enableWebconference",
  13. false
  14. );
  15. if (!WEBCONFERENCE) {
  16. return null;
  17. }
  18. const icon =
  19. WEBCONFERENCE === "video"
  20. ? "https://icongr.am/material/webcam.svg?size=24&color=f9fbfa"
  21. : "https://icongr.am/material/microphone.svg?size=24&color=f9fbfa";
  22. return (
  23. <>
  24. <Touch
  25. onClick={() => setWebConference((prev) => !prev)}
  26. alt={t("Web conference")}
  27. title={t("Web conference")}
  28. icon={icon}
  29. active={webConference}
  30. />
  31. {webConference && (
  32. <WebConference
  33. room={room}
  34. currentUser={currentUser}
  35. users={localUsers}
  36. enableVideo={WEBCONFERENCE === "video"}
  37. />
  38. )}
  39. </>
  40. );
  41. };
  42. export default WeConferenceButton;