import React, { Component } from "react"; import Router from "next/router"; import PropTypes from "prop-types"; import Link from "next/link"; import { UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem, ListGroup, ListGroupItem } from "reactstrap"; import { logout } from "@/actions/auth"; import { connect } from "react-redux"; import { bindActionCreators } from "redux"; import * as actions from "../../store/actions/actions"; import ToggleFullscreen from "../Common/ToggleFullscreen"; import HeaderSearch from "./HeaderSearch"; import { ToastContainer, toast } from "react-toastify"; import "react-toastify/dist/ReactToastify.css"; class Header extends Component { state = { navSearchOpen: false, }; toggleNavSearch = (e) => { e.preventDefault(); this.setState({ navSearchOpen: !this.state.navSearchOpen, }); }; closeNavSearch = (e) => { e.preventDefault(); this.setState({ navSearchOpen: false, }); }; toggleUserblock = (e) => { e.preventDefault(); this.props.actions.toggleSetting("showUserBlock"); }; toggleOffsidebar = (e) => { e.preventDefault(); this.props.actions.toggleSetting("offsidebarOpen"); }; toggleCollapsed = (e) => { e.preventDefault(); this.props.actions.toggleSetting("isCollapsed"); this.resize(); }; toggleAside = (e) => { e.preventDefault(); this.props.actions.toggleSetting("asideToggled"); }; handleLogout = async (e) => { e.preventDefault(); // await logout(); this.props.tokenNull(); this.props.userNull(); // if (cek.success) { Router.push({ pathname: "/app" }); // } }; resize() { // all IE friendly dispatchEvent var evt = document.createEvent("UIEvents"); evt.initUIEvent("resize", true, false, window, 0); window.dispatchEvent(evt); // modern dispatchEvent way // window.dispatchEvent(new Event('resize')); } render() { return (
{/* START Top Navbar */} {/* END Top Navbar */}
); } } Header.propTypes = { actions: PropTypes.object, settings: PropTypes.object, }; const mapStateToProps = (state) => ({ settings: state.settings }); const mapDispatchToProps = (dispatch) => ({ actions: bindActionCreators(actions, dispatch), tokenNull: () => dispatch({ type: "SET_TOKEN", payload: null }), userNull: () => dispatch({ type: "SET_USER", payload: null }), }); export default connect(mapStateToProps, mapDispatchToProps)(Header);