Merge branch 'master' of github.com:kylecorbelli/redux-token-auth
This commit is contained in:
commit
87516fc419
50
dist/generate-require-signin-wrapper.js
vendored
Normal file
50
dist/generate-require-signin-wrapper.js
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
"use strict";
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var __assign = (this && this.__assign) || Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var React = require("react");
|
||||
var react_redux_1 = require("react-redux");
|
||||
var generateRequireSignInWrapper = function (_a) {
|
||||
var redirectPathIfNotSignedIn = _a.redirectPathIfNotSignedIn;
|
||||
var requireSignInWrapper = function (PageComponent) {
|
||||
var GatedPage = /** @class */ (function (_super) {
|
||||
__extends(GatedPage, _super);
|
||||
function GatedPage() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
GatedPage.prototype.componentWillMount = function () {
|
||||
var _a = this.props, history = _a.history, isSignedIn = _a.isSignedIn;
|
||||
if (!isSignedIn) {
|
||||
history.replace(redirectPathIfNotSignedIn);
|
||||
}
|
||||
};
|
||||
GatedPage.prototype.render = function () {
|
||||
return React.createElement(PageComponent, __assign({}, this.props));
|
||||
};
|
||||
return GatedPage;
|
||||
}(React.Component));
|
||||
var mapStateToProps = function (state) { return ({
|
||||
isSignedIn: state.reduxTokenAuth.currentUser.isSignedIn
|
||||
}); };
|
||||
return react_redux_1.connect(mapStateToProps)(GatedPage);
|
||||
};
|
||||
return requireSignInWrapper;
|
||||
};
|
||||
exports.default = generateRequireSignInWrapper;
|
||||
//# sourceMappingURL=generate-require-signin-wrapper.js.map
|
1
dist/generate-require-signin-wrapper.js.map
vendored
Normal file
1
dist/generate-require-signin-wrapper.js.map
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"generate-require-signin-wrapper.js","sourceRoot":"","sources":["../src/generate-require-signin-wrapper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,6BAA8B;AAE9B,2CAAqC;AAOrC,IAAM,4BAA4B,GAAG,UACnC,EAAiE;QAA/D,wDAAyB;IAE3B,IAAM,oBAAoB,GAAG,UAAC,aAA6B;QAQzD;YAAwB,6BAA6B;YAArD;;YAcA,CAAC;YAbQ,sCAAkB,GAAzB;gBACQ,IAAA,eAGQ,EAFZ,oBAAO,EACP,0BAAU,CACE;gBACd,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBAChB,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;gBAC5C,CAAC;YACH,CAAC;YAEM,0BAAM,GAAb;gBACE,MAAM,CAAC,oBAAC,aAAa,eAAK,IAAI,CAAC,KAAK,EAAI,CAAA;YAC1C,CAAC;YACH,gBAAC;QAAD,CAAC,AAdD,CAAwB,KAAK,CAAC,SAAS,GActC;QAED,IAAM,eAAe,GAAG,UAAC,KAAiB,IAAK,OAAA,CAAC;YAC9C,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU;SACxD,CAAC,EAF6C,CAE7C,CAAA;QAEF,MAAM,CAAC,qBAAO,CACZ,eAAe,CAChB,CAAC,SAAS,CAAC,CAAA;IACd,CAAC,CAAA;IAED,MAAM,CAAC,oBAAoB,CAAA;AAC7B,CAAC,CAAA;AAED,kBAAe,4BAA4B,CAAA"}
|
2
dist/index.js
vendored
2
dist/index.js
vendored
|
@ -4,4 +4,6 @@ var actions_1 = require("./actions");
|
|||
exports.generateAuthActions = actions_1.default;
|
||||
var reducers_1 = require("./reducers");
|
||||
exports.reduxTokenAuthReducer = reducers_1.default;
|
||||
var generate_require_signin_wrapper_1 = require("./generate-require-signin-wrapper");
|
||||
exports.generateRequireSignInWrapper = generate_require_signin_wrapper_1.default;
|
||||
//# sourceMappingURL=index.js.map
|
2
dist/index.js.map
vendored
2
dist/index.js.map
vendored
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,qCAA2C;AAIzC,8BAJK,iBAAmB,CAIL;AAHrB,uCAA8C;AAI5C,gCAJK,kBAAqB,CAIL"}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,qCAA2C;AAKzC,8BALK,iBAAmB,CAKL;AAJrB,uCAA8C;AAM5C,gCANK,kBAAqB,CAML;AALvB,qFAA4E;AAI1E,uCAJK,yCAA4B,CAIL"}
|
2
dist/initial-state.js.map
vendored
2
dist/initial-state.js.map
vendored
|
@ -1 +1 @@
|
|||
{"version":3,"file":"initial-state.js","sourceRoot":"","sources":["../src/initial-state.ts"],"names":[],"mappings":";;AAIA,IAAM,YAAY,GAAe;IAC/B,WAAW,EAAE;QACX,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,EAAE;KACf;CACF,CAAA;AAED,kBAAe,YAAY,CAAA"}
|
||||
{"version":3,"file":"initial-state.js","sourceRoot":"","sources":["../src/initial-state.ts"],"names":[],"mappings":";;AAIA,IAAM,YAAY,GAAwB;IACxC,WAAW,EAAE;QACX,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,EAAE;KACf;CACF,CAAA;AAED,kBAAe,YAAY,CAAA"}
|
2
dist/types.js.map
vendored
2
dist/types.js.map
vendored
|
@ -1 +1 @@
|
|||
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAyCa,QAAA,yBAAyB,GAA8B,4CAA4C,CAAA;AAGnG,QAAA,8BAA8B,GAAmC,iDAAiD,CAAA;AAGlH,QAAA,2BAA2B,GAAgC,8CAA8C,CAAA;AAGzG,QAAA,yBAAyB,GAA8B,4CAA4C,CAAA;AAGnG,QAAA,8BAA8B,GAAmC,iDAAiD,CAAA;AAGlH,QAAA,2BAA2B,GAAgC,8CAA8C,CAAA;AAGzG,QAAA,mBAAmB,GAAwB,sCAAsC,CAAA;AAGjF,QAAA,wBAAwB,GAA6B,2CAA2C,CAAA;AAGhG,QAAA,qBAAqB,GAA0B,wCAAwC,CAAA;AAGvF,QAAA,oBAAoB,GAAyB,uCAAuC,CAAA;AAGpF,QAAA,yBAAyB,GAA8B,4CAA4C,CAAA;AAGnG,QAAA,sBAAsB,GAA2B,yCAAyC,CAAA"}
|
||||
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AA8Ca,QAAA,yBAAyB,GAA8B,4CAA4C,CAAA;AAGnG,QAAA,8BAA8B,GAAmC,iDAAiD,CAAA;AAGlH,QAAA,2BAA2B,GAAgC,8CAA8C,CAAA;AAGzG,QAAA,yBAAyB,GAA8B,4CAA4C,CAAA;AAGnG,QAAA,8BAA8B,GAAmC,iDAAiD,CAAA;AAGlH,QAAA,2BAA2B,GAAgC,8CAA8C,CAAA;AAGzG,QAAA,mBAAmB,GAAwB,sCAAsC,CAAA;AAGjF,QAAA,wBAAwB,GAA6B,2CAA2C,CAAA;AAGhG,QAAA,qBAAqB,GAA0B,wCAAwC,CAAA;AAGvF,QAAA,oBAAoB,GAAyB,uCAAuC,CAAA;AAGpF,QAAA,yBAAyB,GAA8B,4CAA4C,CAAA;AAGnG,QAAA,sBAAsB,GAA2B,yCAAyC,CAAA"}
|
8
index.d.ts
vendored
8
index.d.ts
vendored
|
@ -1,6 +1,12 @@
|
|||
import { Reducer } from 'redux'
|
||||
import { ActionsGeneratorExport } from './src/types'
|
||||
import {
|
||||
ActionsGeneratorExport,
|
||||
GenerateRequireSignInWrapperConfig,
|
||||
RequireSignInWrapper,
|
||||
} from './src/types'
|
||||
|
||||
export const reduxTokenAuthReducer: Reducer<{}>
|
||||
|
||||
export const generateAuthActions: ActionsGeneratorExport
|
||||
|
||||
export const generateRequireSignInWrapper: (config: GenerateRequireSignInWrapperConfig) => RequireSignInWrapper
|
||||
|
|
150
package-lock.json
generated
150
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "redux-token-auth",
|
||||
"version": "0.17.0",
|
||||
"version": "0.18.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -10,6 +10,20 @@
|
|||
"integrity": "sha512-+vFMPCwOffrTy685X9Kj+Iz83I56Q8j0JK6xvsm6TA5qxbtPUJZcXtJY05WMGlhCKp/9qbpRCwyOp6GkMuyuLg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/react": {
|
||||
"version": "16.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.0.5.tgz",
|
||||
"integrity": "sha512-Wo/JT6Cpl7XuLA1Ov2M2Rso4Tep7rX6h1csbqhNDaSxqeY8nxUbrDkT6vJrKVu+7tw7vmJP9libZSReV9GsG9A=="
|
||||
},
|
||||
"@types/react-redux": {
|
||||
"version": "5.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-5.0.9.tgz",
|
||||
"integrity": "sha512-at3+d71RHz6NOqmv2a9p82sjkwQl81n8glTk/LTcD/oB2xSFrfH4K2ThZjwuVcP7ZyD1MlPEkNq+Z5CckYJgNw==",
|
||||
"requires": {
|
||||
"@types/react": "16.0.5",
|
||||
"redux": "3.7.2"
|
||||
}
|
||||
},
|
||||
"abab": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
|
||||
|
@ -143,6 +157,11 @@
|
|||
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
||||
"dev": true
|
||||
},
|
||||
"asap": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
|
||||
|
@ -626,6 +645,16 @@
|
|||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"create-react-class": {
|
||||
"version": "15.6.0",
|
||||
"resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz",
|
||||
"integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=",
|
||||
"requires": {
|
||||
"fbjs": "0.8.15",
|
||||
"loose-envify": "1.3.1",
|
||||
"object-assign": "4.1.1"
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
|
||||
|
@ -738,6 +767,14 @@
|
|||
"jsbn": "0.1.1"
|
||||
}
|
||||
},
|
||||
"encoding": {
|
||||
"version": "0.1.12",
|
||||
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
|
||||
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
|
||||
"requires": {
|
||||
"iconv-lite": "0.4.13"
|
||||
}
|
||||
},
|
||||
"errno": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
|
||||
|
@ -986,6 +1023,27 @@
|
|||
"bser": "2.0.0"
|
||||
}
|
||||
},
|
||||
"fbjs": {
|
||||
"version": "0.8.15",
|
||||
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.15.tgz",
|
||||
"integrity": "sha1-TwaV/fzBbDfAsH+s7Iy0xAkWhbk=",
|
||||
"requires": {
|
||||
"core-js": "1.2.7",
|
||||
"isomorphic-fetch": "2.2.1",
|
||||
"loose-envify": "1.3.1",
|
||||
"object-assign": "4.1.1",
|
||||
"promise": "7.3.1",
|
||||
"setimmediate": "1.0.5",
|
||||
"ua-parser-js": "0.7.14"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
|
||||
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
|
||||
}
|
||||
}
|
||||
},
|
||||
"filename-regex": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
|
||||
|
@ -2138,6 +2196,11 @@
|
|||
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
|
||||
"dev": true
|
||||
},
|
||||
"hoist-non-react-statics": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz",
|
||||
"integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA="
|
||||
},
|
||||
"home-or-tmp": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
|
||||
|
@ -2177,8 +2240,7 @@
|
|||
"iconv-lite": {
|
||||
"version": "0.4.13",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
||||
"integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
|
||||
"dev": true
|
||||
"integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI="
|
||||
},
|
||||
"imurmurhash": {
|
||||
"version": "0.1.4",
|
||||
|
@ -2206,7 +2268,6 @@
|
|||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
|
||||
"integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"loose-envify": "1.3.1"
|
||||
}
|
||||
|
@ -2324,8 +2385,7 @@
|
|||
"is-stream": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
||||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
|
||||
"dev": true
|
||||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
|
||||
},
|
||||
"is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
|
@ -2360,6 +2420,15 @@
|
|||
"isarray": "1.0.0"
|
||||
}
|
||||
},
|
||||
"isomorphic-fetch": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
|
||||
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
|
||||
"requires": {
|
||||
"node-fetch": "1.7.3",
|
||||
"whatwg-fetch": "2.0.3"
|
||||
}
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
|
@ -3452,6 +3521,15 @@
|
|||
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
||||
"dev": true
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
||||
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
|
||||
"requires": {
|
||||
"encoding": "0.1.12",
|
||||
"is-stream": "1.1.0"
|
||||
}
|
||||
},
|
||||
"node-int64": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
|
||||
|
@ -3521,8 +3599,7 @@
|
|||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
||||
"dev": true
|
||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
|
||||
},
|
||||
"object.omit": {
|
||||
"version": "2.0.1",
|
||||
|
@ -3768,6 +3845,23 @@
|
|||
"integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=",
|
||||
"dev": true
|
||||
},
|
||||
"promise": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
||||
"requires": {
|
||||
"asap": "2.0.6"
|
||||
}
|
||||
},
|
||||
"prop-types": {
|
||||
"version": "15.5.10",
|
||||
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
|
||||
"integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=",
|
||||
"requires": {
|
||||
"fbjs": "0.8.15",
|
||||
"loose-envify": "1.3.1"
|
||||
}
|
||||
},
|
||||
"prr": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
|
||||
|
@ -3833,6 +3927,31 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"react": {
|
||||
"version": "15.6.1",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz",
|
||||
"integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=",
|
||||
"requires": {
|
||||
"create-react-class": "15.6.0",
|
||||
"fbjs": "0.8.15",
|
||||
"loose-envify": "1.3.1",
|
||||
"object-assign": "4.1.1",
|
||||
"prop-types": "15.5.10"
|
||||
}
|
||||
},
|
||||
"react-redux": {
|
||||
"version": "5.0.6",
|
||||
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz",
|
||||
"integrity": "sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw==",
|
||||
"requires": {
|
||||
"hoist-non-react-statics": "2.3.1",
|
||||
"invariant": "2.2.2",
|
||||
"lodash": "4.17.4",
|
||||
"lodash-es": "4.17.4",
|
||||
"loose-envify": "1.3.1",
|
||||
"prop-types": "15.5.10"
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
||||
|
@ -4037,6 +4156,11 @@
|
|||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
|
||||
"dev": true
|
||||
},
|
||||
"setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
|
@ -4705,6 +4829,11 @@
|
|||
"integrity": "sha1-A4qV99m7tCCxvzW6MdTFwd0//jQ=",
|
||||
"dev": true
|
||||
},
|
||||
"ua-parser-js": {
|
||||
"version": "0.7.14",
|
||||
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.14.tgz",
|
||||
"integrity": "sha1-EQ1T+kw/MmwSEpK76skE0uAzh8o="
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "2.8.29",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
|
||||
|
@ -4816,6 +4945,11 @@
|
|||
"iconv-lite": "0.4.13"
|
||||
}
|
||||
},
|
||||
"whatwg-fetch": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
|
||||
"integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ="
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "4.8.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "redux-token-auth",
|
||||
"version": "0.17.0",
|
||||
"version": "0.18.0",
|
||||
"description": "Redux actions and reducers to integrate with Devise Token Auth",
|
||||
"main": "dist/index.js",
|
||||
"types": "index.d.ts",
|
||||
|
@ -45,7 +45,11 @@
|
|||
"typescript": "^2.5.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/react": "^16.0.5",
|
||||
"@types/react-redux": "^5.0.9",
|
||||
"axios": "^0.16.2",
|
||||
"react": "^15.6.1",
|
||||
"react-redux": "^5.0.6",
|
||||
"redux": "^3.7.2"
|
||||
}
|
||||
}
|
||||
|
|
49
src/generate-require-signin-wrapper.tsx
Normal file
49
src/generate-require-signin-wrapper.tsx
Normal file
|
@ -0,0 +1,49 @@
|
|||
import * as React from 'react'
|
||||
import { ComponentClass } from 'react'
|
||||
import { connect } from 'react-redux'
|
||||
import {
|
||||
GenerateRequireSignInWrapperConfig,
|
||||
ReduxState,
|
||||
RequireSignInWrapper,
|
||||
} from './types'
|
||||
|
||||
const generateRequireSignInWrapper = (
|
||||
{ redirectPathIfNotSignedIn }: GenerateRequireSignInWrapperConfig
|
||||
): RequireSignInWrapper => {
|
||||
const requireSignInWrapper = (PageComponent: ComponentClass): ComponentClass => {
|
||||
interface WrapperProps {
|
||||
readonly isSignedIn: boolean
|
||||
readonly history: {
|
||||
readonly replace: (path: string) => void
|
||||
}
|
||||
}
|
||||
|
||||
class GatedPage extends React.Component<WrapperProps> {
|
||||
public componentWillMount (): void {
|
||||
const {
|
||||
history,
|
||||
isSignedIn,
|
||||
} = this.props
|
||||
if (!isSignedIn) {
|
||||
history.replace(redirectPathIfNotSignedIn)
|
||||
}
|
||||
}
|
||||
|
||||
public render (): JSX.Element {
|
||||
return <PageComponent {...this.props} />
|
||||
}
|
||||
}
|
||||
|
||||
const mapStateToProps = (state: ReduxState) => ({
|
||||
isSignedIn: state.reduxTokenAuth.currentUser.isSignedIn
|
||||
})
|
||||
|
||||
return connect(
|
||||
mapStateToProps,
|
||||
)(GatedPage)
|
||||
}
|
||||
|
||||
return requireSignInWrapper
|
||||
}
|
||||
|
||||
export default generateRequireSignInWrapper
|
|
@ -1,7 +1,9 @@
|
|||
import generateAuthActions from './actions'
|
||||
import reduxTokenAuthReducer from './reducers'
|
||||
import generateRequireSignInWrapper from './generate-require-signin-wrapper'
|
||||
|
||||
export {
|
||||
generateAuthActions,
|
||||
generateRequireSignInWrapper,
|
||||
reduxTokenAuthReducer,
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import {
|
||||
ReduxState
|
||||
ReduxTokenAuthState
|
||||
} from './types'
|
||||
|
||||
const initialState: ReduxState = {
|
||||
const initialState: ReduxTokenAuthState = {
|
||||
currentUser: {
|
||||
isSignedIn: false,
|
||||
isLoading: false,
|
||||
|
|
13
src/types.ts
13
src/types.ts
|
@ -1,3 +1,4 @@
|
|||
import { ComponentClass } from 'react'
|
||||
import {
|
||||
Dispatch,
|
||||
Store,
|
||||
|
@ -13,10 +14,14 @@ export interface User {
|
|||
readonly attributes: UserAttributes
|
||||
}
|
||||
|
||||
export interface ReduxState {
|
||||
export interface ReduxTokenAuthState {
|
||||
readonly currentUser: User
|
||||
}
|
||||
|
||||
export interface ReduxState {
|
||||
readonly reduxTokenAuth: ReduxTokenAuthState
|
||||
}
|
||||
|
||||
export interface AuthHeaders {
|
||||
readonly 'access-token': string
|
||||
readonly 'token-type': string
|
||||
|
@ -179,3 +184,9 @@ export type ActionsGeneratorExport = (config: { [key: string]: any }) => Actions
|
|||
export interface SingleLayerStringMap {
|
||||
[key: string]: string
|
||||
}
|
||||
|
||||
export interface GenerateRequireSignInWrapperConfig {
|
||||
readonly redirectPathIfNotSignedIn: string
|
||||
}
|
||||
|
||||
export type RequireSignInWrapper = (PageComponent: ComponentClass) => ComponentClass
|
||||
|
|
Loading…
Reference in New Issue
Block a user