![]() | Name | Last modified | Size | Description |
---|---|---|---|---|
![]() | Parent Directory | - | ||
![]() | src/ | 2 years ago | - | |
![]() | test/ | 2 years ago | - | |
![]() | README.md | 39 years ago | 2.4K | f12eb36 documentaiton updates [كارل مبارك] |
![]() | index.d.ts | 39 years ago | 1.2K | |
![]() | package.json | 2 years ago | 2.9K | 7375cab EXHIBTION: fix overflow ellipsis cutoff [كارل مبارك] |
![]() | shippable.yaml | 39 years ago | 429 |
A React Proptype Validator to check if passed prop is a moment.js construct
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 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.
Tests were approached with enzyme
and React's test utility renderer
npm test
for running unit and integration testsnpm run coverage
for current test coveragenpm 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.