farhantock
1 year ago
5 changed files with 139 additions and 25 deletions
@ -0,0 +1,46 @@ |
|||||||
|
import React from "react"; |
||||||
|
import Input from "antd/lib/input"; |
||||||
|
import Button from "antd/lib/button"; |
||||||
|
import Dropdown from "antd/lib/dropdown"; |
||||||
|
import { Panel } from 'rc-color-picker' |
||||||
|
import "antd/dist/antd.css"; |
||||||
|
import "./styles.css"; |
||||||
|
|
||||||
|
export default function InputColor(props) { |
||||||
|
const { color, onChange } = props; |
||||||
|
|
||||||
|
const [internalColor, setInternalColor] = React.useState(color); |
||||||
|
|
||||||
|
const handleChange = (color) => { |
||||||
|
setInternalColor(color.color); |
||||||
|
|
||||||
|
if (onChange) { |
||||||
|
onChange(color); |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
const overlay = ( |
||||||
|
<div> |
||||||
|
<Panel |
||||||
|
color={internalColor} |
||||||
|
enableAlpha={false} |
||||||
|
onChange={handleChange} |
||||||
|
/> |
||||||
|
</div> |
||||||
|
); |
||||||
|
|
||||||
|
return ( |
||||||
|
<> |
||||||
|
<Input |
||||||
|
value={internalColor || ""} |
||||||
|
onChange={(e) => setInternalColor(e.target.value)} |
||||||
|
suffix={ |
||||||
|
<Dropdown trigger={["click"]} overlay={overlay}> |
||||||
|
<Button style={{ background: internalColor }}> </Button> |
||||||
|
</Dropdown> |
||||||
|
} |
||||||
|
/> |
||||||
|
</> |
||||||
|
); |
||||||
|
} |
||||||
|
|
@ -0,0 +1,41 @@ |
|||||||
|
.App { |
||||||
|
font-family: sans-serif; |
||||||
|
padding: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
h2 { |
||||||
|
margin-top: 40px; |
||||||
|
} |
||||||
|
|
||||||
|
.rc-color-picker-panel { |
||||||
|
border: 1px solid #ccc; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-inner { |
||||||
|
border: none; |
||||||
|
box-shadow: none; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-board-hsv { |
||||||
|
border-radius: 12px; |
||||||
|
outline: none; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-board-value { |
||||||
|
border: none; |
||||||
|
border-radius: 12px; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-board-saturation { |
||||||
|
border: none; |
||||||
|
border-radius: 12px; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-ribbon { |
||||||
|
border-radius: 12px; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-wrap-preview { |
||||||
|
border-radius: 12px; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-preview span { |
||||||
|
border-radius: 12px; |
||||||
|
} |
||||||
|
.rc-color-picker-panel-preview input { |
||||||
|
border-radius: 12px; |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue