websync / components /Navbar.tsx
Shivam
Initial commit: Web-SyncPlay moved into Streamer
d092f57
import Link from "next/link"
import Image from "next/image"
import { getSiteDomain, getSiteName } from "../lib/env"
import Button from "./action/Button"
import IconShare from "./icon/IconShare"
import React, { useState } from "react"
import Modal from "./modal/Modal"
import InputClipboardCopy from "./input/InputClipboardCopy"
import { Tooltip } from "react-tooltip"
const Navbar = ({ roomId }: { roomId?: string }) => {
const [showShare, setShowShare] = useState(false)
return (
<div className={"py-1 px-2 flex flex-row gap-1 items-stretch bg-dark-900"}>
<Link
href={"/"}
className={
"flex p-1 shrink-0 flex-row gap-1 items-center rounded action"
}
>
<Image
src={"/logo_white.png"}
alt={"Web-SyncPlay logo"}
width={36}
height={36}
/>
<span className={"hide-below-sm"}>{getSiteName()}</span>
</Link>
{roomId && (
<>
<Modal
title={"Invite your friends"}
show={showShare}
close={() => setShowShare(false)}
>
<div>Share this link to let more people join in on the fun</div>
<InputClipboardCopy
className={"bg-dark-1000"}
value={getSiteDomain() + "/room/" + roomId}
/>
</Modal>
<Button
tooltip={"Share the room link"}
id={"navbar"}
actionClasses={"hover:bg-primary-800 active:bg-primary-700"}
className={"ml-auto p-2 bg-primary-900"}
onClick={() => setShowShare(true)}
>
<div className={"flex items-center mx-1"}>
<IconShare className={"mr-1"} />
Share
</div>
</Button>
</>
)}
<Tooltip
anchorId={"navbar"}
place={"bottom"}
style={{
backgroundColor: "var(--dark-700)",
}}
/>
</div>
)
}
export default Navbar