Skip to content

Commit

Permalink
Merge 0d38c4c into 113e716
Browse files Browse the repository at this point in the history
  • Loading branch information
mcrowder65 committed Mar 22, 2019
2 parents 113e716 + 0d38c4c commit 78898dd
Show file tree
Hide file tree
Showing 36 changed files with 1,845 additions and 22 deletions.
1 change: 1 addition & 0 deletions .babelrc.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
module.exports = {
presets: ["@babel/env", "@babel/preset-react"],
plugins: ["@babel/plugin-proposal-class-properties"],
};
14 changes: 14 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
language: node_js
node_js: 10.15.0
cache: npm
script:
- npm run build
- npm run linter;
- npm run jest;
- npm run coveralls;
deploy:
provider: npm
email: "$NPM_EMAIL"
api_key: "$NPM_TOKEN"
on:
branch: master
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Mooks

Reusable javascript utilities that serve [Matt Crowder!](https://twitter.com/mcrowder65)

23 changes: 23 additions & 0 deletions lib/components/default-value/default-value.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _propTypes = _interopRequireDefault(require("prop-types"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function DefaultValue(_ref) {
var children = _ref.children,
value = _ref.value;
return value === undefined ? null : children;
}

DefaultValue.propTypes = {
children: _propTypes.default.node.isRequired,
value: _propTypes.default.any
};
var _default = DefaultValue;
exports.default = _default;
60 changes: 60 additions & 0 deletions lib/components/loader-button/loader-button.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _Button = _interopRequireDefault(require("@material-ui/core/Button"));

var _CircularProgress = _interopRequireDefault(require("@material-ui/core/CircularProgress"));

var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function LoaderButton(props) {
var children = props.children,
isFetching = props.isFetching,
classes = props.classes,
circleSize = props.circleSize,
otherProps = _objectWithoutProperties(props, ["children", "isFetching", "classes", "circleSize"]);

return _react.default.createElement(_Button.default, _extends({}, otherProps, {
disabled: isFetching === true
}), children, isFetching ? _react.default.createElement(_CircularProgress.default, {
size: circleSize,
className: classes.loader,
"data-testid": "circular-progress"
}) : null);
}

LoaderButton.propTypes = {
children: _propTypes.default.node.isRequired,
isFetching: _propTypes.default.bool.isRequired,
classes: _propTypes.default.object.isRequired,
circleSize: _propTypes.default.number
};
LoaderButton.defaultProps = {
isFetching: false,
circleSize: 30
};
var styles = {
loader: {
position: "absolute"
}
};

var _default = (0, _withStyles.default)(styles)(LoaderButton);

exports.default = _default;
35 changes: 35 additions & 0 deletions lib/components/loader-card/loader-card.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _core = require("@material-ui/core");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function LoaderCard(_ref) {
var children = _ref.children,
isFetching = _ref.isFetching,
props = _objectWithoutProperties(_ref, ["children", "isFetching"]);

return _react.default.createElement(_core.Card, props, isFetching ? _react.default.createElement(_core.LinearProgress, {
"data-testid": "linear-progress"
}) : null, children);
}

LoaderCard.propTypes = {
children: _propTypes.default.node.isRequired,
isFetching: _propTypes.default.bool.isRequired
};
var _default = LoaderCard;
exports.default = _default;
103 changes: 103 additions & 0 deletions lib/components/login/login.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));

var _Input = _interopRequireDefault(require("@material-ui/core/Input"));

var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));

var _Button = _interopRequireDefault(require("@material-ui/core/Button"));

var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));

var _Card = _interopRequireDefault(require("@material-ui/core/Card"));

var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));

var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));

var _compose = require("../../compose");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var styles = {
content: {
display: "flex",
justifyContent: "center",
alignItems: "center"
},
card: {
width: 450,
padding: 20
}
};

function Login(_ref) {
var classes = _ref.classes,
_onSubmit = _ref._onSubmit;
return _react.default.createElement(_Card.default, {
className: classes.card
}, _react.default.createElement(_Typography.default, {
variant: "h4"
}, "Login"), _react.default.createElement("form", {
className: classes.content,
onSubmit: _onSubmit
}, _react.default.createElement(_Grid.default, {
container: true,
alignItems: "center",
direction: "column"
}, _react.default.createElement(_Grid.default, {
item: true
}, _react.default.createElement(_FormControl.default, {
margin: "normal",
required: true,
fullWidth: true
}, _react.default.createElement(_InputLabel.default, {
htmlFor: "email"
}, "Email Address"), _react.default.createElement(_Input.default, {
id: "email",
name: "email",
autoComplete: "email",
autoFocus: true
}))), _react.default.createElement(_Grid.default, {
item: true
}, _react.default.createElement(_FormControl.default, {
margin: "normal",
required: true,
fullWidth: true
}, _react.default.createElement(_InputLabel.default, {
htmlFor: "password"
}, "Password"), _react.default.createElement(_Input.default, {
name: "password",
type: "password",
id: "password",
autoComplete: "current-password"
}))), _react.default.createElement(_Grid.default, {
item: true
}, _react.default.createElement(_Button.default, {
type: "submit",
fullWidth: true,
variant: "contained",
color: "primary",
className: classes.submit
}, "Sign in")))));
}

Login.propTypes = {
classes: _propTypes.default.object.isRequired,
_onSubmit: _propTypes.default.func.isRequired
};
var enhance = (0, _compose.compose)((0, _withStyles.default)(styles));

var _default = enhance(Login);

exports.default = _default;
101 changes: 101 additions & 0 deletions lib/components/signup/signup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));

var _Input = _interopRequireDefault(require("@material-ui/core/Input"));

var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));

var _Button = _interopRequireDefault(require("@material-ui/core/Button"));

var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));

var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));

var _Card = _interopRequireDefault(require("@material-ui/core/Card"));

var _withStyles = _interopRequireDefault(require("@material-ui/core/styles/withStyles"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var styles = {
content: {
display: "flex",
justifyContent: "center",
alignItems: "center"
},
card: {
width: 300,
padding: 20
}
};

function Signup(_ref) {
var classes = _ref.classes,
_onSubmit = _ref._onSubmit;
return _react.default.createElement("div", {
className: classes.content
}, _react.default.createElement(_Card.default, {
className: classes.card
}, _react.default.createElement(_Grid.default, null, _react.default.createElement(_Typography.default, {
variant: "h4"
}, "Sign up"), _react.default.createElement("form", {
className: classes.content,
onSubmit: _onSubmit
}, _react.default.createElement(_Grid.default, {
container: true,
alignItems: "center",
direction: "column"
}, _react.default.createElement(_Grid.default, {
item: true
}, _react.default.createElement(_FormControl.default, {
margin: "normal",
required: true,
fullWidth: true
}, _react.default.createElement(_InputLabel.default, {
htmlFor: "email"
}, "Email Address"), _react.default.createElement(_Input.default, {
id: "email",
name: "email",
autoComplete: "email",
autoFocus: true
}))), _react.default.createElement(_Grid.default, {
item: true
}, _react.default.createElement(_FormControl.default, {
margin: "normal",
required: true,
fullWidth: true
}, _react.default.createElement(_InputLabel.default, {
htmlFor: "password"
}, "Password"), _react.default.createElement(_Input.default, {
name: "password",
type: "password",
id: "password",
autoComplete: "current-password"
}))), _react.default.createElement(_Grid.default, {
item: true
}, _react.default.createElement(_Button.default, {
type: "submit",
fullWidth: true,
variant: "contained",
color: "primary"
}, "Sign Up")))))));
}

Signup.propTypes = {
classes: _propTypes.default.object,
_onSubmit: _propTypes.default.func
};

var _default = (0, _withStyles.default)(styles)(Signup);

exports.default = _default;
31 changes: 31 additions & 0 deletions lib/compose.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.compose = void 0;

// copy and paste from redux/compose
var compose = function compose() {
for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
funcs[_key] = arguments[_key];
}

if (funcs.length === 0) {
return function (arg) {
return arg;
};
}

if (funcs.length === 1) {
return funcs[0];
}

return funcs.reduce(function (a, b) {
return function () {
return a(b.apply(void 0, arguments));
};
});
};

exports.compose = compose;
Loading

0 comments on commit 78898dd

Please sign in to comment.