{"version":3,"sources":["layout/Container.tsx","pages/Home.tsx","components/Spinner.tsx","components/Button.tsx","Utils/Toast.tsx","components/Copy.tsx","components/Divider.tsx","pages/api.ts","components/Close.tsx","components/Modal.tsx","components/Input.tsx","pages/forms/CreateLicense.tsx","pages/forms/RenewLicenses.tsx","pages/Licenses.tsx","redux/reducer.ts","redux/store.ts","Utils/util.ts","redux/actions.ts","layout/Navbar.tsx","pages/forms/CreateOrganisation.tsx","pages/Organisations.tsx","components/Select.tsx","pages/forms/CreatePO.tsx","pages/POs.tsx","pages/forms/CreateProduct.tsx","pages/Products.tsx","pages/PPs.tsx","pages/GenerateToken.tsx","Main.tsx","pages/Login.tsx","pages/ProtectedRoute.tsx","appConstants.ts","Utils/handleError.ts","App.tsx","reportWebVitals.ts","index.tsx"],"names":["Container","className","children","props","Home","to","Spinner","speed","color","classes","blue","Button","loading","variant","bgMap","default","success","error","warning","textMap","Toast","duration","component","msg","type","toaster","notify","onClose","onClick","Copy","value","e","stopPropagation","navigator","clipboard","writeText","then","catch","Divider","style","height","backgroundColor","mutate","url","data","method","a","axios","Close","Modal","close","title","Input","label","name","htmlFor","id","CreateLicense","useState","publicPrivateId","expiry","email","formData","setFormData","useMutation","onSuccess","createLicense","isLoading","handleChange","produce","draft","target","onSubmit","preventDefault","onChange","RenewLicenses","excludeLicenses","history","useHistory","push","renewLicenses","window","confirm","Licenses","useParams","open","setOpen","open2","setOpen2","setExcludeLicenses","useQuery","refetch","map","temp","handleClickLicense","createdDate","status","licenseKey","Object","keys","initialState","authenticated","localStorage","getItem","token","reducer","state","action","payload","composeEnhancers","compose","store","createStore","queryClient","QueryClient","defaultOptions","queries","queryFn","queryKey","get","refetchOnWindowFocus","retry","_","response","loginFail","removeItem","clear","Navbar","dispatch","useDispatch","CreateOrganisation","createOrUpdateOrganisation","Organisations","update","setUpdate","updateData","setUpdateData","deleteOrganisation","Select","options","dataName","dataValue","placeholder","i","CreatePO","productId","organisationId","organisations","products","linkProductToOrganisation","POs","deletePO","pId","oId","CreateProduct","createOrUpdateProduct","Products","deleteProduct","PPs","organisation","product","publicPrivateKeys","publicKey","GenerateToken","expiryDate","generateToken","isLoading2","deleteToken","guid","Main","exact","path","Login","location","useSelector","user","setUser","pass","setPass","handleLoginAsync","post","x","setItem","loginSuccess","handleLogin","referrer","pathname","password","connect","Component","rest","render","defaults","baseURL","headers","interceptors","request","use","config","getState","authorization","detail","Promise","reject","statusText","errors","obj","err","split","handleError","App","QueryClientProvider","client","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","createBrowserHistory","document","getElementById"],"mappings":"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","file":"static/js/main.014cbfe8.chunk.js","sourcesContent":["const Container = ({ className, children, ...props }: React.HTMLAttributes) => {\n return (\n
\n {children}\n
\n );\n};\n\nexport default Container;\n","import Container from 'layout/Container';\nimport React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst Home = () => {\n return (\n \n
\n Products\n Organisations\n Product - Organisations\n
\n
\n );\n};\n\nexport default Home;\n","import React from 'react';\n\ninterface Props {\n speed?: 1 | 2 | 3;\n color?: string;\n}\n\nconst Spinner = ({ speed = 3, color }: Props) => {\n return (\n
\n
\n \n
\n
\n );\n};\n\nexport default Spinner;\n","import React from 'react';\nimport Spinner from './Spinner';\n\ntype Props = {\n children: React.ReactNode;\n variant?: 'blue';\n loading?: boolean;\n} & React.ButtonHTMLAttributes;\n\nconst classes = {\n blue: 'bg-color2',\n};\n\nconst Button = ({ children, className, loading, variant = 'blue', ...props }: Props) => {\n return (\n \n );\n};\n\nexport default Button;\n","import React from 'react';\nimport toaster from 'toasted-notes';\nimport 'toasted-notes/src/styles.css';\n\nconst bgMap = {\n default: 'bg-white',\n success: 'bg-green-400',\n error: 'bg-red-500',\n warning: 'bg-yellow-400',\n};\n\nconst textMap = {\n default: 'text-black',\n success: 'text-white',\n error: 'text-white',\n warning: 'text-black',\n};\n\nexport const Toast = ({\n duration = 2000,\n component,\n msg = 'Default message',\n type = 'default',\n}: {\n duration?: null | number;\n component?: (onClose: () => void) => JSX.Element;\n msg?: string;\n type?: 'default' | 'success' | 'error' | 'warning';\n notify?: boolean;\n}) => {\n toaster.notify(\n ({ onClose }) =>\n component ? (\n component(onClose)\n ) : (\n
\n {msg}\n \n
\n ),\n {\n duration,\n }\n );\n};\n\nexport default Toast;\n","import React from 'react';\nimport Toast from 'Utils/Toast';\n\ninterface Props {\n value: string;\n}\n\nconst Copy = ({ value }: Props) => {\n return (\n {\n e.stopPropagation();\n navigator.clipboard\n .writeText(value)\n .then(() => Toast({ msg: 'copied', type: 'success' }))\n .catch(() => Toast({ msg: 'copy unsuccessful', type: 'warning' }));\n }}\n />\n );\n};\n\nexport default Copy;\n","const Divider = () => {\n return
;\n};\n\nexport default Divider;\n","import axios from 'axios';\n\nconst mutate = async (url: string, data?: any, method?: 'put' | 'delete') =>\n (\n await axios({\n url,\n method: method || 'post',\n data,\n })\n ).data;\n\nexport default mutate;\n","const Close = ({ onClick }: { onClick: () => void }) => {\n return ;\n};\n\nexport default Close;\n","import React from 'react';\nimport Close from './Close';\nimport Divider from './Divider';\n\ninterface Props {\n close: () => void;\n title?: string;\n children: React.ReactNode;\n}\n\nconst Modal = ({ close, title, children }: Props) => {\n return (\n
\n
{title}
\n \n
{children}
\n \n
\n );\n};\n\nexport default Modal;\n","import React from 'react';\n\ntype Props = {\n // onChange: (e: React.ChangeEvent) => void;\n label: string;\n} & React.InputHTMLAttributes;\n\nconst Input = ({ label, name, ...props }: Props) => {\n return (\n
\n \n \n
\n );\n};\n\nexport default Input;\n","import mutate from 'pages/api';\nimport React, { useState } from 'react';\nimport { useMutation } from 'react-query';\nimport { produce } from 'immer';\nimport Modal from 'components/Modal';\nimport Button from 'components/Button';\nimport Input from 'components/Input';\n\ninterface Props {\n close: () => void;\n id: string;\n}\n\nconst CreateLicense = ({ close, id }: Props) => {\n const [formData, setFormData] = useState({ publicPrivateId: id, expiry: '', name: '', email: '' });\n\n const { mutate: createLicense, isLoading } = useMutation((data: typeof formData) => mutate('generatelicense', data), {\n onSuccess: () => {\n close();\n },\n });\n\n const handleChange = (e: React.ChangeEvent) => {\n setFormData(\n produce((draft) => {\n draft[e.target.name] = e.target.value;\n })\n );\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n createLicense(formData);\n };\n\n return (\n \n
\n \n \n \n
Expiry is overridden by first license in this public key
\n
\n \n
\n
\n
\n );\n};\n\nexport default CreateLicense;\n","import mutate from 'pages/api';\nimport React, { useState } from 'react';\nimport { useMutation } from 'react-query';\nimport { produce } from 'immer';\nimport Modal from 'components/Modal';\nimport Button from 'components/Button';\nimport Input from 'components/Input';\nimport { useHistory } from 'react-router-dom';\n\ninterface Props {\n close: () => void;\n id: string;\n excludeLicenses: number[];\n}\n\nconst RenewLicenses = ({ close, id, excludeLicenses }: Props) => {\n const history = useHistory();\n const [formData, setFormData] = useState({ publicPrivateId: id, expiry: '', name: '', email: '', excludeLicenses });\n\n const { mutate: renewLicenses, isLoading } = useMutation((data: typeof formData) => mutate('renewlicenses', data), {\n onSuccess: () => {\n history.push('/productorganisations');\n },\n });\n\n const handleChange = (e: React.ChangeEvent) => {\n setFormData(\n produce((draft) => {\n draft[e.target.name] = e.target.value;\n })\n );\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (!window.confirm('This will renew licenses with the first license date and exclude selected licenses?')) return;\n renewLicenses(formData);\n };\n\n return (\n \n
\n \n
\n \n
\n
\n
\n );\n};\n\nexport default RenewLicenses;\n","import type { License } from 'types';\nimport Button from 'components/Button';\nimport Copy from 'components/Copy';\nimport Divider from 'components/Divider';\nimport Spinner from 'components/Spinner';\nimport Container from 'layout/Container';\nimport React, { useState } from 'react';\nimport { useQuery } from 'react-query';\nimport { useParams } from 'react-router-dom';\nimport CreateLicense from './forms/CreateLicense';\nimport RenewLicenses from './forms/RenewLicenses';\n\nconst Licenses = () => {\n const { id } = useParams<{ id: string }>();\n\n const [open, setOpen] = useState(false);\n const [open2, setOpen2] = useState(false);\n const [excludeLicenses, setExcludeLicenses] = useState<{ [key: string]: boolean }>({});\n\n const { data, refetch } = useQuery(`getlicenses/${id}`);\n\n const handleClickLicense = (id: number) => {\n const temp = { ...excludeLicenses };\n if (temp[id]) {\n delete temp[id];\n } else {\n temp[id] = true;\n }\n setExcludeLicenses({ ...temp });\n };\n\n return (\n \n
\n Licenses\n \n \n click on licenses to exclude from renewal\n
\n {!data ? (\n \n ) : (\n
\n {data?.map((e) => (\n handleClickLicense(e.id)}\n key={e.id}\n className={`text-sm p-3 rounded mb-3 w-max ml-2 border-solid border-gray-400 cursor-pointer ${\n excludeLicenses[e.id] ? 'border-red-400 border-2' : 'border'\n }`}\n >\n
Created: {e.createdDate}
\n
Name: {e.name}
\n
Email: {e.email}
\n
Status: {e.status}
\n \n
\n \n {e.licenseKey}\n
\n
\n ))}\n \n )}\n {open && (\n {\n refetch();\n setOpen(false);\n }}\n />\n )}\n {open2 && (\n +e)}\n close={() => {\n refetch();\n setOpen2(false);\n }}\n />\n )}\n
\n );\n};\n\nexport default Licenses;\n","type RootType = {\n authenticated: boolean;\n token?: string;\n};\nexport const initialState: any = {\n authenticated: localStorage.getItem('authenticated') === 'true' ? true : false,\n token: localStorage.getItem('token'),\n};\n\nconst reducer = (state: RootType = initialState, action: { type: string; payload?: any }) => {\n switch (action.type) {\n case 'AUTHTRUE':\n return {\n ...state,\n authenticated: true,\n token: action.payload.token,\n };\n case 'AUTHFALSE':\n return {\n ...state,\n authenticated: false,\n token: null,\n };\n default:\n return state;\n }\n};\n\nexport type RootState = ReturnType;\n\nexport default reducer;\n","import { createStore, compose } from 'redux';\n\nimport reducer, { initialState } from './reducer';\n\nimport { composeWithDevTools } from 'redux-devtools-extension';\n\nconst composeEnhancers = process.env.NODE_ENV === 'production' ? compose : composeWithDevTools({ trace: true, traceLimit: 25 });\n\nconst store = createStore(reducer, initialState, composeEnhancers());\n\nexport default store;\n","import axios from 'axios';\nimport Toast from 'Utils/Toast';\nimport store from 'redux/store';\nimport { QueryClient, QueryFunctionContext } from 'react-query';\nimport { url } from 'appConstants';\nimport { handleError } from './handleError';\n\nexport const queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n queryFn: async ({ queryKey }: QueryFunctionContext) => {\n const { data } = await axios.get(`${queryKey[0]}`);\n return data;\n },\n refetchOnWindowFocus: false,\n retry: (_: number, error: any): boolean => (!error.response ? true : false),\n },\n },\n});\n\nexport const setup = () => {\n axios.defaults.baseURL = url;\n axios.defaults.headers.post['Content-Type'] = 'application/json';\n axios.interceptors.request.use(function (config) {\n const token = store.getState().token;\n config.headers.authorization = token ? `Bearer ${token}` : '';\n return config;\n });\n axios.interceptors.response.use(\n (response) => {\n if (response.status === 200 && response.config.method !== 'get') {\n if (response.data.token) return response;\n if (response.data.status === true) {\n Toast({\n msg: response.data.detail,\n type: 'success',\n notify: response.data.detail === 'Success' ? false : true,\n });\n } else if (response.data.status === false) {\n Toast({\n msg: response.data.detail,\n type: 'warning',\n notify: true,\n });\n } else {\n if (response.data.detail) {\n Toast({ msg: response.data.detail, type: 'error', notify: true });\n }\n }\n return response;\n } else {\n return response;\n }\n },\n (error) => {\n return Promise.reject(handleError(error));\n }\n );\n};\n","import type { LoginSuccess } from 'types';\nimport { queryClient } from 'Utils/util';\n\nexport const loginSuccess = ({ token }: LoginSuccess) => {\n localStorage.setItem('token', token);\n localStorage.setItem('authenticated', 'true');\n return {\n type: 'AUTHTRUE',\n payload: {\n token,\n },\n };\n};\n\nexport const loginFail = () => {\n localStorage.removeItem('token');\n localStorage.removeItem('authenticated');\n queryClient.clear();\n return { type: 'AUTHFALSE' };\n};\n\nexport const logout = () => {\n return loginFail();\n};\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { loginFail } from 'redux/actions';\n\ninterface Props {}\n\nconst Navbar = (props: Props) => {\n const dispatch = useDispatch();\n return (\n
\n \n LM\n \n
\n Generate Token\n
dispatch(loginFail())}>\n Logout\n
\n
\n
\n );\n};\n\nexport default Navbar;\n","import type { Organisation } from 'types';\nimport mutate from 'pages/api';\nimport React, { useState } from 'react';\nimport { useMutation } from 'react-query';\nimport { produce } from 'immer';\nimport Modal from 'components/Modal';\nimport Input from 'components/Input';\nimport Button from 'components/Button';\n\ninterface Props {\n close: () => void;\n data?: Organisation;\n}\n\ntype FormData = {\n name?: string;\n id?: number;\n};\n\nconst CreateOrganisation = ({ close, data }: Props) => {\n const [formData, setFormData] = useState({ name: data?.name ?? '' });\n\n const { mutate: createOrUpdateOrganisation, isLoading } = useMutation(\n (data: FormData) => mutate('createorupdateorganisation', data),\n {\n onSuccess: () => {\n close();\n },\n }\n );\n\n const handleChange = (e: React.ChangeEvent) => {\n setFormData(\n produce((draft) => {\n draft[e.target.name] = e.target.value;\n })\n );\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (data) {\n return createOrUpdateOrganisation({ name: formData.name, id: data.id });\n }\n createOrUpdateOrganisation(formData);\n };\n\n return (\n \n
\n \n
\n \n
\n
\n
\n );\n};\n\nexport default CreateOrganisation;\n","import type { Organisation } from 'types';\nimport Button from 'components/Button';\nimport Spinner from 'components/Spinner';\nimport Container from 'layout/Container';\nimport React, { useState } from 'react';\nimport { useMutation, useQuery } from 'react-query';\nimport mutate from './api';\nimport CreateOrganisation from './forms/CreateOrganisation';\n\nconst Organisations = () => {\n const [open, setOpen] = useState(false);\n const [update, setUpdate] = useState(false);\n const [updateData, setUpdateData] = useState();\n\n const { data, refetch, isLoading } = useQuery('getorganisations');\n const { mutate: deleteOrganisation } = useMutation((data: number) => mutate('deleteorganisation/' + data, null, 'delete'), {\n onSuccess: () => {\n refetch();\n },\n });\n\n return (\n \n
\n Organisations\n \n
\n
\n {isLoading ? (\n \n ) : (\n data?.map((e) => (\n
\n
{e.name}
\n {\n setUpdateData(e);\n setUpdate(true);\n }}\n />\n {\n if (!window.confirm('This will be deleted permanently! Continue?')) return;\n deleteOrganisation(e.id);\n }}\n />\n
\n ))\n )}\n
\n {open && (\n {\n refetch();\n setOpen(false);\n }}\n />\n )}\n {update && (\n {\n refetch();\n setUpdate(false);\n }}\n />\n )}\n
\n );\n};\n\nexport default Organisations;\n","import React from 'react';\n\ntype Props = {\n label: string;\n options: { [key: string]: any }[];\n dataName: string;\n dataValue: string;\n} & React.SelectHTMLAttributes;\n\nconst Select = ({ label, name, options = [], dataName, dataValue, ...props }: Props) => {\n return (\n
\n \n \n
\n );\n};\n\nexport default Select;\n","import type { Organisation, Product } from 'types';\nimport mutate from 'pages/api';\nimport React, { useState } from 'react';\nimport { useMutation, useQuery } from 'react-query';\nimport { produce } from 'immer';\nimport Modal from 'components/Modal';\nimport Button from 'components/Button';\nimport Select from 'components/Select';\n\ninterface Props {\n close: () => void;\n}\n\nconst CreatePO = ({ close }: Props) => {\n const [formData, setFormData] = useState({ productId: '', organisationId: '' });\n\n const { data: organisations } = useQuery('getorganisations');\n const { data: products } = useQuery('getproducts');\n\n const { mutate: linkProductToOrganisation, isLoading } = useMutation(\n (data: typeof formData) => mutate('LinkProductToOrganisation', data),\n {\n onSuccess: () => {\n close();\n },\n }\n );\n\n const handleChange = (e: React.ChangeEvent) => {\n setFormData(\n produce((draft) => {\n draft[e.target.name] = e.target.value;\n })\n );\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n linkProductToOrganisation(formData);\n };\n\n return (\n \n
\n \n \n
\n \n
\n \n
\n );\n};\n\nexport default CreatePO;\n","import type { ProductOrganisation } from 'types';\nimport Button from 'components/Button';\nimport Spinner from 'components/Spinner';\nimport Container from 'layout/Container';\nimport React, { useState } from 'react';\nimport { useMutation, useQuery } from 'react-query';\nimport { useHistory } from 'react-router-dom';\nimport mutate from './api';\nimport CreatePO from './forms/CreatePO';\n\nconst POs = () => {\n const history = useHistory();\n const [open, setOpen] = useState(false);\n\n const { data, refetch, isLoading } = useQuery('getproductorganisations');\n const { mutate: deletePO } = useMutation(\n ({ pId, oId }: { pId: number; oId: number }) => mutate('unlinkproductorganisation/' + pId + '/' + oId, null, 'delete'),\n {\n onSuccess: () => {\n refetch();\n },\n }\n );\n\n return (\n \n
\n Organisations' Products\n \n
\n
\n {isLoading ? (\n \n ) : (\n data?.map((e) => (\n
\n history.push(`/productorganisation/${e.productId}/${e.organisationId}`)}\n >\n {e.name}\n
\n {\n if (!window.confirm('This will be deleted permanently! Continue?')) return;\n deletePO({ pId: e.productId, oId: e.organisationId });\n }}\n />\n
\n ))\n )}\n \n {open && (\n {\n refetch();\n setOpen(false);\n }}\n />\n )}\n
\n );\n};\n\nexport default POs;\n","import type { Product } from 'types';\nimport mutate from 'pages/api';\nimport React, { useState } from 'react';\nimport { useMutation } from 'react-query';\nimport { produce } from 'immer';\nimport Modal from 'components/Modal';\nimport Input from 'components/Input';\nimport Button from 'components/Button';\n\ninterface Props {\n close: () => void;\n data?: Product;\n}\n\ntype FormData = {\n name?: string;\n id?: number;\n};\n\nconst CreateProduct = ({ close, data }: Props) => {\n const [formData, setFormData] = useState({ name: data?.name ?? '' });\n\n const { mutate: createOrUpdateProduct, isLoading } = useMutation((data: FormData) => mutate('createorupdateproduct', data), {\n onSuccess: () => {\n close();\n },\n });\n\n const handleChange = (e: React.ChangeEvent) => {\n setFormData(\n produce((draft) => {\n draft[e.target.name] = e.target.value;\n })\n );\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (data) {\n return createOrUpdateProduct({ name: formData.name, id: data.id });\n }\n createOrUpdateProduct(formData);\n };\n\n return (\n \n
\n \n
\n \n
\n
\n
\n );\n};\n\nexport default CreateProduct;\n","import type { Product } from 'types';\nimport Button from 'components/Button';\nimport Spinner from 'components/Spinner';\nimport Container from 'layout/Container';\nimport React, { useState } from 'react';\nimport { useMutation, useQuery } from 'react-query';\nimport mutate from './api';\nimport CreateProduct from './forms/CreateProduct';\n\nconst Products = () => {\n const [open, setOpen] = useState(false);\n const [update, setUpdate] = useState(false);\n const [updateData, setUpdateData] = useState();\n\n const { data, refetch, isLoading } = useQuery('getproducts');\n const { mutate: deleteProduct } = useMutation((data: number) => mutate('deleteproduct/' + data, null, 'delete'), {\n onSuccess: () => {\n refetch();\n },\n });\n\n return (\n \n
\n Products\n \n
\n
\n {isLoading ? (\n \n ) : (\n data?.map((e) => (\n
\n
{e.name}
\n {\n setUpdateData(e);\n setUpdate(true);\n }}\n />\n {\n if (!window.confirm('This will be deleted permanently! Continue?')) return;\n deleteProduct(e.id);\n }}\n />\n
\n ))\n )}\n
\n {open && (\n {\n refetch();\n setOpen(false);\n }}\n />\n )}\n {update && (\n {\n refetch();\n setUpdate(false);\n }}\n />\n )}\n
\n );\n};\n\nexport default Products;\n","import type { ProductOrganisationExtra } from 'types';\nimport Copy from 'components/Copy';\nimport Spinner from 'components/Spinner';\nimport Container from 'layout/Container';\nimport React from 'react';\nimport { useQuery } from 'react-query';\nimport { useHistory, useParams } from 'react-router-dom';\n\nconst PPs = () => {\n const history = useHistory();\n const { pId, oId } = useParams<{ pId: string; oId: string }>();\n const { data } = useQuery(`getproductorganisation/${pId}/${oId}`);\n\n return (\n \n {!data ? (\n \n ) : (\n
\n
Public Keys - ({data.organisation.name + '-' + data.product.name})
\n
\n {data.publicPrivateKeys.map((e, i) => (\n history.push(`/license/${e.id}`)}\n >\n
Created: {e.createdDate}
\n
\n \n Public\n
\n
{e.publicKey}
\n
\n ))}\n
\n \n )}\n
\n );\n};\n\nexport default PPs;\n","import type { Organisation, Product } from 'types';\nimport Container from 'layout/Container';\nimport React, { useState } from 'react';\nimport { useMutation, useQuery } from 'react-query';\nimport mutate from './api';\nimport Modal from 'components/Modal';\nimport Button from 'components/Button';\nimport Input from 'components/Input';\nimport Select from 'components/Select';\nimport { produce } from 'immer';\nimport Copy from 'components/Copy';\nimport Spinner from 'components/Spinner';\n\ntype TokenForLicenseChange = {\n createdDate: string; //Date\n expiryDate: string; //Date\n guid: string;\n id: number;\n organisationId: number;\n productId: number;\n};\n\nconst GenerateToken = () => {\n const [open, setOpen] = useState(false);\n const [formData, setFormData] = useState({ expiryDate: '', productId: '', organisationId: '' });\n const { data, refetch, isLoading } = useQuery(`gettokensforlicensechange`);\n const { data: organisations } = useQuery('getorganisations');\n const { data: products } = useQuery('getproducts');\n\n const { mutate: generateToken, isLoading: isLoading2 } = useMutation(\n (data: typeof formData) => mutate('generatetokenforlicensechange', data),\n {\n onSuccess: () => {\n refetch();\n setOpen(false);\n },\n }\n );\n const { mutate: deleteToken } = useMutation((data: string) => mutate('deletetokenforlicensechange/' + data, null, 'delete'), {\n onSuccess: () => {\n refetch();\n },\n });\n\n const handleChange = (e: React.ChangeEvent) => {\n // React.ChangeEvent\n setFormData(\n produce((draft) => {\n draft[e.target.name] = e.target.value;\n })\n );\n };\n\n const handleSubmit = (e: React.SyntheticEvent) => {\n e.preventDefault();\n generateToken(formData);\n };\n\n return (\n \n
\n \n
\n
\n {isLoading ? (\n \n ) : (\n data?.map((e) => (\n
\n
Created: {e.createdDate}
\n
Expiry: {e.expiryDate}
\n
\n Token: {e.guid}\n
\n {\n if (!window.confirm('This willdelete the token! Continue?')) return;\n deleteToken(e.guid);\n }}\n className=\"fa fa-trash absolute top-0.5 right-0.5 cursor-pointer text-red-600\"\n >
\n
\n ))\n )}\n
\n {open && (\n setOpen(false)}>\n
\n \n \n \n
\n \n
\n \n
\n )}\n \n );\n};\n\nexport default GenerateToken;\n","import Home from 'pages/Home';\nimport Licenses from 'pages/Licenses';\nimport Navbar from 'layout/Navbar';\nimport Organisations from 'pages/Organisations';\nimport POs from 'pages/POs';\nimport Products from 'pages/Products';\nimport React from 'react';\nimport { Switch, Route } from 'react-router-dom';\nimport PPs from 'pages/PPs';\nimport GenerateToken from 'pages/GenerateToken';\n\nconst Main = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default Main;\n","import type { RootState } from 'redux/reducer';\nimport type { Location } from 'history';\nimport React, { useState } from 'react';\nimport { Redirect } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Toast from 'Utils/Toast';\nimport { loginSuccess } from 'redux/actions';\nimport { useMutation } from 'react-query';\nimport axios from 'axios';\nimport Input from 'components/Input';\nimport Button from 'components/Button';\nimport { LoginSuccess } from 'types';\n\ntype LoginType = {\n email: string;\n password: string;\n};\n\nconst Login = ({ location }: { location: Location }) => {\n const dispatch = useDispatch();\n const authenticated = useSelector((state: RootState) => state.authenticated);\n\n const [user, setUser] = useState('');\n const [pass, setPass] = useState('');\n\n const handleLoginAsync = async (data: LoginType) => {\n const x = await axios.post('login', data);\n return x?.data;\n };\n\n const { mutate: handleLogin, isLoading } = useMutation(handleLoginAsync, {\n onSuccess: (data: LoginSuccess) => {\n dispatch(loginSuccess(data));\n },\n });\n\n const handleSubmit = (e: React.SyntheticEvent) => {\n e.preventDefault();\n if (!user) return Toast({ msg: 'Email required' });\n if (!pass) return Toast({ msg: 'Password required' });\n handleLogin({ email: user, password: pass });\n };\n\n const handleChange = (e: React.ChangeEvent, type: 'user' | 'pass') => {\n if (type === 'user') setUser(e.target.value);\n if (type === 'pass') setPass(e.target.value);\n };\n\n if (authenticated) return ;\n\n return (\n
\n
\n
\n
Login
\n ) => handleChange(e, 'user')}\n type=\"text\"\n label=\"Username\"\n placeholder=\"Username\"\n />\n ) => handleChange(e, 'pass')}\n type=\"password\"\n label=\"Password\"\n placeholder=\"Password\"\n />\n
\n \n
\n \n
\n
\n );\n};\n\nexport default Login;\n","import type { RootState } from 'redux/reducer';\nimport React from 'react';\nimport { Route, Redirect, RouteProps } from 'react-router-dom';\nimport { connect } from 'react-redux';\n\nconst ProtectedRoute = ({\n component: Component,\n authenticated,\n ...rest\n}: RouteProps & {\n component: () => JSX.Element;\n authenticated: boolean;\n name?: string;\n}) => {\n return (\n {\n if (authenticated) {\n return ;\n } else {\n return (\n \n );\n }\n }}\n />\n );\n};\n\nconst mapState = (state: RootState) => {\n return { authenticated: state.authenticated };\n};\n\nexport default connect(mapState)(ProtectedRoute);\n","// export const url = process.env.NODE_ENV === 'development' ? 'https://localhost:5001/api/v1' : process.env.REACT_APP_URL;\nexport const url = process.env.NODE_ENV === 'development' ? 'https://localhost:5001/api/v1' : '/api/v1';\n","import Toast from 'Utils/Toast';\nimport store from 'redux/store';\nimport { loginFail } from 'redux/actions';\n\nexport const handleError = (error: E | any): E => {\n if (!error.response) {\n //NOTE:this will also happen if server request fails\n // error.toJSON()\n Toast({\n msg: 'Connection timeout. Please Refresh',\n type: 'error',\n notify: true,\n });\n return error;\n }\n\n if (error.response.status === 403) {\n Toast({\n msg: error.response.data,\n type: 'error',\n notify: true,\n });\n return error;\n }\n\n if (error.response.status === 401) {\n store.dispatch(loginFail());\n return error;\n }\n\n if (error.response.status > 400 && error.response.status <= 500) {\n Toast({\n msg: error.response.statusText,\n type: 'error',\n });\n return error;\n }\n\n if (typeof error.response.data === 'string') {\n Toast({\n msg: error.response.data,\n type: 'error',\n notify: true,\n });\n return error;\n }\n\n if (error.response.data.errors) {\n try {\n const obj = Object.keys(error.response.data.errors)[0];\n const err = error.response.data.errors[obj][0];\n if (err) {\n Toast({\n msg: (obj.split('.')[1] ?? obj) + '=>' + err.split('. Path')[0],\n type: 'error',\n notify: true,\n });\n }\n return error;\n } catch (error) {\n Toast({\n msg: 'Could not get error message',\n type: 'error',\n notify: true,\n });\n return error;\n }\n }\n return error;\n};\n","import Main from 'Main';\nimport Login from 'pages/Login';\nimport ProtectedRoute from 'pages/ProtectedRoute';\nimport { QueryClientProvider } from 'react-query';\nimport { Switch, Route } from 'react-router-dom';\nimport { queryClient, setup } from 'Utils/util';\n\nsetup();\n\nfunction App() {\n return (\n \n
\n \n \n \n \n
\n
\n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport { Router } from 'react-router-dom';\nimport { Provider } from 'react-redux';\nimport { createBrowserHistory } from 'history';\nimport store from './redux/store';\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}