@slashid/docusaurus-theme-slashid
Version:
SlashID theme for Docusaurus.
43 lines (41 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = AuthButton;
var _react = _interopRequireDefault(require("react"));
var _react2 = require("@slashid/react");
var _authContext = require("../Root/auth-context");
var _slashid = require("../Root/slashid");
var _authButtonModule = _interopRequireDefault(require("./auth-button.module.css"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* ============================================================================
* Copyright (c) SlashID
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* ========================================================================== */
function AuthButton() {
const {
user,
logOut
} = (0, _react2.useSlashID)();
const {
setShowLogin
} = _react.default.useContext(_authContext.AuthContext);
const handleClick = _react.default.useCallback(async () => {
const isLoggedIn = Boolean(user);
if (isLoggedIn) {
await logOut();
window.localStorage.removeItem(_slashid.STORAGE_KEY);
setShowLogin(false);
} else {
setShowLogin(true);
}
}, [logOut, setShowLogin, user]);
return <div className={_authButtonModule.default.host}>
<button className={_authButtonModule.default.button} type="button" onClick={handleClick}>
{!user ? "Log in" : "Log out"}
</button>
</div>;
}