UNPKG

react-moment-proptypes

Version:
67 lines (48 loc) 2.45 kB
# react-moment-proptypes [![Build Status](https://travis-ci.org/CalebMorris/react-moment-proptypes.svg?branch=master)](https://travis-ci.org/CalebMorris/react-moment-proptypes) [![Coverage Status](https://coveralls.io/repos/CalebMorris/react-moment-proptypes/badge.svg?branch=master&service=github)](https://coveralls.io/github/CalebMorris/react-moment-proptypes?branch=master) A React Proptype Validator to check if passed prop is a moment.js construct # Example ``` jsx var momentPropTypes = require('react-moment-proptypes'); var TestClass = React.createClass({ propTypes : { dateThing : momentPropTypes.momentObj, dateThingWithPredicate : momentPropTypes.momentObj.withPredicate( function isUTC(momentObject) { return momentObject.isUTC(); } ), stringThing : momentPropTypes.momentString, durationThing: momentPropTypes.momentDurationObj, }, render : function() { return null }, }); // Class Use <TestClass dateThing={moment()} dateThingWithPredicate={moment.utc()} stringThing={'12-12-2014'} durationThing={moment.duration(3, 'hours')}/> ``` # Moment Configuration ## createFromInputFallback Moment provides a `moment.createFromInputFallback` method you can define to create additional parsing rules. With some versions of moment you may receive the following console warning: ``` Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info. Arguments: [0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: not a date, _f: undefined, _strict: undefined, _locale: [object Object] Error at [... stack trace] ``` Example implementations can be found at the [given documentation link](http://momentjs.com/guides/#/warnings/js-date/). # Tests Tests were approached with `enzyme` and React's test utility renderer - `npm test` for running unit and integration tests - `npm run coverage` for current test coverage ## Moment Versions - `npm run test-all` to test against tested moment version (1.6.0, 1.7.0, current) If there is a desire for varying moment legacy support I'm willing to add it, but will stick to YAGNI until then.