From 4705cd66269d18d926ea90d5a699815c9c6ada58 Mon Sep 17 00:00:00 2001 From: Ayushya Amitabh Date: Sat, 10 Feb 2024 18:26:14 -0500 Subject: [PATCH] archive --- extralarge.css | 7 + extrasmall.css | 475 +++++++++++ glacialindifference-bold-webfont.woff2 | Bin 0 -> 16872 bytes glacialindifference-regular-webfont.woff2 | Bin 0 -> 17480 bytes index.html | 119 +++ index.js | 988 ++++++++++++++++++++++ large.css | 30 + logo512.png | Bin 0 -> 13917 bytes manifest.json | 25 + medium.css | 135 +++ small.css | 7 + smallmedium.css | 7 + variables-dark.css | 9 + variables.css | 9 + 14 files changed, 1811 insertions(+) create mode 100644 extralarge.css create mode 100644 extrasmall.css create mode 100644 glacialindifference-bold-webfont.woff2 create mode 100644 glacialindifference-regular-webfont.woff2 create mode 100644 index.html create mode 100644 index.js create mode 100644 large.css create mode 100644 logo512.png create mode 100644 manifest.json create mode 100644 medium.css create mode 100644 small.css create mode 100644 smallmedium.css create mode 100644 variables-dark.css create mode 100644 variables.css diff --git a/extralarge.css b/extralarge.css new file mode 100644 index 0000000..be1fc76 --- /dev/null +++ b/extralarge.css @@ -0,0 +1,7 @@ +.input-popup.expanded { + height: 50vh; +} + +.loading-bar-container { + max-width: 25%; +} diff --git a/extrasmall.css b/extrasmall.css new file mode 100644 index 0000000..9481b4f --- /dev/null +++ b/extrasmall.css @@ -0,0 +1,475 @@ +* { + margin: 0; + padding: 0; + transition: all ease-in-out 0.2s; + color: var(--color-secondary); + user-select: none; +} + +html { + font-size: 10px; + scroll-behavior: smooth; +} +body { + display: flex; + flex-direction: column; + font-size: 10px; + padding: 3.75rem; + padding-bottom: 0 !important; + height: calc(100vh - 3.75rem); + overflow-x: hidden; + max-width: 100vw; + background: var(--color-primary); +} + +#root { + flex: 1; + display: flex; +} + +.app-container { + flex: 1; +} + +header { + display: flex; + justify-content: center; + flex-direction: column; +} + +.logo-container { + display: flex; + width: fit-content; + justify-content: center; + flex-direction: column; +} +.logo { + background-size: 100%; + width: 5rem; + height: 5rem; + display: inline-block; + background-image: url("/logo512.png"); +} +.logo-text-container { + justify-content: center; + vertical-align: middle; + flex-direction: column; + flex: 1; + margin-top: 3.5rem; +} +.logo-text-container p { + font-size: 2.4rem; +} + +.header { + font-size: 10rem; + letter-spacing: 1rem; +} + +.subheader { + font-size: 2.5rem; + margin: 0; +} + +.overline { + font-size: 2rem; + letter-spacing: 0.1rem; + margin: 0; +} + +.overline[data-button] { + border-bottom: 1px solid; + width: fit-content; + cursor: pointer; +} + +.overline[data-button] a { + text-decoration: none; +} + +.intro { + margin: 4.5rem 0; + display: inline-block; + width: fit-content; +} + +.question-container { + margin: 3.5rem 0; +} + +.question { + font-size: 2rem; +} + +.answers-container { + margin: 1rem 0; +} + +.answer { + display: inline-flex; + font-size: 1.8rem; + padding: 1.2rem 1.5rem; + margin-right: 0.75rem; + margin-bottom: 0.75rem; + border-radius: 24rem; + background-color: var(--color-secondary); + color: var(--color-primary); + outline: none !important; + border: none !important; + letter-spacing: 0.2rem; + text-transform: uppercase; + cursor: pointer; +} + +.answer.selected { + background-color: var(--color-bright); +} +.answer.unselected { + background-color: var(--color-dim); +} + +.symptom-container.subheader { + margin-top: 5rem; + margin-bottom: 2.5rem; + display: block !important; +} +.symptom-container.subheader .overline { + margin: 1rem 0; +} +.symptom-container { + margin-bottom: 5rem; +} +.symptom { + max-width: 100%; + padding: 1.5rem; + flex-direction: column; + justify-content: center; + align-items: center; + border: 1px solid transparent; + border-radius: 1rem; + transition: border-color ease-in-out 0.4s; + transition: box-shadow ease-in-out 0.3s; +} +.symptom.at-site { + background-color: var(--color-dim); + border-radius: 0; +} +.symptom.at-site:first-of-type { + border-top-left-radius: 1rem; + border-top-right-radius: 1rem; +} +.symptom.at-site:nth-of-type(3) { + border-bottom-left-radius: 1rem; + border-bottom-right-radius: 1rem; +} + +.symptom-emoji { + text-align: center; + font-size: 3rem; + padding: 0.75rem; + display: block; +} +.symptom-name { + font-size: 2rem; + text-align: center; + display: block; +} +.symptom-chance { + font-size: 1.8rem; + text-align: center; + display: block; +} +.symptom-chance:before { + content: "EXPERIENCED BY"; + font-size: 1rem; + display: block; + text-align: center; + letter-spacing: 0.1rem; +} +.symptom-chance:after { + content: "PEOPLE"; + font-size: 1rem; + display: block; + text-align: center; + letter-spacing: 0.1rem; +} + +footer { + padding: 5rem 3.75rem; + width: calc(100vw - 7.5rem); + margin-left: -3.75rem; + background-color: var(--color-secondary-light); +} +.link-container { + font-size: 1.2rem; + transition: none !important; + display: flex; + flex-direction: column; +} + +.link-container > div { + flex: 1; + display: flex; + flex-direction: column; + color: var(--color-primary); +} + +.link-container > div > .overline { + color: var(--color-primary); +} + +.link-container > div:not(:first-of-type) { + margin-top: 3rem; +} + +a { + color: var(--color); + margin-top: 0.75rem; + max-width: fit-content; + +} + +.link-container a { + font-size: 1.8rem; +} + +footer .by { + color: var(--color-primary); + margin-top: 4rem; +} + +@keyframes slideUp { + 0% { + transform: translateY(300%); + } + 100% { + transform: translateY(0); + } +} + +.input-popup { + position: sticky; + background-color: var(--color-secondary-light); + bottom: 1rem; + height: 13.5rem; + margin-bottom: 7.5rem; + transition: height ease-in-out 0.3s; + overflow: hidden; + border-radius: 2rem; + max-height: 85vh; + display: flex; + flex-direction: column; + animation: 0.5s ease-out 0s 1 slideUp; + animation-delay: 0.5s; + animation-fill-mode: forwards; + transform: translateY(200%); +} +.input-popup * { + color: var(--color-primary); +} +.input-popup.expanded { + height: 80vh; + overflow-y: auto; +} +.input-popup .input-popup-header-icon { + transform: rotate(180deg); +} +.input-popup.expanded .input-popup-header-icon { + transform: rotate(0deg); +} +.input-popup-header { + padding: 2.5rem; + position: sticky; + top: 0; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + background-color: var(--color-secondary-light); + border-bottom: 1px solid transparent; +} +.input-popup.expanded .input-popup-header { + border-bottom: 1px solid var(--color-tertiary); +} +.input-popup-header-text { + flex: 1; +} +.input-popup-header-icon { + cursor: pointer; + background-color: var(--color-primary); + outline: none; + color: var(--color-secondary); + border: 1px solid transparent; + border-radius: 10rem; + height: 5rem; + width: 5rem; +} + +.input-popup-body { + padding: 2.5rem 2.5rem; + flex: 1; +} + +.input-popup-body .question-container .answers-container .answer { + background-color: var(--color-tertiary); +} +.input-popup-body .question-container .answers-container .answer.selected { + background-color: var(--color-secondary); +} + +.input-popup-submit { + padding: 2.5rem; + text-align: center; + font-size: 2rem; + letter-spacing: 0.3rem; + background-color: var(--color-secondary); + cursor: pointer; +} +.input-popup.expanded .input-popup-submit { + position: sticky; + bottom: 0; +} +.input-popup-submit.submitted { + background-color: #55c16c; +} +.input-popup-submit.errored { + background-color: #c43d34; +} + +.input-popup.expanded::-webkit-scrollbar { + width: 1.5rem; + background-color: var(--color-tertiary); + border-radius: 0 4rem 4rem 0; +} +.input-popup.expanded::-webkit-scrollbar-thumb { + width: 1rem; + background-color: var(--color-dim); + border-radius: 0 4rem 4rem 0; +} + +.tip-container { + display: flex; + flex-direction: row; + padding: 2rem 0; + margin: 2rem 0; + border-radius: 1rem; + margin-bottom: 2rem; +} +.tip-icon { + font-size: 3rem; +} +.tip .overline { + font-size: 1.6rem; +} +.tip .subheader { + font-size: 2rem; + letter-spacing: 0.2rem; + margin-top: 0.4rem; +} +.tip .header { + font-size: 6rem; + letter-spacing: 0.5rem; +} +.tip-container .overline[data-button] { + margin-top: 1rem; +} +.tip-container .overline[data-button]:first-of-type { + margin-top: 2rem; +} + +@keyframes loading { + 0% { + width: 0%; + } + 100% { + width: 100%; + } +} +.loading-bar-container { + min-height: 2rem; + background-color: var(--color-secondary-light); + border-radius: 1rem; + margin-top: 1rem; +} +.loading-bar { + position: relative; + width: 1rem; + min-height: 2rem; + background-color: #25d255; + border-radius: 1rem; + animation: 2s ease-out 0s infinite loading; +} + +.result-header-container { + display: flex; + align-items: center; + margin-top: 5rem; + flex-direction: column; + margin-bottom: 2rem; + border: 1px solid var(--color-secondary); + border-radius: 1rem; + padding: 3rem 2rem; +} + +.result-header-container .symptom-container { + margin: 0; + flex: 1; + width: 100%; +} + +.result-header-select { + width: 100%; + margin-top: 2rem; +} + +.result-header-select .overline { + font-size: 1.6rem; + margin-bottom: 0.75rem; +} + + +.result-header-select .overline.errored { + margin-bottom: 0; + margin-top: 0.75rem; + color: #c43d34; +} +.result-header-select .overline.success { + margin-bottom: 0; + margin-top: 0.75rem; +} + +.result-header-select select { + background-color: var(--color-tertiary); + border-radius: 1rem; + padding: 1rem 2rem; + outline: none; + width: 100%; +} + +@media (hover: hover) and (pointer: fine) { + .answer:hover, + .answer.unselected:hover { + background-color: var(--color-secondary-light); + } + .symptom:hover { + box-shadow: 0px 0px 100px var(--color-tertiary); + background-color: var(--color-primary); + } + .symptom.at-site:hover { + box-shadow: 0px 0px 100px var(--color-dim); + background-color: var(--color-secondary-light); + color: var(--color-primary); + } + .symptom.at-site:hover p { + color: var(--color-primary); + } + .input-popup-header-icon:hover { + background-color: var(--color-tertiary); + } + .input-popup-body .question-container .answers-container .answer:hover { + background-color: var(--color-bright); + } + .input-popup-submit:hover { + background-color: var(--color-tertiary); + } +} diff --git a/glacialindifference-bold-webfont.woff2 b/glacialindifference-bold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..452055ec63323f867e6cd04a1b1e9a2dd59f8e98 GIT binary patch literal 16872 zcmV)9K*hgzPew8T0RR91072*g5&!@I0IxIv06~EO0RR9100000000000000000000 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 z zp+{9pkjnOhL%O*(D#b+c;Z8Qr2*9Vk>m_St!f(?gQ7G}sMFp=V46v(d8EHuTH1j)B z&x~%~C6kfls$Fnt32VY|c8$-TW6^i3GdKlVvWYv|-b{=Lc`FNIlF_6r94t==nk(Gx&p-b- zOh2QG^6eTcBUFv(@x>-+sC<~{TZ4V1kIA|I97=%*7utc0;)<1YcbByiv!76*sHg=O_*1p6XsTA*DGBq&Pr>(m5*=I><9=gZ< zN;~eqb|+`PpVpARm9(9LF&G--_t0xo5%0QbE7C&>48nsawR;#&ImV?!ByKZnm~B`5 zRh9ytxh;)jTnqJO)6`>#xXUMON@t3iPl&Q(!-@bEB?T`1`U5NM0uI@nXSW5cGK|^( zFQQ5Ex3?~@tL1PQ3h=<6d$Ae7VTc}!vgXyP3?l%3grWM(BYfBOE_-@EnNIijW6;U| z^vva74w)N4i?!RlNEGV;-dZ{yNO62;>Db{3Kf3%5xcZ}0)6_^Ej$iOx}v zqVT$>N7m0lzlxs&b8<;>B}I=FECz6Hc0E;UHamkRKntG5Mee9`iLUM|ha|#IdELQ;&Cei%z$f5Hb&ZzfY=`?<{Z0h_G8%8#>2cP>>E+V_Zku+C z_F?YJ$BO!S!y$nu0)vNxLr#Q5LzRmy9mFjSGw<++E$N5+>6!jy&iN(9mogkAPa>U$ zwUOYkA~@rsRBYblDxelIW4f`EBU$>Ukgjz1mP@SJxv2BS?aOg*4zl!3;THcbN6~^c z_G4?(LqO*kC&wt$0{MKd9LsngmKy8o>OytJQca5F^FRneV)Je{0A-;iEDg+;RlEXi zt$beVkfS1rL9uD#nMRN_kEz_ciQt?ofBm{@A?Gh^3Le7x&3FafY+X2}5vSjcRidO5 zqXIJM0o3%En6l4hc%KNOJB8>al5KO8T@!zDI&sjxG#>0t$NRR_B-q9dGn%UIJfhcT zjN0u_j2z~=DpREZlp8%jteU2VNl0^E4_Ffq3>h)8eA$jE8V%0lfk?BR@L?}slU zPFKs{ajh)FP3N#;PId3QjAP;Az&m}s<0Db&KBpGdeyA?iHavep$DK6zPK89$Ay=Y)?TxRe|wB_uC*C^s{dl9P#$=2Al4-6#}Jc!Z1VehEQeZNu~T zCAFKD8aKO(Mn|IPK1&N~Kh*4Hl><(9RfqgDGyTa7ru@p0{WCLE5j{4i2cYrEAO_>` zt}euyXX}6&totsq-3|5t{e@xvFfU=Wki6KvW?Mkt3unp!kf>qiN^~zELrWuxMc7o_|Ir*&N@@3_jHv8N9rYE!;P+ zYddR~It%}veP+)dJjy0`?#m!mXydicFhyh2t@T&W)|wqLdu}1W0r9hmmi3d3E|D>b zU_m*QoT3SrhvqaqY2u45AMjbv#NAaJntK}H@y
(v*n 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 literal 0 HcmV?d00001 diff --git a/glacialindifference-regular-webfont.woff2 b/glacialindifference-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f663610268e1492afcf2dd5ebf78bcd7164c33eb GIT binary patch literal 17480 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 + + + + + + + + + + + + Vax & Me | 404 + + +
+
+
+
+ +
+
+
+
+

+ 404 +

+
+ This page doesn't exist. +
+
+
+
+
+
+ + diff --git a/index.js b/index.js new file mode 100644 index 0000000..10d6c08 --- /dev/null +++ b/index.js @@ -0,0 +1,988 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import firebase from "firebase/app"; +import "firebase/functions"; + +const FIREBASE_CONFIG = { + apiKey: "AIzaSyDKw8HXWRn3dtkIRETv-BxtwnklZIpIkxU", + authDomain: "vaxandme.firebaseapp.com", + projectId: "vaxandme", + storageBucket: "vaxandme.appspot.com", + messagingSenderId: "614738281692", + appId: "1:614738281692:web:7a89e0af76675e4f0ea019", + measurementId: "G-N016TVJ6JC", +}; + +firebase.initializeApp(FIREBASE_CONFIG); + +if (window.location.host !== "www.vaxand.me") { + firebase.functions().useEmulator(window.location.host.split(":")[0], 5001); +} + +const fb_functions = firebase.functions(); +const saveResult = fb_functions.httpsCallable("saveResultV1"); +const getPastResult = fb_functions.httpsCallable("getPastResultV1"); +const getStats = fb_functions.httpsCallable("getStatsV1"); + +const VAX_NAMES = { + PB: "Pfizer-BioNTech", + MD: "Moderna", + JJ: "J&J Janssen", +}; + +const VAX_DOSES = { + ONE: "Dose 1", + TWO: "Dose 2", +}; + +const VAX_AGES = { + "Pfizer-BioNTech": { + YOUNGER: "18 - 55", + OLDER: "56 & Older", + }, + Moderna: { + YOUNGER: "18 - 64", + OLDER: "65 & Older", + }, + "J&J Janssen": { + YOUNGER: "18 - 59", + OLDER: "60 & Older", + }, +}; + +const VAX_EFFICACY = { + "Pfizer-BioNTech": { + "18 - 55": 95.3, + "56 & Older": 93.8, + }, + Moderna: { + "18 - 64": 95.6, + "65 & Older": 86.4, + }, + "J&J Janssen": { + "18 - 59": 66.1, + "60 & Older": 66.2, + }, +}; + +const PB_DOSE1_YOUNGER_RESULT = { + "PAIN AT SITE": 1904, + "RED AT SITE": 104, + "SWELLING AT SITE": 132, + FATIGUE: 1085, + HEADACHE: 959, + "NEED PAIN MED": 638, + "MUSCLE PAIN": 487, + CHILLS: 321, + DIARRHEA: 255, + "JOINT PAIN": 251, + FEVER: 85, + VOMITING: 28, +}; +const PB_DOSE2_YOUNGER_RESULT = { + "PAIN AT SITE": 1632, + "RED AT SITE": 123, + "SWELLING AT SITE": 132, + FATIGUE: 1247, + HEADACHE: 1085, + "NEED PAIN MED": 945, + "MUSCLE PAIN": 783, + CHILLS: 737, + "JOINT PAIN": 459, + FEVER: 331, + DIARRHEA: 219, + VOMITING: 40, +}; +const PB_DOSE1_OLDER_RESULT = { + "PAIN AT SITE": 1282, + "RED AT SITE": 85, + "SWELLING AT SITE": 118, + FATIGUE: 615, + HEADACHE: 454, + "NEED PAIN MED": 358, + "MUSCLE PAIN": 251, + CHILLS: 113, + DIARRHEA: 147, + "JOINT PAIN": 155, + FEVER: 26, + VOMITING: 9, +}; +const PB_DOSE2_OLDER_RESULT = { + "PAIN AT SITE": 1098, + "RED AT SITE": 120, + "SWELLING AT SITE": 124, + FATIGUE: 839, + HEADACHE: 647, + "NEED PAIN MED": 625, + "MUSCLE PAIN": 477, + CHILLS: 377, + "JOINT PAIN": 313, + DIARRHEA: 137, + FEVER: 181, + VOMITING: 11, +}; +const MD_DOSE1_YOUNGER_RESULT = { + "PAIN AT SITE": 9908, + "RED AT SITE": 344, + "SWELLING AT SITE": 2089, + HEADACHE: 4030, + FATIGUE: 4384, + "MUSCLE PAIN": 2699, + "JOINT PAIN": 1893, + "NAUSEA OR VOMITING": 1068, + FEVER: 105, + CHILLS: 1051, +}; +const MD_DOSE2_YOUNGER_RESULT = { + "PAIN AT SITE": 9873, + "RED AT SITE": 982, + "SWELLING AT SITE": 3164, + FATIGUE: 7430, + HEADACHE: 6898, + "JOINT PAIN": 4993, + CHILLS: 5341, + FEVER: 1908, + "NAUSEA OR VOMITING": 2348, + "MUSCLE PAIN": 6769, +}; +const MD_DOSE1_OLDER_RESULT = { + "PAIN AT SITE": 2782, + "RED AT SITE": 86, + "SWELLING AT SITE": 396, + HEADACHE: 921, + FATIGUE: 1251, + "MUSCLE PAIN": 742, + "JOINT PAIN": 618, + "NAUSEA OR VOMITING": 194, + CHILLS: 202, + FEVER: 10, +}; +const MD_DOSE2_OLDER_RESULT = { + "PAIN AT SITE": 3070, + "RED AT SITE": 275, + "SWELLING AT SITE": 715, + FATIGUE: 2152, + HEADACHE: 1704, + "MUSCLE PAIN": 1739, + "JOINT PAIN": 1291, + CHILLS: 1141, + "NAUSEA OR VOMITING": 437, + FEVER: 370, +}; +const JJ_YOUNGER_RESULT = { + "PAIN AT SITE": 1193, + "RED AT SITE": 184, + "SWELLING AT SITE": 142, + HEADACHE: 905, + FATIGUE: 891, + "MUSCLE PAIN": 796, + "NEED PAIN MED": 538, + "NAUSEA OR VOMITING": 315, + FEVER: 261, +}; +const JJ_OLDER_RESULT = { + "PAIN AT SITE": 439, + "RED AT SITE": 61, + "SWELLING AT SITE": 36, + HEADACHE: 401, + FATIGUE: 392, + "MUSCLE PAIN": 317, + "NAUSEA OR VOMITING": 162, + "NEED PAIN MED": 130, + FEVER: 41, +}; + +const VAX_COUNTS = { + "Pfizer-BioNTech": { + "Dose 1": { + "18 - 55": 2291, + "56 & Older": 1802, + }, + "Dose 2": { + "18 - 55": 2098, + "56 & Older": 1660, + }, + }, + Moderna: { + "Dose 1": { + "18 - 64": 11406, + "65 & Older": 3762, + }, + "Dose 2": { + "18 - 64": 10985, + "65 & Older": 3692, + }, + }, + "J&J Janssen": { + "18 - 59": 2036, + "60 & Older": 1320, + }, +}; + +const VAX_RESULTS = { + "Pfizer-BioNTech": { + "Dose 1": { + "18 - 55": PB_DOSE1_YOUNGER_RESULT, + "56 & Older": PB_DOSE1_OLDER_RESULT, + }, + "Dose 2": { + "18 - 55": PB_DOSE2_YOUNGER_RESULT, + "56 & Older": PB_DOSE2_OLDER_RESULT, + }, + }, + Moderna: { + "Dose 1": { + "18 - 64": MD_DOSE1_YOUNGER_RESULT, + "65 & Older": MD_DOSE1_OLDER_RESULT, + }, + "Dose 2": { + "18 - 64": MD_DOSE2_YOUNGER_RESULT, + "65 & Older": MD_DOSE2_OLDER_RESULT, + }, + }, + "J&J Janssen": { + "18 - 59": JJ_YOUNGER_RESULT, + "60 & Older": JJ_OLDER_RESULT, + }, +}; + +const ICONS = { + "PAIN AT SITE": "💪", + "RED AT SITE": "🔴", + "SWELLING AT SITE": "💢", + FATIGUE: "🥱", + HEADACHE: "🤕", + "NEED PAIN MED": "💊", + "MUSCLE PAIN": "😫", + CHILLS: "🥶", + DIARRHEA: "💩", + "JOINT PAIN": "🦵", + FEVER: "🤒", + VOMITING: "🤮", + "NAUSEA OR VOMITING": "🤮", +}; + +const DATA_CHOICES = { + VNM: "Vax&Me Only", + VNM_FDA: "Vax&Me + FDA", + FDA: "FDA Only", +}; + +class App extends React.Component { + constructor(props) { + super(props); + this.state = { + name: "", + dose: "", + age: "", + gid: "", + showInputPopup: false, + answers: {}, + fetchedResult: {}, + stats: {}, + loading: true, + dataSource: DATA_CHOICES.FDA, + loadingMessage: "Gettings stats...", + }; + } + componentDidMount() { + const params = window.location.pathname + .toUpperCase() + .split("/") + .filter((v) => v.length > 0); + if (params) { + if (params[0] && VAX_NAMES[params[0]]) { + const name = VAX_NAMES[params[0]]; + this.setState({ name }); + switch (name) { + case VAX_NAMES.PB: + case VAX_NAMES.MD: + if (params[1] && VAX_DOSES[params[1]]) { + const dose = VAX_DOSES[params[1]]; + this.setState({ dose }); + if (params[2] && VAX_AGES[name][params[2]]) { + const age = VAX_AGES[name][params[2]]; + this.setState({ age }); + } + } + break; + case VAX_NAMES.JJ: + if (params[1] && VAX_AGES[name][params[1]]) { + const age = VAX_AGES[name][params[1]]; + this.setState({ age }); + } + break; + default: + break; + } + } + } + + getStats() + .then((v) => { + // GET & SET STATS + this.setState({ + stats: v.data, + loadingMessage: "Checking for existing answers...", + dataSource: DATA_CHOICES.VNM_FDA, + }); + // HAS GID? + if (window.gtag) { + // GET GID + window.gtag("get", "G-7VZCY223NG", "client_id", (client_id) => { + // GOT GID? + if (!!client_id) { + // SAVE GID + this.setState({ gid: client_id }); + // GET PAST ANSWER FOR GID + getPastResult({ gid: client_id }) + .then((v) => { + const { data } = v; + if (!!data) { + const { name, age, dose } = data; + this.setState({ + name, + age, + dose, + showInputPopup: true, + fetchedResult: data, + answers: data, + loading: false, + }); + const inputPopupSubmit = document.querySelector( + ".input-popup-submit" + ); + if (inputPopupSubmit) { + inputPopupSubmit.classList.add("submitted"); + inputPopupSubmit.innerHTML = "UPDATE ANSWER"; + } + window.localStorage.setItem("hasExistingAnswer", true); + } else { + this.setState({ loading: false }); + } + }) + .catch((err) => { + console.error("ERROR Getting Past Answer", err); + this.setState({ loading: false }); + }); + } else { + this.setState({ loading: false }); + } + }); + } else { + this.setState({ loading: false }); + } + }) + .catch((err) => { + console.error("ERROR GETTING STATS", err); + this.setState({ loading: false }); + }); + } + shouldShowDoses = () => { + const { name, loading } = this.state; + if (loading) { + return false; + } + return name && (name === VAX_NAMES.PB || name === VAX_NAMES.MD); + }; + shouldShowAgeGroup = () => { + const { name, dose, loading } = this.state; + if (loading) { + return false; + } + switch (name) { + case VAX_NAMES.JJ: + return true; + case VAX_NAMES.MD: + case VAX_NAMES.PB: + return !!dose; + default: + return false; + } + }; + shouldShowResults = () => { + const { name, dose, age, loading } = this.state; + if (loading) { + return false; + } + switch (name) { + case VAX_NAMES.JJ: + return !!age; + case VAX_NAMES.MD: + case VAX_NAMES.PB: + return !!dose && !!age; + default: + return false; + } + }; + getResults = () => { + const { name, dose, age, loading } = this.state; + if (loading) { + return null; + } + switch (name) { + case VAX_NAMES.JJ: + return VAX_RESULTS[name][age]; + case VAX_NAMES.MD: + case VAX_NAMES.PB: + return VAX_RESULTS[name][dose][age]; + default: + return null; + } + }; + copyShareLink = () => { + const { name, dose, age } = this.state; + let SHARE_URL = window.location.host; + const serialize_name = Object.keys(VAX_NAMES).filter( + (k) => VAX_NAMES[k] === name + )[0]; + const serialize_dose = Object.keys(VAX_DOSES).filter( + (k) => VAX_DOSES[k] === dose + )[0]; + const serialize_age = Object.keys(VAX_AGES[name]).filter( + (k) => VAX_AGES[name][k] === age + )[0]; + if (serialize_name) { + SHARE_URL += `/${serialize_name}`; + } + if (serialize_dose) { + SHARE_URL += `/${serialize_dose}`; + } + if (serialize_age) { + SHARE_URL += `/${serialize_age}`; + } + + const copyTextInput = document.createElement("input"); + document.body.appendChild(copyTextInput); + copyTextInput.value = SHARE_URL.toLowerCase(); + copyTextInput.select(); + document.execCommand("copy"); + copyTextInput.remove(); + + document.querySelector("#share-result").innerHTML = "Copied Link"; + setTimeout(() => { + document.querySelector("#share-result").innerHTML = "Share ↗"; + }, 1500); + }; + updateAnswers = (symptom, dose) => { + const { answers } = this.state; + const newAnswers = Object.assign({}, answers); + if (!!dose) { + if (!newAnswers[dose]) { + newAnswers[dose] = {}; + } + if (newAnswers[dose][symptom]) { + newAnswers[dose][symptom] = !newAnswers[dose][symptom]; + } else { + newAnswers[dose][symptom] = true; + } + } else { + if (newAnswers[symptom]) { + newAnswers[symptom] = !newAnswers[symptom]; + } else { + newAnswers[symptom] = true; + } + } + this.setState({ answers: newAnswers }); + }; + submitAnswer = () => { + document.querySelector(".input-popup-submit").innerHTML = "SENDING..."; + const { name, dose, age, answers, gid } = this.state; + const result = this.getResults(); + const symptoms = {}; + delete answers.name; + delete answers.dose; + delete answers.age; + if (!!dose) { + symptoms[VAX_DOSES.ONE] = {}; + symptoms[VAX_DOSES.TWO] = {}; + Object.keys(VAX_DOSES).forEach((dose) => { + Object.keys(result).forEach((symptom) => { + symptoms[VAX_DOSES[dose]][symptom] = false; + if (answers[VAX_DOSES[dose]] && answers[VAX_DOSES[dose]][symptom]) { + symptoms[VAX_DOSES[dose]][symptom] = true; + } + }); + }); + } else { + Object.keys(result).forEach((symptom) => { + symptoms[symptom] = false; + if (answers[symptom]) { + symptoms[symptom] = true; + } + }); + } + const submitAnswers = Object.assign({}, symptoms, { + name, + dose, + age, + gid, + }); + saveResult(submitAnswers) + .then(() => { + delete submitAnswers.gid; + this.setState({ fetchedResult: submitAnswers }); + const inputPopupSubmit = document.querySelector(".input-popup-submit"); + if (inputPopupSubmit.classList.contains("errored")) { + inputPopupSubmit.classList.remove("errored"); + } + if (!inputPopupSubmit.classList.contains("submitted")) { + inputPopupSubmit.classList.add("submitted"); + } + inputPopupSubmit.innerHTML = "THANK YOU!"; + setTimeout(() => { + inputPopupSubmit.innerHTML = "UPDATE ANSWER"; + }, 1500); + }) + .catch((err) => { + const inputPopupSubmit = document.querySelector(".input-popup-submit"); + if (!inputPopupSubmit.classList.contains("errored")) { + inputPopupSubmit.classList.add("errored"); + } + if (inputPopupSubmit.classList.contains("submitted")) { + inputPopupSubmit.classList.remove("submitted"); + } + inputPopupSubmit.innerHTML = "UH OH...UNABLE TO SEND"; + setTimeout(() => { + inputPopupSubmit.innerHTML = "TRY AGAIN"; + }, 1500); + console.error("ERROR Saving Answer", err); + }); + }; + getAnswerOptions = (answerDose) => { + const { answers, dose } = this.state; + const result = this.getResults(); + return ( +
+ {!!answerDose ? ( +
+ {answerDose} +
+ ) : null} +

+ {dose === VAX_DOSES.ONE && answerDose === VAX_DOSES.TWO + ? "(You can comeback later to tell us about Dose 2)" + : "(Select all side effects that you experienced)"} +

+
+ {Object.keys(result).map((symptom) => ( + + ))} +
+
+ ); + }; + getStatForSymptom = (symptom) => { + const { dataSource, name, dose, age, stats } = this.state; + switch (dataSource) { + case DATA_CHOICES.FDA: + if (!!dose) { + return Math.ceil( + (VAX_RESULTS[name][dose][age][symptom] / + VAX_COUNTS[name][dose][age]) * + 10 + ); + } else { + return Math.ceil( + (VAX_RESULTS[name][age][symptom] / VAX_COUNTS[name][age]) * 10 + ); + } + case DATA_CHOICES.VNM: + if (Object.keys(stats).length > 0) { + if (!!dose) { + return Math.ceil( + (stats[name][dose][age][symptom] / stats[name][dose][age].count) * + 10 + ); + } else { + return Math.ceil( + (stats[name][age][symptom] / stats[name][age].count) * 10 + ); + } + } else { + return 0; + } + case DATA_CHOICES.VNM_FDA: + let symptomCount = 0; + let totalCount = 0; + if (Object.keys(stats).length > 0) { + if (!!dose) { + symptomCount = + VAX_RESULTS[name][dose][age][symptom] + + stats[name][dose][age][symptom]; + totalCount = + VAX_COUNTS[name][dose][age] + stats[name][dose][age].count; + } else { + symptomCount = + VAX_RESULTS[name][age][symptom] + stats[name][age][symptom]; + totalCount = VAX_COUNTS[name][age] + stats[name][age].count; + } + } else { + symptomCount = VAX_RESULTS[name][dose][age][symptom]; + totalCount = VAX_COUNTS[name][dose][age]; + } + return Math.ceil((symptomCount / totalCount) * 10); + default: + return 1; + } + }; + getSampleSize = () => { + const { dataSource, name, dose, age, stats } = this.state; + switch (dataSource) { + case DATA_CHOICES.FDA: + if (!!dose) { + return VAX_COUNTS[name][dose][age]; + } else { + return VAX_COUNTS[name][age]; + } + case DATA_CHOICES.VNM: + if (Object.keys(stats).length > 0) { + if (!!dose) { + return stats[name][dose][age].count; + } else { + return stats[name][age].count; + } + } else { + return 0; + } + case DATA_CHOICES.VNM_FDA: + let totalCount = 0; + if (Object.keys(stats).length > 0) { + if (!!dose) { + totalCount = + VAX_COUNTS[name][dose][age] + stats[name][dose][age].count; + } else { + totalCount = VAX_COUNTS[name][age] + stats[name][age].count; + } + } else { + totalCount = VAX_COUNTS[name][dose][age]; + } + return totalCount; + default: + return 0; + } + }; + render() { + const { + name, + dose, + age, + showInputPopup, + loading, + fetchedResult, + dataSource, + loadingMessage, + stats, + } = this.state; + let result = {}; + let resultAtSite = {}; + if (this.shouldShowResults()) { + result = Object.assign({}, this.getResults()); + Object.keys(result).forEach((s) => { + if (s.includes("AT SITE")) { + resultAtSite[s] = result[s]; + delete result[s]; + } + }); + } + return ( +
+
+
+
+
+
+
+ Getting vaccinated? +
+

+ Find out what to expect. +

+
+
+
+ {loading ? ( +
+

+ {loadingMessage} +

+
+
+
+
+ ) : null} + {!loading ? ( +
+

+ Select Vaccine +

+
+ {Object.values(VAX_NAMES).map((v) => ( + + ))} +
+
+ ) : null} + {this.shouldShowDoses() ? ( +
+

+ Select Dose +

+
+ {Object.values(VAX_DOSES).map((v) => ( + + ))} +
+
+ ) : null} + + {this.shouldShowAgeGroup() ? ( +
+

+ Select Age Group +

+
+ {Object.values(VAX_AGES[name]).map((v) => ( + + ))} +
+
+ ) : null} + + {this.shouldShowResults() ? ( +
+
+

Here's what to expect.

+
+ Share ↗ +
+
+ Download Chart ↗ +
+
+
+
+ Use data from: +
+ +
+ Based on + {` ${this.getSampleSize() + .toString() + .replace(/\B(?=(\d{3})+(?!\d))/g, ",")} `} + individual experiences +
+ {Object.keys(stats).length < 1 ? ( +
+ Failed to get stats from Vax&Me +
+ ) : null} +
+
+ ) : null} + + {this.shouldShowResults() ? ( +
+ {/*
ⓘ
*/} +
+
+ NET EFFICACY +
+

+ {VAX_EFFICACY[name][age]}% +

+
+ of vaccine trial participants who took the {name}{" "} + vaccine (in the {age} age group) did not get COVID-19 +
+
+ See Data Sources ↗ +
+
+ + What is efficacy? ↗ + +
+
+
+ ) : null} + + {this.shouldShowResults() ? ( +
+ {Object.keys(resultAtSite).map((symptom) => ( +
+ {ICONS[symptom]} +

+ {symptom} +

+

+ {this.getStatForSymptom(symptom)}/10 +

+
+ ))} + {Object.keys(result).map((symptom) => ( +
+ {ICONS[symptom]} +

+ {symptom} +

+

+ {this.getStatForSymptom(symptom)}/10 +

+
+ ))} +
+ ) : null} +
+ {this.shouldShowResults() ? ( +
+
this.setState({ showInputPopup: !showInputPopup })} + > +
+
+ Already vaxxed? +
+

+ Tell us how it went. +

+
+ +
+ {showInputPopup ? ( +
+

+ I am in age group {age} and got the + {name} vaccine. I experienced: +

+ {this.shouldShowDoses() + ? Object.keys(VAX_DOSES).map((dose) => + this.getAnswerOptions(VAX_DOSES[dose]) + ) + : this.getAnswerOptions()} +
+

+ You can comeback and update your experience at any time! +

+

+ (Just use the same device) +

+
+
+ ) : null} + {showInputPopup ? ( +
+ SUBMIT +
+ ) : null} +
+ ) : null} +
+ ); + } +} + +ReactDOM.render( + + + , + document.querySelector("#root") +); diff --git a/large.css b/large.css new file mode 100644 index 0000000..9913a9f --- /dev/null +++ b/large.css @@ -0,0 +1,30 @@ +body { + padding: 15rem; + padding-top: 10rem; + height: calc(100vh - 10rem); +} + +.logo { + width: 10rem; + height: 10rem; +} +.symptom { + max-width: 25rem; + height: 25rem; +} + +footer { + padding: 5rem 15rem; + width: calc(100vw - 30rem); + margin-left: -15rem; +} +.input-popup { + height: 10rem; +} +.input-popup.expanded { + height: 55vh; +} + +.loading-bar-container { + max-width: 35%; +} diff --git a/logo512.png b/logo512.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa8e237bd8637f34523891f8ebd1f52cebd36cf GIT binary patch literal 13917 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..201170f --- /dev/null +++ b/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "Vax&Me", + "name": "Vax And Me", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/medium.css b/medium.css new file mode 100644 index 0000000..d55f661 --- /dev/null +++ b/medium.css @@ -0,0 +1,135 @@ +body { + padding: 7.5rem; + padding-top: 5rem; + height: calc(100vh - 5rem); +} + +.logo-container { + flex-direction: row; + align-items: center; + justify-content: flex-start; +} +.logo { + width: 7.5rem; + height: 7.5rem; +} +.logo-text-container { + margin-top: 0; + margin-left: 1.5rem; + border-left: 1px solid var(--color-secondary); + padding-left: 1.5rem; +} +.intro .overline { + font-size: 3rem; +} +.intro .subheader { + font-size: 4rem; +} + +.header { + font-size: 15rem; + letter-spacing: 1.5rem; +} + +.overline[data-button] { + display: inline-block; +} +.overline[data-button]:not(:first-of-type) { + margin-left: 1.5rem; +} + +.symptom { + width: 100%; + max-width: 20rem; + height: 20rem; + display: inline-flex; + margin-bottom: 0.75rem; +} +.symptom-emoji { + font-size: 3.5rem; + padding: 0.75rem; +} +.symptom-name { + font-size: 2.5rem; + text-align: center; +} +.symptom-chance { + font-size: 2.4rem; + text-align: center; +} +.symptom-chance:before { + font-size: 1.5rem; +} +.symptom-chance:after { + font-size: 1.5rem; +} +.symptom.at-site:first-of-type { + border-radius: 0; + border-top-left-radius: 1rem; + border-bottom-left-radius: 1rem; +} +.symptom.at-site:nth-of-type(3) { + border-radius: 0; + border-top-right-radius: 1rem; + border-bottom-right-radius: 1rem; +} + +footer { + padding: 5rem 7.5rem; + width: calc(100vw - 15rem); + margin-left: -7.5rem; +} +.link-container { + font-size: 1.7rem; + flex-direction: row; +} +.link-container > div { + flex-direction: column; + flex: 1; +} +.link-container > div:not(:first-of-type) { + margin-left: 3rem; + margin-top: 0; +} + +.input-popup { + height: 10rem; +} + +.input-popup.expanded { + height: 55vh; +} + +.loading-bar-container { + max-width: 50%; +} + +.tip-container .overline[data-button] { + margin-top: 2rem; + margin-left: 0; +} +.tip-container .overline[data-button]:last-of-type { + margin-left: 1.2rem; +} +.tip { + padding-left: 2rem; +} + +.result-header-container { + flex-direction: row; +} + +.result-header-container .symptom-container { + width: fit-content; +} + +.result-header-select { + margin-top: 0rem; + width: fit-content; + padding-left: 3rem; + border-left: 1px solid var(--color-secondary); +} + +.result-header-select select { + width: fit-content; +} diff --git a/small.css b/small.css new file mode 100644 index 0000000..9d1a25d --- /dev/null +++ b/small.css @@ -0,0 +1,7 @@ +.input-popup { + height: 11.5rem; +} + +.input-popup.expanded { + height: 85vh; +} diff --git a/smallmedium.css b/smallmedium.css new file mode 100644 index 0000000..19d457d --- /dev/null +++ b/smallmedium.css @@ -0,0 +1,7 @@ +.input-popup { + height: 11rem; +} + +.input-popup.expanded { + height: 65vh; +} diff --git a/variables-dark.css b/variables-dark.css new file mode 100644 index 0000000..19b0da5 --- /dev/null +++ b/variables-dark.css @@ -0,0 +1,9 @@ +:root { + --color-primary: black; + --color-secondary: white; + --color-secondary-light: rgb(185, 185, 185); + --color-tertiary: rgb(105, 105, 105); + --color-bright: #636363; + --color-dim: #352f2f; + font-size: 10px; +} diff --git a/variables.css b/variables.css new file mode 100644 index 0000000..a013437 --- /dev/null +++ b/variables.css @@ -0,0 +1,9 @@ +:root { + --color-primary: white; + --color-secondary: black; + --color-secondary-light: rgb(56, 56, 56); + --color-tertiary: rgba(185, 185, 185, 0.459); + --color-bright: #575757; + --color-dim: #aeadb0; + font-size: 10px; +}