websync / components /input /ControlButton.tsx
Shivam
Initial commit: Web-SyncPlay moved into Streamer
d092f57
import { FC, ReactNode } from "react"
import InteractionHandler from "../action/InteractionHandler"
import classNames from "classnames"
interface Props {
tooltip: string
className?: string
onClick: () => void
interaction: (touch: boolean) => void
children?: ReactNode
}
const ControlButton: FC<Props> = ({
tooltip,
className,
onClick,
interaction,
children,
}) => {
return (
<InteractionHandler
tooltip={tooltip}
className={classNames(
"action cursor-pointer rounded p-2 select-none",
className
)}
onClick={(e, touch) => {
e.preventDefault()
e.stopPropagation()
onClick()
interaction(touch)
}}
onMove={(e, touch) => {
e.preventDefault()
e.stopPropagation()
interaction(touch)
}}
prevent={true}
>
{children}
</InteractionHandler>
)
}
export default ControlButton