{"version":3,"sources":["crud/User.jsx","crud/Logger.jsx","tools/utils.js","crud/UsersCRUD.jsx","App.js","reportWebVitals.js","index.js"],"names":["DEFAULT_USER","id","name","email","username","password","User","React","_ref","user","onUpdate","onDelete","localUser","setUser","wasEdited","setWasEdited","onChange","_ref2","target","value","prev","[object Object]","updateUser","deleteUser","Tr","key","className","Td","type","disabled","onClick","Logger","memo","lines","createElement","map","index","line","isError","AXIOS_CONFIG","headers","Content-Type","createRequest","action","axios","post","window","__API_URL__","getAPIParams","task","then","data","makeAxiosRequest","create","update","delete","readall","Date","prototype","timeNow","this","getHours","getMinutes","getSeconds","CrudTable","includeHeader","children","Table","Thead","Th","Tbody","UsersCRUD","users","setUsers","useState","addLogLine","useLines","setLines","useCallback","arguments","length","undefined","concat","slice","useEffect","async","u","e","filter","renderedUsers","useMemo","App","reportWebVitals","onPerfEntry","Function","__webpack_require__","bind","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","createRoot","document","getElementById","render"],"mappings":"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","file":"static/js/main.dc560686.chunk.js","sourcesContent":["import * as React from \"react\";\nimport { Tr, Td } from 'react-super-responsive-table';\nimport 'react-super-responsive-table/dist/SuperResponsiveTableStyle.css';\n\nexport const DEFAULT_USER = {\n id: \"\",\n name: \"\",\n email: \"\",\n username: \"\",\n password: \"\",\n};\n\nexport const User = React.memo(({ user, onUpdate, onDelete }) => {\n const [localUser, setUser] = React.useState({ ...user });\n const [wasEdited, setWasEdited] = React.useState(false);\n\n React.useEffect(() => {\n setUser({ ...user });\n }, [user]);\n\n const onChange = React.useCallback(({ target: { value, name } }) => {\n setWasEdited(true);\n setUser((prev) => ({ ...prev, [name]: value }));\n }, []);\n\n const updateUser = React.useCallback(() => {\n onUpdate(localUser);\n setWasEdited(false);\n if (!user.id) {\n setUser(DEFAULT_USER);\n }\n }, [onUpdate, localUser, user.id]);\n\n const deleteUser = React.useCallback(() => {\n onDelete(localUser);\n }, [localUser, onDelete]);\n\n return (\n \n <Tr\n key={user.id || \"createUser\"}\n className={wasEdited && user.id ? \"edited\" : \"\"}\n >\n {user.id ? <Td>{localUser.id}</Td> : <Td>New user</Td>}\n <Td>\n <input\n type=\"text\"\n name=\"name\"\n value={localUser.name}\n onChange={onChange}\n />\n </Td>\n <Td>\n <input\n type=\"text\"\n name=\"email\"\n value={localUser.email}\n onChange={onChange}\n />\n </Td>\n <Td>\n <input\n type=\"text\"\n name=\"username\"\n value={localUser.username}\n onChange={onChange}\n />\n </Td>\n <Td>\n <input\n type=\"password\"\n name=\"password\"\n value={localUser.password}\n onChange={onChange}\n />\n </Td>\n {user.id && (\n <Td>\n <button disabled={!wasEdited ? \"disabled\" : \"\"} onClick={updateUser}>\n Update\n </button>\n <button onClick={deleteUser}>Delete</button>\n </Td>\n )}\n {!user.id && (\n <Td>\n <button disabled={!wasEdited ? \"disabled\" : \"\"} onClick={updateUser}>\n Create\n </button>\n </Td>\n )}\n </Tr>\n \n );\n});\n","import React from \"react\";\n\nconst LOGGER_LINES_LENGTH = 10;\n\nexport const useLines = () => {\n const [lines, setLines] = React.useState([]);\n const addLogLine = React.useCallback(\n (line, isError = false) =>\n setLines((lines) =>\n [...lines, { line: `${new Date().timeNow()} ${line}`, isError }].slice(\n -LOGGER_LINES_LENGTH\n )\n ),\n []\n );\n return { lines, addLogLine };\n};\n\nexport const Logger = React.memo(({ lines }) => {\n return (\n <ul>\n {lines.map(({ line, isError }, index) => (\n <li key={index} className={isError ? \"error\" : \"\"}>\n <code>{line}</code>\n </li>\n ))}\n </ul>\n );\n});\n","/*\n * Copyright (c) 2024 BitsHost\n * All rights reserved.\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\nimport axios from 'axios';\n//import { axios } from \"./axios-mock\";\n\nexport const getAPIParams = (user, action) => {\n switch (action) {\n case \"create\":\n return {\n task: \"create\",\n name: user[\"name\"],\n email: user[\"email\"],\n username: user[\"username\"],\n password: user[\"password\"],\n };\n case \"update\":\n return {\n task: \"update\",\n id: user[\"id\"],\n name: user[\"name\"],\n email: user[\"email\"],\n username: user[\"username\"],\n password: user[\"password\"],\n };\n case \"delete\":\n return {\n task: \"delete\",\n id: user[\"id\"],\n };\n case \"readall\":\n return {\n task: \"readall\",\n };\n default:\n return {\n task: \"readall\",\n };\n }\n};\n\nexport const AXIOS_CONFIG = {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n};\n\nconst createRequest = (user, action) =>\n axios\n .post(window.__API_URL__, getAPIParams(user, action), AXIOS_CONFIG)\n .then(({ data }) => data);\n\nexport const makeAxiosRequest = (user) => ({\n create: () => createRequest(user, \"create\"),\n update: () => createRequest(user, \"update\"),\n delete: () => createRequest(user, \"delete\"),\n readall: () => createRequest(user, \"readall\"),\n});\n\n\nDate.prototype.timeNow = function () {\n return (\n (this.getHours() < 10 ? \"0\" : \"\") +\n this.getHours() +\n \":\" +\n (this.getMinutes() < 10 ? \"0\" : \"\") +\n this.getMinutes() +\n \":\" +\n (this.getSeconds() < 10 ? \"0\" : \"\") +\n this.getSeconds()\n );\n \n};\n ","import React, { useEffect } from \"react\";\r\nimport { User, DEFAULT_USER } from \"./User\";\r\nimport { Logger, useLines } from \"./Logger\";\r\nimport { makeAxiosRequest } from \"../tools/utils\";\r\n//import Table from 'react-bootstrap/Table';\r\n//import { Table } from 'react-bootstrap';\r\nimport { Table, Thead, Tbody, Tr, Th } from 'react-super-responsive-table';\r\nimport 'react-super-responsive-table/dist/SuperResponsiveTableStyle.css';\r\n\r\nconst UsersCRUD = () => {\r\n const [users, setUsers] = React.useState([]);\r\n const { lines, addLogLine } = useLines();\r\n\r\n useEffect(() => {\r\n makeAxiosRequest({})\r\n .readall()\r\n .then((users) => {\r\n setUsers(users);\r\n addLogLine(`Read ${users.length} users`);\r\n });\r\n }, [addLogLine]);\r\n\r\n const onUpdate = React.useCallback(\r\n async (user) => {\r\n if (user.id) {\r\n try {\r\n user = await makeAxiosRequest(user).update();\r\n setUsers((users) => users.map((u) => (u.id === user.id ? user : u)));\r\n addLogLine(`Updated user ${user.id}`);\r\n } catch (e) {\r\n setUsers((users) =>\r\n users.map((u) => (u.id === user.id ? { ...u } : u))\r\n );\r\n addLogLine(`Error updating user ${user.id}`, true);\r\n }\r\n } else {\r\n user = await makeAxiosRequest(user).create();\r\n setUsers((users) => [...users, user]);\r\n addLogLine(`Created user ${user.id}`);\r\n }\r\n },\r\n [addLogLine]\r\n );\r\n\r\n const onDelete = React.useCallback(\r\n async (user) => {\r\n user = await makeAxiosRequest(user).delete();\r\n setUsers((users) => users.filter((u) => u.id !== user.id));\r\n addLogLine(`Deleted user ${user.id}`);\r\n },\r\n [addLogLine]\r\n );\r\n\r\n const renderedUsers = React.useMemo(\r\n () =>\r\n users.map((user) => (\r\n <User\r\n user={user}\r\n key={user.id}\r\n onUpdate={onUpdate}\r\n onDelete={onDelete}\r\n />\r\n )),\r\n [users, onUpdate, onDelete]\r\n );\r\n\r\n return (\r\n <div className=\"container\">\r\n <div className=\"crud\">\r\n <CrudTable>\r\n <User user={DEFAULT_USER} onUpdate={onUpdate}></User>\r\n </CrudTable>\r\n <CrudTable includeHeader={true}>{renderedUsers}</CrudTable>\r\n <div className=\"logger\">\r\n <Logger lines={lines}></Logger>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n );\r\n};\r\n\r\nconst CrudTable = ({ includeHeader, children }) => (\r\n\r\n <div>\r\n <Table className=\"user-table\">\r\n\r\n {includeHeader && (\r\n <Thead>\r\n <Tr>\r\n <Th>ID</Th>\r\n <Th>Name</Th>\r\n <Th>Email</Th>\r\n <Th>Username</Th>\r\n <Th>Password</Th>\r\n <Th>Actions</Th>\r\n </Tr>\r\n </Thead>\r\n )}\r\n <Tbody>{children}</Tbody>\r\n </Table>\r\n </div>\r\n\r\n);\r\n\r\nexport default UsersCRUD;\r\n","/*\n * Copyright (c) 2024\n * All rights reserved.\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\nimport React from 'react';\n//import Instructions from './Instructions.js';\n//import Button from './Button.js';\n//import Gallery from './Gallery';\n//import Form from './Form.js';\n//import MyForm from './Forma.js';\n//import CRUDComponent from './Crud.js';\n//import UserCrudComponent from './Crudn.js';\nimport UsersCRUD from \"./crud/UsersCRUD\";\nimport './App.css';\n\nwindow.__API_URL__ = \"http://localhost/upMVC-DEV/apiUsers\";\n\n\nfunction App() {\n // const greeting = \"greeting\";\n const displayAction = false;\n return (\n <div >\n {displayAction && <p>I am writing JSX</p>}\n <div> <UsersCRUD /></div>\n </div>\n )\n}\n\nexport default App;","const reportWebVitals = onPerfEntry => {\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","/*\n * Copyright (c) 2024 \n * All rights reserved.\n\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\n//import './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n //<React.StrictMode>\n <App />\n // </React.StrictMode>\n);\n\n\nreportWebVitals();\n"],"sourceRoot":""}
|