{"version":3,"file":"suggestion-STEjPiDy.js","sources":["../../../app/javascript/components/types/Suggestion.jsx","../../../app/javascript/entrypoints/suggestion.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport cn from \"./Feedback.module.css\";\n\nfunction Suggestion() {\n const [hasSubmitted, setSubmitted] = useState(false);\n const [isLoading, setLoading] = useState(false);\n const [comment, setComment] = useState(null);\n const [url, setURL] = useState(null);\n const kind = window.CSSMasterClass.suggestionKind;\n\n const INFO = {\n screencast: {\n placeholder: \"Write about what you'd like me to teach you\",\n more: \"You can also link to a website for more information\",\n },\n project: {\n placeholder: \"Write about what kind of project you'd like me to build\",\n more: \"You can also link to a website you'd like me to reproduce\",\n },\n };\n\n const handleCommentChange = (event) => {\n setComment(event.target.value);\n };\n\n const handleURLChange = (event) => {\n setURL(event.target.value);\n };\n\n const handleSubmit = async () => {\n if (hasSubmitted) {\n return;\n }\n\n setLoading(true);\n const csrfToken = document.querySelector(\"meta[name='csrf-token']\");\n\n if (!csrfToken) {\n throw new Error(\"No token available.\");\n }\n\n const options = {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken.content,\n },\n credentials: \"include\", // Include cookies in the request,\n body: JSON.stringify({\n kind,\n comment,\n url,\n }),\n };\n\n try {\n const response = await fetch(`/api/suggestion`, options);\n\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n setSubmitted(true);\n } catch (error) {\n console.error(\"Error fetching data: \" + error.message);\n } finally {\n setLoading(false);\n }\n };\n\n const componentCN = classNames({\n [cn.component]: true,\n [cn.suggestion]: true,\n [cn[\"submitted\"]]: hasSubmitted,\n });\n\n return (\n
\n
\n

\n What {kind} would you like to suggest?\n

\n\n \n\n {INFO[kind].more}\n\n \n\n
\n \n Submit Suggestion\n \n
\n
\n\n
Thank you for your suggestion!
\n
\n );\n}\n\nexport default Suggestion;\n","import Suggestion from \"@/components/types/Suggestion\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom/client\";\n\nReactDOM.createRoot(document.getElementById(\"suggestion-app\")).render(\n \n \n ,\n);\n"],"names":["Suggestion","hasSubmitted","setSubmitted","useState","isLoading","setLoading","comment","setComment","url","setURL","kind","INFO","handleCommentChange","event","handleURLChange","handleSubmit","csrfToken","options","error","componentCN","classNames","cn","jsxs","jsx","ReactDOM","React"],"mappings":"qFAKA,SAASA,GAAa,CACpB,KAAM,CAACC,EAAcC,CAAY,EAAIC,WAAS,EAAK,EAC7C,CAACC,EAAWC,CAAU,EAAIF,WAAS,EAAK,EACxC,CAACG,EAASC,CAAU,EAAIJ,WAAS,IAAI,EACrC,CAACK,EAAKC,CAAM,EAAIN,WAAS,IAAI,EAC7BO,EAAO,OAAO,eAAe,eAE7BC,EAAO,CACX,WAAY,CACV,YAAa,8CACb,KAAM,qDACR,EACA,QAAS,CACP,YAAa,0DACb,KAAM,2DACR,CAAA,EAGIC,EAAuBC,GAAU,CAC1BN,EAAAM,EAAM,OAAO,KAAK,CAAA,EAGzBC,EAAmBD,GAAU,CAC1BJ,EAAAI,EAAM,OAAO,KAAK,CAAA,EAGrBE,EAAe,SAAY,CAC/B,GAAId,EACF,OAGFI,EAAW,EAAI,EACT,MAAAW,EAAY,SAAS,cAAc,yBAAyB,EAElE,GAAI,CAACA,EACG,MAAA,IAAI,MAAM,qBAAqB,EAGvC,MAAMC,EAAU,CACd,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,eAAgBD,EAAU,OAC5B,EACA,YAAa,UACb,KAAM,KAAK,UAAU,CACnB,KAAAN,EACA,QAAAJ,EACA,IAAAE,CAAA,CACD,CAAA,EAGC,GAAA,CAGE,GAAA,EAFa,MAAM,MAAM,kBAAmBS,CAAO,GAEzC,GACN,MAAA,IAAI,MAAM,6BAA6B,EAG/Cf,EAAa,EAAI,QACVgB,EAAO,CACN,QAAA,MAAM,wBAA0BA,EAAM,OAAO,CAAA,QACrD,CACAb,EAAW,EAAK,CAClB,CAAA,EAGIc,EAAcC,EAAW,CAC7B,CAACC,EAAG,SAAS,EAAG,GAChB,CAACA,EAAG,UAAU,EAAG,GACjB,CAACA,EAAG,SAAY,EAAGpB,CAAA,CACpB,EAGC,OAAAqB,EAAA,KAAC,MAAI,CAAA,UAAWH,EACd,SAAA,CAACG,EAAA,KAAA,MAAA,CAAI,UAAWD,EAAG,KACjB,SAAA,CAAAC,OAAC,IAAE,CAAA,SAAA,CAAA,QACIC,EAAAA,IAAC,QAAM,SAAKb,CAAA,CAAA,EAAO,6BAAA,EAC1B,EAEAa,EAAA,IAAC,WAAA,CACC,UAAU,eACV,MAAOjB,EACP,SAAQ,GACR,SAAUM,EACV,YAAaD,EAAKD,CAAI,EAAE,WAAA,CAC1B,EAECa,EAAA,IAAA,QAAA,CAAO,SAAKZ,EAAAD,CAAI,EAAE,KAAK,EAExBa,EAAA,IAAC,QAAA,CACC,KAAK,MACL,MAAOf,EACP,SAAUM,EACV,UAAU,eACV,YAAY,qBAAA,CACd,EAECS,EAAA,IAAA,MAAA,CAAI,UAAWF,EAAG,OACjB,SAAAE,EAAA,IAAC,SAAA,CACC,UAAU,oBACV,QAASR,EACT,SAAUX,GAAa,CAACE,EAExB,SAACiB,EAAA,IAAA,OAAA,CAAK,UAAU,eAAe,SAAiB,oBAAA,CAAA,CAAA,EAEpD,CAAA,EACF,EAECA,EAAA,IAAA,MAAA,CAAI,UAAWF,EAAG,OAAQ,SAA8B,iCAAA,CAC3D,CAAA,CAAA,CAEJ,CCjHAG,EAAS,WAAW,SAAS,eAAe,gBAAgB,CAAC,EAAE,aAC5DC,EAAM,WAAN,CACC,SAAAF,EAAAA,IAACvB,GAAW,CAAA,EACd,CACF"}