excalidraw/src/components/ColorPicker.tsx

54 lines
1.3 KiB
TypeScript
Raw Normal View History

import React from "react";
import { TwitterPicker } from "react-color";
2020-01-07 07:50:59 +05:00
import { Popover } from "./Popover";
export function ColorPicker({
color,
onChange
}: {
color: string | null;
onChange: (color: string) => void;
}) {
const [isActive, setActive] = React.useState(false);
return (
<div>
<button
className="swatch"
style={color ? { backgroundColor: color } : undefined}
onClick={() => setActive(!isActive)}
/>
{isActive ? (
2020-01-07 07:50:59 +05:00
<Popover onCloseRequest={() => setActive(false)}>
<TwitterPicker
colors={[
"#000000",
"#ABB8C3",
"#FFFFFF",
"#FF6900",
"#FCB900",
"#00D084",
"#8ED1FC",
"#0693E3",
"#EB144C",
"#F78DA7",
"#9900EF"
]}
width="205px"
color={color || undefined}
onChange={changedColor => {
onChange(changedColor.hex);
}}
/>
2020-01-07 07:50:59 +05:00
</Popover>
) : null}
<input
type="text"
className="swatch-input"
value={color || ""}
onPaste={e => onChange(e.clipboardData.getData("text"))}
onChange={e => onChange(e.target.value)}
/>
</div>
);
}