{"ast":null,"code":"var _jsxFileName = \"/Users/shoofle/Projects/the-forest/src/PageView.jsx\",\n  _s = $RefreshSig$();\nimport logo from './logo.svg';\nimport { App } from './App.js';\nimport './App.css';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useParams } from 'react-router-dom';\nimport { useState } from 'react';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst url = \"http://127.0.0.1:8000\";\nfunction setCurrentPage(row) {\n  console.log(\"\" + row[0] + \" \" + row[1] + \" \" + row[2]);\n}\nfunction PageView() {\n  _s();\n  const queryClient = useQueryClient();\n  const {\n    pagenumber\n  } = useParams();\n  const [text_of_page, setBodyText] = useState(\"Not loaded yet\");\n  const {\n    isPending,\n    error,\n    data\n  } = useQuery({\n    // fetch the currrent values\n    queryKey: ['page', pagenumber],\n    queryFn: () => fetch(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json'\n      },\n      body: JSON.stringify({\n        statements: [{\n          q: 'select id, title, description from pages where id=?',\n          params: [pagenumber]\n        }]\n      })\n    }).then(res => res.json()).then(data => data[0].results.rows[0]).then(row => {\n      setBodyText(row[2]);\n      return row;\n    })\n  });\n  const mutation = useMutation({\n    // for changing the value when we're done with it\n    mutationFn: ({\n      id,\n      title,\n      text\n    }) => {\n      console.log(\"trying to mutate with values \" + id + \" \" + title + \" \" + text);\n      fetch(url, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify({\n          statements: [{\n            q: 'replace into pages (id, title, description) values (?, ?, ?)',\n            params: [id, title, text]\n          }]\n        })\n      }).then(res => console.log(\"tried to insert!\", res.json()));\n      console.log(\"made the request\");\n    },\n    onSettled: async () => {\n      // Invalidate and refetch\n      await queryClient.invalidateQueries({\n        queryKey: ['page', pagenumber]\n      });\n    }\n  });\n  function handleSubmit(e) {\n    e.preventDefault();\n    const formData = new FormData(e.target);\n    mutation.mutate({\n      id: pagenumber,\n      title: page_title,\n      text: formData.get(\"page_text\")\n    });\n  }\n  if (isPending) return \"Loading...\";\n  if (error) return \"Uh oh!\";\n  const [the_id, page_title, page_text] = data;\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    className: \"App\",\n    children: /*#__PURE__*/_jsxDEV(\"form\", {\n      onSubmit: handleSubmit,\n      children: /*#__PURE__*/_jsxDEV(\"header\", {\n        className: \"App-header\",\n        children: [/*#__PURE__*/_jsxDEV(\"img\", {\n          src: logo,\n          className: \"App-logo\",\n          alt: \"logo\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 80,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"Page-title\",\n          children: /*#__PURE__*/_jsxDEV(\"h3\", {\n            children: [the_id, \". \", page_title]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 82,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 81,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          className: \"Page-contents\",\n          children: /*#__PURE__*/_jsxDEV(\"input\", {\n            name: \"page_text\",\n            type: \"text\",\n            onChange: e => setBodyText(e.target.value),\n            value: text_of_page\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 85,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 84,\n          columnNumber: 11\n        }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n          type: \"submit\",\n          disabled: !mutation.isPending,\n          value: mutation.isPending ? \"Updating...\" : \"Update\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 87,\n          columnNumber: 11\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 79,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 78,\n      columnNumber: 7\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 77,\n    columnNumber: 5\n  }, this);\n}\n_s(PageView, \"KupU9g1XDxE/1/oBXTWGPEyWlPY=\", false, function () {\n  return [useQueryClient, useParams, useQuery, useMutation];\n});\n_c = PageView;\nexport default PageView;\nvar _c;\n$RefreshReg$(_c, \"PageView\");","map":{"version":3,"names":["logo","App","useQuery","useMutation","useQueryClient","useParams","useState","jsxDEV","_jsxDEV","url","setCurrentPage","row","console","log","PageView","_s","queryClient","pagenumber","text_of_page","setBodyText","isPending","error","data","queryKey","queryFn","fetch","method","headers","body","JSON","stringify","statements","q","params","then","res","json","results","rows","mutation","mutationFn","id","title","text","onSettled","invalidateQueries","handleSubmit","e","preventDefault","formData","FormData","target","mutate","page_title","get","the_id","page_text","className","children","onSubmit","src","alt","fileName","_jsxFileName","lineNumber","columnNumber","name","type","onChange","value","disabled","_c","$RefreshReg$"],"sources":["/Users/shoofle/Projects/the-forest/src/PageView.jsx"],"sourcesContent":["import logo from './logo.svg';\nimport { App } from './App.js';\nimport './App.css';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useParams } from 'react-router-dom';\nimport { useState } from 'react';\n\nconst url = \"http://127.0.0.1:8000\"\n\nfunction setCurrentPage(row) {\n  console.log(\"\" + row[0] + \" \" + row[1] + \" \" + row[2]);\n}\n\nfunction PageView() {\n  const queryClient = useQueryClient();\n  const { pagenumber } = useParams();\n  const [ text_of_page, setBodyText ] = useState(\"Not loaded yet\");\n\n  const { isPending, error, data } = useQuery({ // fetch the currrent values\n    queryKey: ['page', pagenumber],\n    queryFn: () =>\n      fetch(url, {\n        method: 'POST',\n        headers: {'Content-Type': 'application/json'},\n        body: JSON.stringify({\n          statements: [{\n            q: 'select id, title, description from pages where id=?',\n            params: [pagenumber]\n          }]\n        })\n      }).then((res) => res.json())\n        .then((data) => data[0].results.rows[0])\n        .then((row) => {\n          setBodyText(row[2]);\n          return row;\n        })\n  })\n\n  const mutation = useMutation({ // for changing the value when we're done with it\n    mutationFn: ({id, title, text}) => {\n      console.log(\"trying to mutate with values \" + id + \" \" + title + \" \" + text);\n      fetch(url, {\n        method: 'POST',\n        headers: {'Content-Type': 'application/json'},\n        body: JSON.stringify({\n          statements: [{\n            q: 'replace into pages (id, title, description) values (?, ?, ?)',\n            params: [id, title, text],\n          }]\n        })\n      }).then((res) => console.log(\"tried to insert!\", res.json()));\n      console.log(\"made the request\");\n    },\n    onSettled: async () => {\n      // Invalidate and refetch\n      await queryClient.invalidateQueries({ queryKey: ['page', pagenumber] })\n    },\n  });\n\n  function handleSubmit(e) {\n    e.preventDefault()\n    const formData = new FormData(e.target);\n    mutation.mutate({\n      id: pagenumber, \n      title: page_title, \n      text: formData.get(\"page_text\"),\n    });\n  }\n\n  if (isPending) return \"Loading...\";\n\n  if (error) return \"Uh oh!\";\n\n  const [the_id, page_title, page_text] = data;\n\n  return (\n    <div className=\"App\">\n      <form onSubmit={handleSubmit}>\n        <header className=\"App-header\">\n          <img src={logo} className=\"App-logo\" alt=\"logo\" />\n          <div className=\"Page-title\">\n            <h3>{the_id}. {page_title}</h3>\n          </div>\n          <div className=\"Page-contents\">\n            <input name=\"page_text\" type=\"text\" onChange={(e) => setBodyText(e.target.value)} value={text_of_page} />\n          </div>\n          <button \n            type=\"submit\" \n            disabled={!mutation.isPending} \n            value={mutation.isPending ? \"Updating...\" : \"Update\"}/>\n        </header>\n      </form>\n    </div>\n  );\n}\n\nexport default PageView;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}