Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64
Your IP : 18.227.0.21
{"version":3,"file":"static/js/392.0938aca9.chunk.js","mappings":"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","sources":["Components/Spinner.js","Components/Button.js","Components/navigation/Dropdown.js","Components/navigation/MenuItems.js","Actions/Menus/Menus.js","Components/navigation/Navbar.js","Components/navigation/MobileDropdown.js","Components/navigation/MobileMenuItems.js","Components/navigation/MobileNav.js","Components/navigation/Header.js"],"sourcesContent":["import React from \"react\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Spin } from \"antd\";\n\nconst Spinner = () => {\n return (\n <Spin\n indicator={\n <LoadingOutlined style={{ fontSize: 30, color: \"white\" }} spin />\n }\n />\n );\n};\n\nexport default Spinner;\n","import React from \"react\";\nimport Spinner from \"./Spinner\";\n\nconst Button = ({ text, onClick, isLoading }) => {\n return (\n <div>\n {isLoading ? (\n <div className=\"button\" style={{ paddingTop: 10 }}>\n <Spinner />\n </div>\n ) : (\n <div>\n <input\n type=\"submit\"\n className=\"button\"\n value={text}\n onClick={onClick}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default Button;\n","import MenuItems from \"./MenuItems\";\nconst Dropdown = ({ submenus, dropdown, depthLevel }) => {\n depthLevel = depthLevel + 1;\n const dropdownClass = depthLevel > 1 ? \"dropdown-submenu\" : \"\";\n return (\n <ul className={`dropdown ${dropdownClass} ${dropdown ? \"show\" : \"\"}`}>\n {submenus.map((submenu, index) => (\n <MenuItems items={submenu} key={index} depthLevel={depthLevel} />\n ))}\n </ul>\n );\n};\n\nexport default Dropdown;\n","import { useState, useEffect, useRef } from \"react\";\nimport Dropdown from \"./Dropdown\";\nimport { CaretDownOutlined, CaretRightOutlined } from \"@ant-design/icons\";\nimport { NavLink } from \"react-router-dom\";\n\nconst MenuItems = ({ items, depthLevel }) => {\n const [dropdown, setDropdown] = useState(false);\n let ref = useRef();\n useEffect(() => {\n const handler = (event) => {\n if (dropdown && ref.current && !ref.current.contains(event.target)) {\n setDropdown(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n document.addEventListener(\"touchstart\", handler);\n return () => {\n // Cleanup the event listener\n document.removeEventListener(\"mousedown\", handler);\n document.removeEventListener(\"touchstart\", handler);\n };\n }, [dropdown]);\n\n const onMouseEnter = () => {\n setDropdown(true);\n };\n\n const onMouseLeave = () => {\n setDropdown(false);\n };\n\n const toggleDropdown = () => {\n setDropdown((prev) => !prev);\n };\n\n const closeDropdown = () => {\n dropdown && setDropdown(false);\n };\n\n return (\n <li\n className=\"menu-items\"\n ref={ref}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={closeDropdown}\n >\n {items.url && items.submenu ? (\n <>\n <button\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={dropdown ? \"true\" : \"false\"}\n onClick={() => toggleDropdown()}\n >\n {/* <NavLink to={items.url}>{items.title}</NavLink> */}\n <NavLink>{items.title}</NavLink>\n {depthLevel > 0 ? <CaretRightOutlined /> : <CaretDownOutlined />}\n </button>\n <Dropdown\n depthLevel={depthLevel}\n submenus={items.submenu}\n dropdown={dropdown}\n />\n </>\n ) : !items.url && items.submenu ? (\n <>\n <button\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={dropdown ? \"true\" : \"false\"}\n >\n {items.title}\n {depthLevel > 0 ? <CaretRightOutlined /> : <CaretDownOutlined />}\n </button>\n <Dropdown\n depthLevel={depthLevel}\n submenus={items.submenu}\n dropdown={dropdown}\n />\n </>\n ) : (\n <NavLink to={items.url}>{items.title}</NavLink>\n )}\n </li>\n );\n};\n\nexport default MenuItems;\n","import React from \"react\";\nimport axios from \"axios\";\nimport { base_url } from \"../../Components/api\";\n\nexport const Menus = async (dispatch, userType, funivcode) => {\n await axios({\n method: \"GET\",\n url:\n base_url +\n \"getCmenus\" +\n \"&usertype=\" +\n userType +\n \"&univcode=\" +\n funivcode,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }).then((res) => {\n if (res.data.error_code === 0) {\n let arr = [];\n res.data.data.menu.map((el, i) => {\n let obj = {};\n obj.title = el.title;\n obj.url = el.url;\n if (el.submenu.length > 0) {\n obj.submenu = el.submenu;\n el.submenu.map((el, i) => {\n if (el.submenu.length === 0) {\n delete el.submenu;\n }\n });\n }\n arr.push(obj);\n });\n dispatch({ type: \"MENUS\", payload: arr });\n } else {\n dispatch({ type: \"CLEAR_MENUS\", payload: [] });\n }\n });\n};\n","import React, { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n// import { menuItemsData } from \"../../menuItemsData\";\nimport MenuItems from \"./MenuItems\";\nimport { Menus } from \"../../Actions/Menus/Menus\";\n\nconst Navbar = () => {\n const depthLevel = 0;\n const dispatch = useDispatch();\n const userData = useSelector((state) => state.AuthReducer);\n const menudata = useSelector((state) => state.MenuReducer.menus);\n\n useEffect(() => {\n getMenus();\n }, []);\n\n const getMenus = async () => {\n await Menus(\n dispatch,\n userData.userData.fusertype,\n userData.userData.funivcode\n );\n };\n\n return (\n <nav className=\"desktop-nav\">\n <ul className=\"menus\">\n {menudata.map((menu, index) => {\n return <MenuItems items={menu} key={index} depthLevel={depthLevel} />;\n })}\n </ul>\n </nav>\n );\n};\n\nexport default Navbar;\n","import MobileMenuItems from \"./MobileMenuItems\";\n\nconst MobileDropdown = ({ submenus, dropdown, depthLevel }) => {\n depthLevel = depthLevel + 1;\n const dropdownClass = depthLevel > 1 ? \"dropdown-submenu\" : \"\";\n\n return (\n <ul className={`dropdown ${dropdownClass} ${dropdown ? \"show\" : \"\"}`}>\n {submenus.map((submenu, index) => (\n <MobileMenuItems items={submenu} key={index} depthLevel={depthLevel} />\n ))}\n </ul>\n );\n};\n\nexport default MobileDropdown;\n","import { useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport MobileDropdown from \"./MobileDropdown\";\n\nconst MobileMenuItems = ({ items, depthLevel, showMenu, setShowMenu }) => {\n const [dropdown, setDropdown] = useState(false);\n\n const closeDropdown = () => {\n dropdown && setDropdown(false);\n showMenu && setShowMenu(false);\n };\n\n const toggleDropdown = (e) => {\n e.stopPropagation();\n setDropdown((prev) => !prev);\n };\n\n return (\n <li className=\"menu-items\" onClick={closeDropdown}>\n {items.url && items.submenu ? (\n <>\n <button\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={dropdown ? \"true\" : \"false\"}\n >\n {/* <Link to={items.url} onClick={closeDropdown}>\n {items.title}\n </Link> */}\n <Link onClick={closeDropdown}>{items.title}</Link>\n <div onClick={(e) => toggleDropdown(e)}>\n {dropdown ? (\n <span className=\"arrow-close\" />\n ) : (\n <span className=\"arrow\" />\n )}\n </div>\n </button>\n <MobileDropdown\n depthLevel={depthLevel}\n submenus={items.submenu}\n dropdown={dropdown}\n />\n </>\n ) : !items.url && items.submenu ? (\n <>\n <button\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={dropdown ? \"true\" : \"false\"}\n >\n {items.title}{\" \"}\n <div onClick={(e) => toggleDropdown(e)}>\n {dropdown ? (\n <span className=\"arrow-close\" />\n ) : (\n <span className=\"arrow\" />\n )}\n </div>\n </button>\n <MobileDropdown\n depthLevel={depthLevel}\n submenus={items.submenu}\n dropdown={dropdown}\n />\n </>\n ) : (\n <Link to={items.url}>{items.title}</Link>\n )}\n </li>\n );\n};\n\nexport default MobileMenuItems;\n","import React, { useEffect, useRef, useState } from \"react\";\n// import { menuItemsData } from \"../../menuItemsData\";\nimport MobileMenuItems from \"./MobileMenuItems\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Menus } from \"../../Actions/Menus/Menus\";\n\nconst MobileNav = () => {\n const depthLevel = 0;\n const dispatch = useDispatch();\n\n const menudata = useSelector((state) => state.MenuReducer.menus);\n const userData = useSelector((state) => state.AuthReducer);\n\n const [showMenu, setShowMenu] = useState(false);\n let ref = useRef();\n\n useEffect(() => {\n getMenus();\n const handler = (event) => {\n if (showMenu && ref.current && !ref.current.contains(event.target)) {\n setShowMenu(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n document.addEventListener(\"touchstart\", handler);\n return () => {\n // Cleanup the event listener\n document.removeEventListener(\"mousedown\", handler);\n document.removeEventListener(\"touchstart\", handler);\n };\n }, [showMenu]);\n\n const getMenus = async () => {\n await Menus(\n dispatch,\n userData.userData.fusertype,\n userData.userData.funivcode\n );\n };\n\n return (\n <nav className=\"mobile-nav\">\n <button\n className=\"mobile-nav__menu-button\"\n type=\"button\"\n onClick={() => setShowMenu((prev) => !prev)}\n >\n Menu\n </button>\n\n {showMenu && (\n <ul className=\"menus\" ref={ref}>\n {menudata.map((menu, index) => {\n return (\n <MobileMenuItems\n items={menu}\n key={index}\n depthLevel={depthLevel}\n showMenu={showMenu}\n setShowMenu={setShowMenu}\n />\n );\n })}\n </ul>\n )}\n </nav>\n );\n};\n\nexport default MobileNav;\n","import { useState } from \"react\";\nimport { UserOutlined } from \"@ant-design/icons\";\nimport Button from \"../Button\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Avatar, Space, Badge, Drawer } from \"antd\";\nimport Navbar from \"./Navbar\";\nimport MobileNav from \"./MobileNav\";\nimport \"./Nav.css\";\nimport { logoutUser } from \"../../Actions/Login/Login\";\nimport { NavLink } from \"react-router-dom\";\n\nconst styles = {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n};\n\nconst Header = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const [drawerOpen, setDrawerOpen] = useState(false);\n const [logo, setLogo] = useState(localStorage.getItem(\"logo\"));\n\n const univdata = useSelector((state) => state.AuthReducer.userData);\n\n const handleLogout = () => {\n dispatch(logoutUser(navigate));\n };\n\n return (\n <header>\n <div className=\"nav-area\">\n <div style={styles}>\n <NavLink to=\"/\" className=\"logo\">\n <img\n src={logo}\n width={50}\n height={50}\n style={{ borderRadius: \"8px\" }}\n />\n </NavLink>\n <p style={{ fontSize: \"10px\" }}>\n {univdata.funivcode + \" - \" + univdata.funivname.toUpperCase()}\n </p>\n </div>\n\n <Navbar />\n <MobileNav />\n <div style={styles}>\n <p\n style={{\n fontSize: \"10px\",\n marginRight: \"5px\",\n width: \"100px\",\n textAlign: \"justify\",\n }}\n >\n {univdata.fcollcode + \"-\" + univdata.fcollname}\n </p>\n <Space wrap size={16}>\n <Badge>\n <Avatar\n size={50}\n icon={<UserOutlined />}\n onClick={() => setDrawerOpen(true)}\n />\n <p\n style={{\n fontSize: \"10px\",\n color: \"#fff\",\n textAlign: \"center\",\n }}\n >\n {univdata.fuser}\n </p>\n </Badge>\n </Space>\n </div>\n <Drawer\n title=\"Profile\"\n open={drawerOpen}\n onClose={() => setDrawerOpen(false)}\n >\n <Button text=\"Logout\" onClick={() => handleLogout()} />\n </Drawer>\n </div>\n </header>\n );\n};\n\nexport default Header;\n"],"names":["Spinner","_jsx","Spin","indicator","LoadingOutlined","style","fontSize","color","spin","_ref","text","onClick","isLoading","children","className","paddingTop","type","value","submenus","dropdown","depthLevel","dropdownClass","concat","map","submenu","index","MenuItems","items","setDropdown","useState","ref","useRef","useEffect","handler","event","current","contains","target","document","addEventListener","removeEventListener","onMouseEnter","onMouseLeave","closeDropdown","url","_jsxs","_Fragment","prev","NavLink","title","CaretRightOutlined","CaretDownOutlined","Dropdown","to","Menus","async","dispatch","userType","funivcode","axios","method","base_url","headers","then","res","data","error_code","arr","menu","el","i","obj","length","push","payload","Navbar","useDispatch","userData","useSelector","state","AuthReducer","menudata","MenuReducer","menus","getMenus","fusertype","MobileMenuItems","showMenu","setShowMenu","toggleDropdown","e","stopPropagation","Link","MobileDropdown","MobileNav","styles","display","justifyContent","alignItems","Header","navigate","useNavigate","drawerOpen","setDrawerOpen","logo","setLogo","localStorage","getItem","univdata","src","width","height","borderRadius","funivname","toUpperCase","marginRight","textAlign","fcollcode","fcollname","Space","wrap","size","Badge","Avatar","icon","UserOutlined","fuser","Drawer","open","onClose","Button","logoutUser"],"sourceRoot":""}
|