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 : 3.15.138.214
{"version":3,"file":"static/js/387.c629b557.chunk.js","mappings":"uLAIA,MAUA,EAVgBA,KAEZC,EAAAA,EAAAA,KAACC,EAAAA,EAAI,CACHC,WACEF,EAAAA,EAAAA,KAACG,EAAAA,EAAe,CAACC,MAAO,CAAEC,SAAU,GAAIC,MAAO,SAAWC,MAAI,MCgBtE,EArBeC,IAAmC,IAAlC,KAAEC,EAAI,QAAEC,EAAO,UAAEC,GAAWH,EAC1C,OACER,EAAAA,EAAAA,KAAA,OAAAY,SACGD,GACCX,EAAAA,EAAAA,KAAA,OAAKa,UAAU,SAAST,MAAO,CAAEU,WAAY,IAAKF,UAChDZ,EAAAA,EAAAA,KAACD,EAAO,OAGVC,EAAAA,EAAAA,KAAA,OAAAY,UACEZ,EAAAA,EAAAA,KAAA,SACEe,KAAK,SACLF,UAAU,SACVG,MAAOP,EACPC,QAASA,OAIX,C,iKCnBV,MAYA,EAZiBF,IAAyC,IAAxC,SAAES,EAAQ,SAAEC,EAAQ,WAAEC,GAAYX,EAClDW,GAA0B,EAC1B,MAAMC,EAAgBD,EAAa,EAAI,mBAAqB,GAC5D,OACEnB,EAAAA,EAAAA,KAAA,MAAIa,UAAS,YAAAQ,OAAcD,EAAa,KAAAC,OAAIH,EAAW,OAAS,IAAKN,SAClEK,EAASK,KAAI,CAACC,EAASC,KACtBxB,EAAAA,EAAAA,KAACyB,EAAS,CAACC,MAAOH,EAAqBJ,WAAYA,GAAnBK,MAE/B,E,qCCHT,MAmFA,EAnFkBhB,IAA4B,IAA3B,MAAEkB,EAAK,WAAEP,GAAYX,EACtC,MAAOU,EAAUS,IAAeC,EAAAA,EAAAA,WAAS,GACzC,IAAIC,GAAMC,EAAAA,EAAAA,WACVC,EAAAA,EAAAA,YAAU,KACR,MAAMC,EAAWC,IACXf,GAAYW,EAAIK,UAAYL,EAAIK,QAAQC,SAASF,EAAMG,SACzDT,GAAY,EACd,EAIF,OAFAU,SAASC,iBAAiB,YAAaN,GACvCK,SAASC,iBAAiB,aAAcN,GACjC,KAELK,SAASE,oBAAoB,YAAaP,GAC1CK,SAASE,oBAAoB,aAAcP,EAAQ,CACpD,GACA,CAACd,IAkBJ,OACElB,EAAAA,EAAAA,KAAA,MACEa,UAAU,aACVgB,IAAKA,EACLW,aApBiBA,KACnBb,GAAY,EAAK,EAoBfc,aAjBiBA,KACnBd,GAAY,EAAM,EAiBhBjB,QAVkBgC,KACpBxB,GAAYS,GAAY,EAAM,EASLf,SAEtBc,EAAMiB,KAAOjB,EAAMH,SAClBqB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAjC,SAAA,EACEgC,EAAAA,EAAAA,MAAA,UACE7B,KAAK,SACL,gBAAc,OACd,gBAAeG,EAAW,OAAS,QACnCR,QAASA,KArBjBiB,GAAamB,IAAUA,GAqBiB,EAAAlC,SAAA,EAGhCZ,EAAAA,EAAAA,KAAC+C,EAAAA,GAAO,CAAAnC,SAAEc,EAAMsB,QACf7B,EAAa,GAAInB,EAAAA,EAAAA,KAACiD,EAAAA,EAAkB,KAAMjD,EAAAA,EAAAA,KAACkD,EAAAA,EAAiB,QAE/DlD,EAAAA,EAAAA,KAACmD,EAAQ,CACPhC,WAAYA,EACZF,SAAUS,EAAMH,QAChBL,SAAUA,QAGXQ,EAAMiB,KAAOjB,EAAMH,SACtBqB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAjC,SAAA,EACEgC,EAAAA,EAAAA,MAAA,UACE7B,KAAK,SACL,gBAAc,OACd,gBAAeG,EAAW,OAAS,QAAQN,SAAA,CAE1Cc,EAAMsB,MACN7B,EAAa,GAAInB,EAAAA,EAAAA,KAACiD,EAAAA,EAAkB,KAAMjD,EAAAA,EAAAA,KAACkD,EAAAA,EAAiB,QAE/DlD,EAAAA,EAAAA,KAACmD,EAAQ,CACPhC,WAAYA,EACZF,SAAUS,EAAMH,QAChBL,SAAUA,QAIdlB,EAAAA,EAAAA,KAAC+C,EAAAA,GAAO,CAACK,GAAI1B,EAAMiB,IAAI/B,SAAEc,EAAMsB,SAE9B,E,mCChFF,MAAMK,EAAQC,MAAOC,EAAUC,KACpC,UACQC,EAAAA,EAAAA,GAAM,CACVC,OAAQ,MACRf,IAAKgB,EAAAA,EAAAA,sBAAwCH,IAC5CI,MAAMC,IACP,GAA4B,IAAxBA,EAAIC,KAAKC,WAAkB,CAC7B,IAAIC,EAAM,GACVH,EAAIC,KAAKA,KAAKG,KAAK3C,KAAI,CAAC4C,EAAIC,KAC1B,IAAIC,EAAM,CAAC,EACXA,EAAIpB,MAAQkB,EAAGlB,MACfoB,EAAIzB,IAAMuB,EAAGvB,IACTuB,EAAG3C,QAAQ8C,OAAS,IACtBD,EAAI7C,QAAU2C,EAAG3C,QACjB2C,EAAG3C,QAAQD,KAAI,CAAC4C,EAAIC,KACQ,IAAtBD,EAAG3C,QAAQ8C,eACNH,EAAG3C,OACZ,KAGJyC,EAAIM,KAAKF,EAAI,IAEfb,EAAS,CAAExC,KAAM,QAASwD,QAASP,GACrC,MACET,EAAS,CAAExC,KAAM,cAAewD,QAAS,IAC3C,GAEJ,CAAE,MAAOC,IACPC,EAAAA,EAAAA,GAAMD,EACR,GCHF,EAzBeE,KACb,MACMnB,GAAWoB,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,KAAaC,GAAUA,EAAMC,cACxCC,GAAWH,EAAAA,EAAAA,KAAaC,GAAUA,EAAMG,YAAYC,SAE1DnD,EAAAA,EAAAA,YAAU,KACRoD,GAAU,GACT,IAEH,MAAMA,EAAW7B,gBACTD,EAAME,EAAUqB,EAASA,SAASQ,UAAU,EAGpD,OACEpF,EAAAA,EAAAA,KAAA,OAAKa,UAAU,cAAaD,UAC1BZ,EAAAA,EAAAA,KAAA,MAAIa,UAAU,QAAOD,SAClBoE,EAAS1D,KAAI,CAAC2C,EAAMzC,KACZxB,EAAAA,EAAAA,KAACyB,EAAS,CAACC,MAAOuC,EAAkB9C,WAjBhC,GAiByBK,QAGpC,ECZV,EAbuBhB,IAAyC,IAAxC,SAAES,EAAQ,SAAEC,EAAQ,WAAEC,GAAYX,EACxDW,GAA0B,EAC1B,MAAMC,EAAgBD,EAAa,EAAI,mBAAqB,GAE5D,OACEnB,EAAAA,EAAAA,KAAA,MAAIa,UAAS,YAAAQ,OAAcD,EAAa,KAAAC,OAAIH,EAAW,OAAS,IAAKN,SAClEK,EAASK,KAAI,CAACC,EAASC,KACtBxB,EAAAA,EAAAA,KAACqF,EAAe,CAAC3D,MAAOH,EAAqBJ,WAAYA,GAAnBK,MAErC,EC2DT,EAlEwBhB,IAAmD,IAAlD,MAAEkB,EAAK,WAAEP,EAAU,SAAEmE,EAAQ,YAAEC,GAAa/E,EACnE,MAAOU,EAAUS,IAAeC,EAAAA,EAAAA,WAAS,GAEnCc,EAAgBA,KACpBxB,GAAYS,GAAY,GACxB2D,GAAYC,GAAY,EAAM,EAG1BC,EAAkBC,IACtBA,EAAEC,kBACF/D,GAAamB,IAAUA,GAAK,EAG9B,OACE9C,EAAAA,EAAAA,KAAA,MAAIa,UAAU,aAAaH,QAASgC,EAAc9B,SAC/Cc,EAAMiB,KAAOjB,EAAMH,SAClBqB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAjC,SAAA,EACEgC,EAAAA,EAAAA,MAAA,UACE7B,KAAK,SACL,gBAAc,OACd,gBAAeG,EAAW,OAAS,QAAQN,SAAA,EAE3CZ,EAAAA,EAAAA,KAAC2F,EAAAA,GAAI,CAACjF,QAASgC,EAAc9B,SAAEc,EAAMsB,SACrChD,EAAAA,EAAAA,KAAA,OAAKU,QAAU+E,GAAMD,EAAeC,GAAG7E,SACpCM,GACClB,EAAAA,EAAAA,KAAA,QAAMa,UAAU,iBAEhBb,EAAAA,EAAAA,KAAA,QAAMa,UAAU,gBAItBb,EAAAA,EAAAA,KAAC4F,EAAc,CACbzE,WAAYA,EACZF,SAAUS,EAAMH,QAChBL,SAAUA,QAGXQ,EAAMiB,KAAOjB,EAAMH,SACtBqB,EAAAA,EAAAA,MAAAC,EAAAA,SAAA,CAAAjC,SAAA,EACEgC,EAAAA,EAAAA,MAAA,UACE7B,KAAK,SACL,gBAAc,OACd,gBAAeG,EAAW,OAAS,QAAQN,SAAA,CAE1Cc,EAAMsB,MAAO,KACdhD,EAAAA,EAAAA,KAAA,OAAKU,QAAU+E,GAAMD,EAAeC,GAAG7E,SACpCM,GACClB,EAAAA,EAAAA,KAAA,QAAMa,UAAU,iBAEhBb,EAAAA,EAAAA,KAAA,QAAMa,UAAU,gBAItBb,EAAAA,EAAAA,KAAC4F,EAAc,CACbzE,WAAYA,EACZF,SAAUS,EAAMH,QAChBL,SAAUA,QAIdlB,EAAAA,EAAAA,KAAC2F,EAAAA,GAAI,CAACvC,GAAI1B,EAAMiB,IAAI/B,SAAEc,EAAMsB,SAE3B,ECDT,EA3DkB6C,KAChB,MACMtC,GAAWoB,EAAAA,EAAAA,MAEXK,GAAWH,EAAAA,EAAAA,KAAaC,GAAUA,EAAMG,YAAYC,QACpDN,GAAWC,EAAAA,EAAAA,KAAaC,GAAUA,EAAMC,eAEvCO,EAAUC,IAAe3D,EAAAA,EAAAA,WAAS,GACzC,IAAIC,GAAMC,EAAAA,EAAAA,WAEVC,EAAAA,EAAAA,YAAU,KACRoD,IACA,MAAMnD,EAAWC,IACXqD,GAAYzD,EAAIK,UAAYL,EAAIK,QAAQC,SAASF,EAAMG,SACzDmD,GAAY,EACd,EAIF,OAFAlD,SAASC,iBAAiB,YAAaN,GACvCK,SAASC,iBAAiB,aAAcN,GACjC,KAELK,SAASE,oBAAoB,YAAaP,GAC1CK,SAASE,oBAAoB,aAAcP,EAAQ,CACpD,GACA,CAACsD,IAEJ,MAAMH,EAAW7B,gBACTD,EAAME,EAAUqB,EAASA,SAASQ,UAAU,EAGpD,OACExC,EAAAA,EAAAA,MAAA,OAAK/B,UAAU,aAAYD,SAAA,EACzBZ,EAAAA,EAAAA,KAAA,UACEa,UAAU,0BACVE,KAAK,SACLL,QAASA,IAAM6E,GAAazC,IAAUA,IAAMlC,SAC7C,SAIA0E,IACCtF,EAAAA,EAAAA,KAAA,MAAIa,UAAU,QAAQgB,IAAKA,EAAIjB,SAC5BoE,EAAS1D,KAAI,CAAC2C,EAAMzC,KAEjBxB,EAAAA,EAAAA,KAACqF,EAAe,CACd3D,MAAOuC,EAEP9C,WA9CK,EA+CLmE,SAAUA,EACVC,YAAaA,GAHR/D,SASX,E,cCjDV,MAAMsE,EAAS,CACbC,QAAS,OACTC,eAAgB,gBAChBC,WAAY,UAuEd,EApEeC,KACb,MAAM3C,GAAWoB,EAAAA,EAAAA,MACXwB,GAAWC,EAAAA,EAAAA,OACVC,EAAYC,IAAiB1E,EAAAA,EAAAA,WAAS,IACtC2E,EAAMC,IAAW5E,EAAAA,EAAAA,UAAS6E,aAAaC,QAAQ,SAEhDC,GAAW9B,EAAAA,EAAAA,KAAaC,GAAUA,EAAMC,YAAYH,WAM1D,OACE5E,EAAAA,EAAAA,KAAA,UAAAY,UACEgC,EAAAA,EAAAA,MAAA,OAAK/B,UAAU,WAAUD,SAAA,EACvBgC,EAAAA,EAAAA,MAAA,OAAKxC,MAAO0F,EAAOlF,SAAA,EACjBZ,EAAAA,EAAAA,KAAC+C,EAAAA,GAAO,CAACK,GAAG,IAAIvC,UAAU,OAAMD,UAC9BZ,EAAAA,EAAAA,KAAA,OACE4G,IAAKL,EACLM,MAAO,GACPC,OAAQ,GACR1G,MAAO,CAAE2G,aAAc,YAG3B/G,EAAAA,EAAAA,KAAA,cAUFA,EAAAA,EAAAA,KAAC0E,EAAM,KACP1E,EAAAA,EAAAA,KAAC6F,EAAS,KACV7F,EAAAA,EAAAA,KAAA,OAAKI,MAAO0F,EAAOlF,UACjBZ,EAAAA,EAAAA,KAACgH,EAAAA,EAAK,CAACC,MAAI,EAACC,KAAM,GAAGtG,UACnBgC,EAAAA,EAAAA,MAACuE,EAAAA,EAAK,CAAAvG,SAAA,EACJZ,EAAAA,EAAAA,KAACoH,EAAAA,EAAM,CACLF,KAAM,GACNG,MAAMrH,EAAAA,EAAAA,KAACsH,EAAAA,EAAY,IACnB5G,QAASA,IAAM4F,GAAc,MAE/BtG,EAAAA,EAAAA,KAAA,KACEI,MAAO,CACLC,SAAU,OACVC,MAAO,OACPiH,UAAW,UACX3G,SAED+F,EAASa,gBAKlBxH,EAAAA,EAAAA,KAACyH,EAAAA,EAAM,CACLzE,MAAM,UACN0E,KAAMrB,EACNsB,QAASA,IAAMrB,GAAc,GAAO1F,UAEpCZ,EAAAA,EAAAA,KAAC4H,EAAAA,EAAM,CAACnH,KAAK,SAASC,QAASA,KApDrC6C,GAASsE,EAAAA,EAAAA,GAAW1B,GAoDsC,UAGjD,C","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\";\nimport { Menu } from \"antd\";\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/consts/api\";\nimport { Alert } from \"../../Components/Alert\";\n\nexport const Menus = async (dispatch, userType) => {\n try {\n await axios({\n method: \"GET\",\n url: base_url + \"getCmenus\" + \"&usertype=\" + userType,\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 } catch (err) {\n Alert(err);\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(dispatch, userData.userData.fusertype);\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 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(dispatch, userData.userData.fusertype);\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: \"space-between\",\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 <div>\n {/* <p style={{ fontSize: \"11px\", lineHeight: \"25px\" }}>\n {univdata.funivname + \" [\" + univdata.funivcode + \"]\"}\n </p> */}\n {/* <p style={{ fontSize: \"11px\" }}>\n {univdata.fcollname + \" [\" + univdata.fcollcode + \"]\"}\n </p> */}\n </div>\n </div>\n\n <Navbar />\n <MobileNav />\n <div style={styles}>\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","axios","method","base_url","then","res","data","error_code","arr","menu","el","i","obj","length","push","payload","err","Alert","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","Space","wrap","size","Badge","Avatar","icon","UserOutlined","textAlign","fuser","Drawer","open","onClose","Button","logoutUser"],"sourceRoot":""}
|