React proptype for moment module
npm install react-moment-proptypes

A React Proptype Validator to check if passed prop is a moment.js construct
`` 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
stringThing={'12-12-2014'}
durationThing={moment.duration(3, 'hours')}/>
`
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.
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 coverageMoment 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.