@storybook/addon-ondevice-controls
Version:
Display storybook controls on your device.
41 lines (40 loc) • 1.47 kB
JavaScript
import tinycolor from 'tinycolor2';
import { PanResponder } from 'react-native';
/**
* Converts color to hsv representation.
* @param {string} color any color representation - name, hexa, rgb
* @return {object} { h: number, s: number, v: number } object literal
*/
export function toHsv(color) {
return tinycolor(color).toHsv();
}
/**
* Converts hsv object to hexa color string.
* @param {object} hsv { h: number, s: number, v: number } object literal
* @return {string} color in hexa representation
*/
export function fromHsv(hsv) {
return tinycolor(hsv).toHexString();
}
const fn = () => true;
/**
* Simplified pan responder wrapper.
*/
export function createPanResponder({ onStart = fn, onMove = fn, onEnd = fn, }) {
return PanResponder.create({
onStartShouldSetPanResponder: fn,
onStartShouldSetPanResponderCapture: fn,
onMoveShouldSetPanResponder: fn,
onMoveShouldSetPanResponderCapture: fn,
onPanResponderTerminationRequest: fn,
onPanResponderGrant: (evt, state) => {
return onStart({ x: evt.nativeEvent.pageX, y: evt.nativeEvent.pageY }, evt, state);
},
onPanResponderMove: (evt, state) => {
return onMove({ x: evt.nativeEvent.pageX, y: evt.nativeEvent.pageY }, evt, state);
},
onPanResponderRelease: (evt, state) => {
return onEnd({ x: evt.nativeEvent.pageX, y: evt.nativeEvent.pageY }, evt, state);
},
});
}