{"version":3,"file":"Questionnaire-B-2zhHuc.js","sources":["../../../node_modules/@mui/material/CardContent/cardContentClasses.js","../../../node_modules/@mui/material/CardContent/CardContent.js","../../../node_modules/@mui/icons-material/ArrowForward.js","../../../app/javascript/entrypoints/Questionnaire/Questionnaire.jsx"],"sourcesContent":["import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCardContentUtilityClass(slot) {\n return generateUtilityClass('MuiCardContent', slot);\n}\nconst cardContentClasses = generateUtilityClasses('MuiCardContent', ['root']);\nexport default cardContentClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getCardContentUtilityClass } from './cardContentClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardContentUtilityClass, classes);\n};\nconst CardContentRoot = styled('div', {\n name: 'MuiCardContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(() => {\n return {\n padding: 16,\n '&:last-child': {\n paddingBottom: 24\n }\n };\n});\nconst CardContent = /*#__PURE__*/React.forwardRef(function CardContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCardContent'\n });\n const {\n className,\n component = 'div'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardContentRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardContent;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');","import React, { useState, useEffect } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport {\n Button,\n Card,\n CardContent,\n Typography,\n Box,\n CircularProgress,\n} from \"@mui/material\";\nimport axios from \"axios\";\nimport { colors } from \"../lib/theme\";\nimport PreviewCard from \"./PreviewCard\";\nimport { Link } from \"react-router-dom\";\nimport ShowGeneratedQuestions from \"./ShowGeneratedQuestions\";\nimport QuestionnaireForm from \"./QuestionnaireForm\";\nimport { Helmet } from \"react-helmet\";\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\n\nconst Questionnaire = ({ config }) => {\n const urlLocation = useLocation();\n const navigate = useNavigate();\n window.scrollTo(0, 0);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(false);\n const [generatedQuestions, setGeneratedQuestions] = useState([]);\n const [cardTitle, setCardTitle] = useState(\"\");\n const [cardMessage, setCardMessage] = useState(\"\");\n const [senderClosing, setSenderClosing] = useState(\"\");\n const [additionalDetails, setAdditionalDetails] = useState(\"\");\n const [uploadedImage, setUploadedImage] = useState(null);\n const [openaiApiKey, setOpenaiApiKey] = useState(\"\");\n const [relationship, setRelationship] = useState(\"\");\n const [occasion, setOccasion] = useState(\"\");\n const [location, setLocation] = useState(\"US\");\n const [favoriteMemory, setFavoriteMemory] = useState(\"\");\n const [hobbiesInterests, setHobbiesInterests] = useState(\"\");\n const [showQuestions, setShowQuestions] = useState(false);\n const [newQuestion, setNewQuestion] = useState(\"\");\n const [showPreview, setShowPreview] = useState(false);\n const [shouldUpdateQuestions, setShouldUpdateQuestions] = useState(false);\n\n useEffect(() => {\n if (config?.openaiApiKey) {\n setOpenaiApiKey(config.openaiApiKey);\n } else {\n console.error(\"OpenAI API key is missing from the configuration\");\n setError(\"OpenAI API key is missing. Please check your configuration.\");\n }\n\n // Parse URL parameters\n const params = new URLSearchParams(urlLocation.search);\n const relationshipParam = params.get('relationship');\n const occasionParam = params.get('occasion');\n const memoryParam = params.get('memory');\n const interestsParam = params.get('interests');\n\n setRelationship(relationshipParam);\n setOccasion(occasionParam);\n setFavoriteMemory(memoryParam);\n setHobbiesInterests(interestsParam);\n setShouldUpdateQuestions(true);\n }, [config, urlLocation.search]);\n\n useEffect(() => {\n if (shouldUpdateQuestions) {\n if (relationship || occasion || favoriteMemory || hobbiesInterests) {\n updateQuestions();\n } else {\n console.error(\"State not fully updated before calling updateQuestions\");\n }\n setShouldUpdateQuestions(false);\n }\n }, [relationship, occasion, favoriteMemory, hobbiesInterests, shouldUpdateQuestions]);\n\n const handleQuestionChange = (id, newText) => {\n setGeneratedQuestions((prevQuestions) =>\n prevQuestions.map((q) => (q.id === id ? { ...q, text: newText } : q))\n );\n };\n\n const handleRemoveQuestion = (id) => {\n setGeneratedQuestions((prevQuestions) =>\n prevQuestions.filter((q) => q.id !== id)\n );\n };\n\n const handleAddQuestion = () => {\n if (newQuestion.trim()) {\n setGeneratedQuestions((prevQuestions) => [\n ...prevQuestions,\n { id: Date.now(), text: newQuestion.trim() },\n ]);\n setNewQuestion(\"\");\n }\n };\n\n const updateQuestions = async () => {\n window.scrollTo(0, 0);\n setLoading(true);\n setError(null);\n try {\n if (!openaiApiKey) {\n throw new Error(\"OpenAI API key is missing\");\n }\n const response = await axios.post(\n \"https://api.openai.com/v1/chat/completions\",\n {\n model: \"gpt-4o-2024-08-06\",\n messages: [\n {\n role: \"user\",\n content: `We're creating a gift for ${relationship} that requires the recipient to answer 15 questions about themselves on the occasion of ${occasion}.\n Generate 15 questions for a ${relationship}.\n Please only generate 15 questions. You should count them to ensure that there are only 15.\n Basic instructions: should include 15 questions that are core to interview and 5 that are specific/relevant to the additional context of the user's favorite memory of ${favoriteMemory} and their interest in ${hobbiesInterests}. We can infer if they're a Dad, that they have at least one kid.\n 1. A very short title for the gift card (format: \"Title: [your generated title]\").\n 2. A heartfelt message for the gift card (format: \"Message: [your generated message]\"). Don't add opening and closings (ie. \"Dearest [so-and-so]\" and \"Yours truly [so-and-so]\").\n 3. 15 questions to capture key moments from their life and learn more about them as a person (format: \"Questions: 1. [question1] 2. [question2] ...\").\n ${\n additionalDetails\n ? `- Additional details: ${additionalDetails}`\n : \"\"\n }\n Here are some of our favorite starter questions to ask, you should try to include some of these:\n - What is your full name and why were you named that?\n - Where and when were you born?\n - How would you describe your childhood?\n - Who were the most influential people in your early life?\n - What were your aspirations as a young person?\n - How did you meet your spouse/partner?\n - What have been the keys to a successful relationship in your opinion?\n - What was your profession and how did you choose it?\n - What did you find most rewarding about your career?\n - Are there any accomplishments you are particularly proud of?\n - What hobbies have you enjoyed?\n - Have you traveled much? What were some of your favorite places?\n - What values are most important to you?\n - What do you feel most grateful for?\n - What are some of the most important lessons you've learned in life?\n - How would you like to be remembered?\n - What are you most looking forward to right now?\n - Are there any goals or dreams you still wish to achieve?\n - Do you have a philosophy of life that guides your actions and decisions?\n - What's one thing you think everyone should try at least once in their life?\n ,`\n },\n ],\n temperature: 0.5,\n },\n {\n headers: {\n Authorization: `Bearer ${openaiApiKey}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n const content = response.data.choices[0].message.content;\n\n // Extract title\n const titleMatch = content.match(/Title: (.*)/);\n const title = titleMatch\n ? titleMatch[1].replace(/\"/g, \"\")\n : `Happy ${occasion}, ${relationship}!`;\n setCardTitle(title);\n\n // Extract message\n const messageMatch = content.match(/Message: ([\\s\\S]*?)(?=Questions:)/);\n const message = messageMatch\n ? messageMatch[1].trim().replace(/\"/g, \"\")\n : \"\";\n setCardMessage(message);\n\n // Extract and process questions\n const questionsMatch = content.match(/Questions:([\\s\\S]*)/);\n const questionsContent = questionsMatch ? questionsMatch[1] : \"\";\n const questions = questionsContent\n .split(/\\d+\\.\\s/)\n .filter((q) => q.trim() !== \"\")\n .map((q, index) => ({\n id: index,\n text: q.trim(),\n }));\n\n setGeneratedQuestions(questions);\n setShowQuestions(true);\n } catch (error) {\n console.error(\"Error generating content:\", error);\n setError(\n \"Failed to generate content. Please check your API key and try again.\"\n );\n } finally {\n setLoading(false);\n }\n };\n\n const handleShowPreview = () => {\n setShowPreview(true);\n window.scrollTo(0, 0);\n };\n\n if (loading) {\n return (\n \n \n \n \n \n \n Generating personalized questions...\n
\n Just a few more seconds!\n
\n
\n \n );\n }\n\n if (error) {\n return (\n \n \n \n {error}\n \n {\n setError(null);\n }}\n >\n Start Over\n \n \n \n );\n }\n\n if (showPreview) {\n return (\n setShowPreview(false)}\n generatedQuestions={generatedQuestions}\n additionalDetails={additionalDetails}\n hobbiesInterests={hobbiesInterests}\n favoriteMemory={favoriteMemory}\n location={location}\n relationship={relationship}\n />\n );\n }\n\n if (showQuestions) {\n return (\n setShowQuestions(false)}\n handleQuestionChange={handleQuestionChange}\n handleRemoveQuestion={handleRemoveQuestion}\n newQuestion={newQuestion}\n setNewQuestion={setNewQuestion}\n handleAddQuestion={handleAddQuestion}\n updateQuestions={updateQuestions}\n handleShowPreview={handleShowPreview}\n />\n );\n }\n\n return (\n \n \n Create Your Gift - Golden Record\n \n \n \n Who are you creating a Golden Record with?\n \n \n Are you ready to learn more about someone through their stories?\n We'll use this information to generate a personalized gift card\n just for them, inviting them to share their stories with you.\n Not ready to create your gift yet?{` `}\n
\n \n Skip this and create an account for yourself!\n \n \n
\n \n \n \n \n\n \n Generate Questions\n \n
\n );\n};\n\nexport default Questionnaire;\n"],"names":["getCardContentUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","useUtilityClasses","ownerState","classes","composeClasses","CardContentRoot","styled","props","styles","CardContent","React.forwardRef","inProps","ref","useDefaultProps","className","component","other","_objectWithoutPropertiesLoose","_extends","_jsx","clsx","_interopRequireDefault","require$$0","ArrowForward","default_1","_createSvgIcon","require$$1","_jsxRuntime","require$$2","Questionnaire","config","urlLocation","useLocation","useNavigate","loading","setLoading","useState","error","setError","generatedQuestions","setGeneratedQuestions","cardTitle","setCardTitle","cardMessage","setCardMessage","senderClosing","setSenderClosing","additionalDetails","setAdditionalDetails","uploadedImage","setUploadedImage","openaiApiKey","setOpenaiApiKey","relationship","setRelationship","occasion","setOccasion","location","setLocation","favoriteMemory","setFavoriteMemory","hobbiesInterests","setHobbiesInterests","showQuestions","setShowQuestions","newQuestion","setNewQuestion","showPreview","setShowPreview","shouldUpdateQuestions","setShouldUpdateQuestions","useEffect","params","relationshipParam","occasionParam","memoryParam","interestsParam","updateQuestions","handleQuestionChange","id","newText","prevQuestions","q","handleRemoveQuestion","handleAddQuestion","content","axios","titleMatch","title","messageMatch","message","questionsMatch","questions","index","handleShowPreview","React","Card","colors","Box","CircularProgress","Typography","Button","PreviewCard","ShowGeneratedQuestions","Helmet","Link","ArrowForwardIcon","QuestionnaireForm"],"mappings":"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","x_google_ignoreList":[0,1,2]}