{"version":3,"sources":["firebase.config.js","state/problemModel.js","state/firestoreModel.js","helpers/timeAgo.js","components/problemsList.js","components/stepCounter.js","components/textArrayInput.js","helpers/escapeAttr.js","helpers/unescapeAttr.js","components/problemsModal.js","components/errorModal.js","Logo-Inversed.svg","App.js","reportWebVitals.js","index.js"],"names":["firebase","initializeApp","apiKey","process","authDomain","projectId","storageBucket","messagingSenderId","appId","problem","Solution","SolvedDate","this","dateToTimestamp","Date","Solutions","length","i","Title","trim","problemId","a","store","collection","problemCollection","doc","get","currentProblemDocument","data","id","uid","where","orderBy","docs","map","Error","normaliseProblem","p","JSON","parse","stringify","LastUpdatedDate","update","CreatedDate","add","docRef","delete","result","firestore","d","Timestamp","fromDate","timeAgo","prevDate","diff","Number","minute","hour","day","month","year","seconds","Math","round","ProblemsList","props","useState","problems","setProblems","useEffect","className","onClick","e","getProblem","stepCounter","steps","step","number","currentStep","setStep","label","TextArrayInput","value","values","setValues","useDynamicRefs","getRef","setRef","toKey","commit","target","vals","Array","keys","forEach","current","lastChild","push","gatherValues","handleChange","setTimeout","focus","onKeyUp","key","preventDefault","tabIndex","onChange","val","ref","type","defaultValue","onBlur","escapeAttr","str","replace","unescapeAttr","ProblemsModal","setCurrentStep","setProblem","name","openState","close","setOpenState","handleChooseSolution","parentNode","tagName","document","querySelectorAll","el","classList","remove","checked","role","aria-hidden","htmlFor","solution","Pros","Cons","Plan","item","data-dismiss","onStepChange","window","confirm","handleDelete","ErrorModal","error","setError","message","description","stack","App","modal","setModal","ProblemCollection","blankProblem","isSignedIn","setIsSignedIn","setUid","uiConfig","signInFlow","signInOptions","auth","GoogleAuthProvider","PROVIDER_ID","callbacks","signInSuccessWithAuthResult","unregisterAuthObserver","onAuthStateChanged","user","getAllProblems","prev","console","deleteProblem","deleteCurrentProblem","then","catch","err","includes","currentSolutions","newSolution","blankSolution","parts","split","part","key1","key2","key3","saveCurrentProblem","savedProblem","handleModalButton","src","LogoInversed","alt","width","href","signOut","filtered","filter","prob","oldProblem","firebaseAuth","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","querySelector"],"mappings":"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","file":"static/js/main.cab86062.chunk.js","sourcesContent":["import firebase from 'firebase/app';\nimport 'firebase/firestore';\nimport 'firebase/auth';\n\nlet config = {\n apiKey: process.env.REACT_APP_API_KEY,\n authDomain: process.env.REACT_APP_AUTH_DOMAIN,\n projectId: process.env.REACT_APP_PROJECT_ID,\n storageBucket: process.env.REACT_APP_STORAGE_BUCKET,\n messagingSenderId: process.env.REACT_APP_MESSAGE_SENDER_ID,\n appId: process.env.REACT_APP_APP_ID\n};\n\nfirebase.initializeApp(config);\n\nexport default firebase;","import FirestoreModel from './firestoreModel';\n\nclass ProblemModel extends FirestoreModel {\n blankProblem() {\n return {\n \"id\": null,\n \"uid\": null,\n \"Plan\": [],\n \"Solution\": null,\n \"Solutions\": [],\n \"LastUpdatedDate\": null,\n \"Title\": \"\",\n \"SolvedDate\": null,\n \"CreatedDate\": null\n };\n }\n\n blankSolution() {\n return {\n \"Title\": null,\n \"Cons\": [],\n \"Pros\": []\n };\n }\n\n normaliseProblem(problem) {\n if (problem.Solution && !problem.SolvedDate) {\n problem.SolvedDate = this.dateToTimestamp(new Date());\n }\n\n if (problem.Solutions && problem.Solutions.length > 0) {\n for (let i = 0; i < problem.Solutions.length; i++) {\n if (!problem.Solutions[i] || problem.Solutions[i]?.Title?.trim() === '') {\n delete problem.Solutions[i];\n }\n }\n }\n\n return problem;\n }\n\n async getCurrentProblem(problemId) {\n const currentProblemDocument = await this.store\n .collection(this.problemCollection)\n .doc(problemId)\n .get();\n return { ...currentProblemDocument.data(), id: currentProblemDocument.id };\n }\n\n async getAllProblems(uid) {\n const problemCollection = await this.store\n .collection(this.problemCollection)\n .where('uid', '==', uid)\n .orderBy('LastUpdatedDate', 'desc')\n .get();\n return problemCollection.docs.map(problem => ({ ...problem.data(), id: problem.id }));\n }\n\n async saveCurrentProblem(problem) {\n if (!problem) {\n throw new Error('Trying to save an undefined problem');\n }\n\n problem = this.normaliseProblem(problem);\n\n if (problem.id) {\n // Make sure we got a copy and not a reference of the original\n let p = JSON.parse( JSON.stringify(problem) );\n delete p.id;\n p.LastUpdatedDate = this.dateToTimestamp(new Date());\n\n await this.store\n .collection(this.problemCollection)\n .doc(problem.id)\n .update(p);\n return problem;\n } else {\n problem.CreatedDate = this.dateToTimestamp(new Date());\n problem.LastUpdatedDate = this.dateToTimestamp(new Date());\n\n let docRef = await this.store\n .collection(this.problemCollection)\n .add(problem);\n\n return { ...problem, id: docRef.id };\n }\n }\n\n async deleteCurrentProblem(problemId) {\n const result = await this.store\n .collection(this.problemCollection)\n .doc(problemId)\n .delete();\n return result;\n } \n}\n\nexport default new ProblemModel();","import firebase from '../firebase.config';\n\nexport default class FirestoreModel {\n store;\n \n constructor() {\n this.store = firebase.firestore();\n }\n\n dateToTimestamp(d) {\n return firebase.firestore.Timestamp.fromDate(d);\n }\n\n get problemCollection() {\n return 'problems';\n }\n}","const timeAgo = (prevDate) => {\n const diff = Number(new Date()) - prevDate;\n const minute = 60 * 1000;\n const hour = minute * 60;\n const day = hour * 24;\n const month = day * 30;\n const year = day * 365;\n switch (true) {\n case diff < minute:\n const seconds = Math.round(diff / 1000);\n return `${seconds} ${seconds > 1 ? 'seconds' : 'second'} ago`\n case diff < hour:\n return Math.round(diff / minute) + ' minutes ago';\n case diff < day:\n return Math.round(diff / hour) + ' hours ago';\n case diff < month:\n return Math.round(diff / day) + ' days ago';\n case diff < year:\n return Math.round(diff / month) + ' months ago';\n case diff > year:\n return Math.round(diff / year) + ' years ago';\n default:\n return \"\";\n }\n};\n\nexport default timeAgo;","import React, { useState, useEffect } from 'react';\nimport timeAgo from '../helpers/timeAgo';\n\nfunction ProblemsList(props) {\n const [problems, setProblems] = useState(props.problems);\n\n useEffect(() => {\n setProblems(props.problems);\n }, [props]);\n\n const handleClick = (e, id) => {\n props.getProblem(id);\n };\n\n return(\n
{timeAgo(problem.LastUpdatedDate?.seconds * 1000)}
\n{error?.message}
\n {error?.description &&\n{error.description}
\n }\n {error?.stack &&\n{error.stack}
\n }\n Structured problem solving a great technique to help you step back from a problem and help your mind work towards a solution.
\n