1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| import san, {DataTypes} from 'san';
san.defineComponent({
optionalArray: DataTypes.array, optionalBool: DataTypes.bool, optionalFunc: DataTypes.func, optionalNumber: DataTypes.number, optionalObject: DataTypes.object, optionalString: DataTypes.string, optionalSymbol: DataTypes.symbol,
optionalMessage: DataTypes.instanceOf(Message),
optionalEnum: DataTypes.oneOf(['News', 'Photos']),
optionalUnion: DataTypes.oneOfType([ DataTypes.string, DataTypes.number, DataTypes.instanceOf(Message) ]),
optionalArrayOf: DataTypes.arrayOf(DataTypes.number),
optionalObjectOf: DataTypes.objectOf(DataTypes.number),
optionalObjectWithShape: DataTypes.shape({ color: DataTypes.string, fontSize: DataTypes.number }),
requiredFunc: DataTypes.func.isRequired, requiredObject: DataTypes.shape({ color: DataTypes.string }).isRequired,
requiredAny: DataTypes.any.isRequired,
customProp: function (props, propName, componentName) { if (!/matchme/.test(props[propName])) { throw new Error( 'Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Validation failed.' ); } },
customArrayProp: DataTypes.arrayOf(function (dataValue, key, componentName, dataFullName) { if (!/matchme/.test(dataValue[key])) { throw new Error( 'Invalid prop `' + dataFullName + '` supplied to' + ' `' + componentName + '`. Validation failed.' ); } })
});
|