You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1015 B
TypeScript
41 lines
1015 B
TypeScript
2 years ago
|
import { t } from "../../i18n";
|
||
|
import { usersIcon } from "../icons";
|
||
|
import { Button } from "../Button";
|
||
|
|
||
|
import clsx from "clsx";
|
||
|
|
||
|
import "./LiveCollaborationTrigger.scss";
|
||
2 years ago
|
import { useUIAppState } from "../../context/ui-appState";
|
||
2 years ago
|
|
||
|
const LiveCollaborationTrigger = ({
|
||
|
isCollaborating,
|
||
|
onSelect,
|
||
|
...rest
|
||
|
}: {
|
||
|
isCollaborating: boolean;
|
||
|
onSelect: () => void;
|
||
|
} & React.ButtonHTMLAttributes<HTMLButtonElement>) => {
|
||
2 years ago
|
const appState = useUIAppState();
|
||
2 years ago
|
|
||
|
return (
|
||
|
<Button
|
||
|
{...rest}
|
||
|
className={clsx("collab-button", { active: isCollaborating })}
|
||
|
type="button"
|
||
|
onSelect={onSelect}
|
||
|
style={{ position: "relative" }}
|
||
|
title={t("labels.liveCollaboration")}
|
||
|
>
|
||
|
{usersIcon}
|
||
|
{appState.collaborators.size > 0 && (
|
||
|
<div className="CollabButton-collaborators">
|
||
|
{appState.collaborators.size}
|
||
|
</div>
|
||
|
)}
|
||
|
</Button>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default LiveCollaborationTrigger;
|
||
|
LiveCollaborationTrigger.displayName = "LiveCollaborationTrigger";
|