react-color
Version:
A Collection of Color Pickers from Sketch, Photoshop, Chrome & more
34 lines (30 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.render = render;
exports.get = get;
var checkboardCache = {};
function render(c1, c2, size, serverCanvas) {
if (typeof document === 'undefined' && !serverCanvas) return null;
var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');
canvas.width = canvas.height = size * 2;
var ctx = canvas.getContext('2d');
if (!ctx) return null; // If no context can be found, return early.
ctx.fillStyle = c1;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = c2;
ctx.fillRect(0, 0, size, size);
ctx.translate(size, size);
ctx.fillRect(0, 0, size, size);
return canvas.toDataURL();
}
function get(c1, c2, size, serverCanvas) {
var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');
var checkboard = render(c1, c2, size, serverCanvas);
if (checkboardCache[key]) {
return checkboardCache[key];
}
checkboardCache[key] = checkboard;
return checkboard;
}