{"version":3,"file":"static/chunks/2960-3d63f08079228263b624.js","mappings":"uOAwBMA,EAAUC,IAAAA,wBACVC,EAAYD,IAAAA,0BAELE,EAAa,SAACC,GAA2B,MAC5CC,EAAUC,GAAAA,CAAWL,IAAAA,eAAuBG,EAAMG,UAAWH,EAAMC,SAA/C,eACrBL,EAAUI,EAAMJ,UADK,SAErBE,EAAYE,EAAMF,WAFG,IAIpBM,EAAKJ,EAAMK,IAAML,EAAMM,KACzBA,EAAOF,EACPG,IAAAA,WAAaH,EAAI,cACjBE,EAAO,wBACAC,IAAAA,WAAaH,EAAI,YACxBE,EAAO,kBACAC,IAAAA,WAAaH,EAAI,SACxBE,EAAO,eAGX,IAAIE,EAAUR,EAAMQ,QAEpB,OAAKA,GAOD,cAAGL,UAAWF,EAASO,QAASA,EAASF,KAAMF,EAAIK,OAAQT,EAAMS,OAAjE,SACKT,EAAMU,YAPJ,SAAC,UAAD,CAAMJ,KAAMA,EAAMF,GAAIA,EAAtB,UACH,cAAGE,KAAMA,EAAMH,UAAWF,EAASQ,OAAQT,EAAMS,OAAjD,SACHT,EAAMU,cAUf,O,qKCQA,MArDA,SAAkBC,EAAcC,GAC5B,OAA0BC,EAAAA,EAAAA,UAAS,IAA5BC,EAAP,KAAcC,EAAd,KACA,GAAgCF,EAAAA,EAAAA,UAAS,IAAlCG,EAAP,KAAiBC,EAAjB,KACA,GAA0BJ,EAAAA,EAAAA,UAAsB,MAAzCK,EAAP,KAAcC,EAAd,KACA,GAAkCN,EAAAA,EAAAA,WAAS,GAApCO,EAAP,KAAkBC,EAAlB,KAyCA,MAAO,CACHC,SAvCa,SAACC,GACd,OAAQA,EAAEC,cAAcC,MACxB,IAAK,QACDV,EAASQ,EAAEC,cAAcE,OACzB,MACJ,IAAK,WACDT,EAAYM,EAAEC,cAAcE,SAkChCC,SA7BU,mCAAG,WAAOJ,GAAP,8EACbA,EAAEK,iBAEFP,GAAa,GACbF,EAAS,MAJI,SAMKR,EAAMkB,MAAM,CAC1Bf,MAAOA,EACPE,SAAUA,IARD,UAMPc,EANO,OAWbT,GAAa,IAETS,EAbS,wBAcTX,EAASW,GAdA,2BAkBZC,OAAeC,IAAI,OAAQ,gBAAkB,CAC1CC,GAAItB,EAAMuB,KAAKpB,QAGfF,GACAA,IAvBS,4CAAH,sDA8BVM,MAAAA,EACAE,UAAAA,I,mBCAR,EA7CyB,SAACpB,GACtB,MAAiDmC,EAASnC,EAAMW,MAAOX,EAAMY,gBAArEU,EAAR,EAAQA,SAAUK,EAAlB,EAAkBA,SAAUP,EAA5B,EAA4BA,UAAWF,EAAvC,EAAuCA,MAEvC,OACI,iBAAKf,UAAWN,IAAAA,cAAhB,WACI,SAACuC,EAAA,EAAD,IAEClB,IACG,wBAAG,iBAAMf,UAAU,aAAhB,SAA8Be,EAAMmB,aAG3C,SAACtC,EAAA,EAAD,CAAYD,WAAS,EAACO,GAAG,4BAAzB,kCAIA,kBAAMsB,SAAUA,EAAhB,WACI,SAACW,EAAA,EAAD,CACIb,KAAK,QACLH,SAAUA,EACViB,YAAY,QACZC,KAAK,sBAET,SAACF,EAAA,EAAD,CACIb,KAAK,WACLgB,KAAK,WACLnB,SAAUA,EACViB,YAAY,WACZC,KAAK,0BAET,wBACI,SAACzC,EAAA,EAAD,CAAYM,GAAG,4BAAf,+BAKJ,SAACqC,EAAA,EAAD,CAAQC,MAAM,SAASC,WAAYxB,QAEhD,mBACA,eAAIyB,MAAO,CAACC,MAAO,cACnB,mBACA,SAAC,IAAD,S,2EC8CH,IA7Fa,SAAC9C,GACZ,OACE,iBAAKG,UAAWD,GAAAA,CAAW,OAAQF,EAAMC,SAAU8C,QAAQ,MAAMC,QAAQ,iBAAiBC,iBAAiB,sBAA3G,WACF,wBACA,eAAGC,UAAU,iEAAb,WACI,2BACE,4BAAgBC,GAAG,eAAeC,GAAG,KAAKC,GAAG,OAAOC,GAAG,KAAKC,GAAG,KAA/D,WACE,iBAAOC,OAAO,SAASC,UAAU,aACjC,iBAAOD,OAAO,SAASC,UAAU,aACjC,iBAAOD,OAAO,QAAQC,UAAU,aAChC,iBAAOD,OAAO,SAASC,UAAU,aACjC,iBAAOD,OAAO,IAAIC,UAAU,kBAGpC,iBAAMC,KAAK,UAAUvD,UAAU,YAAYwD,EAAE,oRAM/C,0BACC,iBAAMD,KAAK,UAAUC,EAAE,6FACvB,iBAAMD,KAAK,UAAUC,EAAE,iEACvB,iBAAMD,KAAK,UAAUC,EAAE,0KAEvB,iBAAMD,KAAK,UAAUC,EAAE,qJAEvB,iBAAMD,KAAK,UAAUC,EAAE,qrBAOxB,0BACC,iBAAMD,KAAK,UAAUC,EAAE,wDACvB,iBAAMD,KAAK,UAAUC,EAAE,ooCAUvB,iBAAMD,KAAK,UAAUC,EAAE,ovBAOvB,iBAAMD,KAAK,UAAUC,EAAE,kuBAOvB,iBAAMD,KAAK,UAAUC,EAAE,iuBAOvB,iBAAMD,KAAK,UAAUC,EAAE,8nCAUvB,iBAAMD,KAAK,UAAUC,EAAE,6RAGvB,iBAAMD,KAAK,UAAUC,EAAE,yvB,0IC/EXvB,EAAgB,SAACpC,GAC5B,OACE,gBAAKG,UAAWD,GAAAA,CAAWL,IAAAA,kBAA0BG,EAAMC,SAA3D,UACE,SAAC,IAAD,CAAMA,QAAS,CAACJ,IAAAA,WAKtB,O,6HCdM+D,EAAO,WACRC,aAAaC,KAChB/B,OAAOgC,SAASzD,KAAO,aAEvByB,OAAOgC,SAASzD,KAAO,+BAInB0D,EAAY9D,GAAAA,CAAWL,IAAAA,SAAoBA,IAAAA,uBAGpCoE,GAFI/D,GAAAA,CAAWL,IAAAA,SAAoBA,IAAAA,qBAExB,kBACvB,mBAAQW,QAASoD,EAAMzD,UAAW6D,EAAlC,uC,6GCFYtB,EAAS,SAAC1C,GACnB,OACI,kBAAOG,UAAWN,IAAAA,OAAe4C,KAAK,SAASyB,SAAUlE,EAAM4C,WAAYlB,MAAO1B,EAAM2C,OAAS,UAIzG,O,4pBCqCA,IA3BkB,SAAC3C,GACf,IAAMmE,EAAkB,CACpB1C,KAAMzB,EAAMyB,KACZgB,KAAMzC,EAAMyC,MAAQ,OACpB2B,aAAcpE,EAAMoE,aACpB7B,YAAavC,EAAMuC,YACnB2B,SAAUlE,EAAMkE,SAChBG,SAAUrE,EAAMqE,SAChB/C,SAAUtB,EAAMsB,SAChBgD,aAActE,EAAMuE,WAAa,WAAQC,EACzCC,YAAazE,EAAM0E,UAAY,WAAQF,EACvCG,eAAgB3E,EAAM4E,aAAe,WAAQJ,GAMjD,OAJIxE,EAAM0B,QACNyC,EAAWzC,MAAQ1B,EAAM0B,QAIzB,iCACI,oBAAOyB,GAAInD,EAAMyB,KAAMtB,UAAWN,IAAAA,eAAsDsE,GAAxF,UAAgEnE,EAAMyB,KAAtE,YACA,kBAAOtB,UAAWN,IAAAA,oBAAwDgF,QAAS7E,EAAMyB,KAAzF,SACKzB,EAAMwC,MADX,UAAsDxC,EAAMyB,KAA5D,gB,iBCjDZqD,EAAOC,QAAU,CAAC,cAAc,gCAAgC,uBAAuB,yCAAyC,yBAAyB,6C,gBCAzJD,EAAOC,QAAU,CAAC,aAAa,8BAA8B,iBAAiB,kCAAkC,sBAAsB,uCAAuC,WAAW,8B,iBCAxLD,EAAOC,QAAU,CAAC,iBAAiB,sCAAsC,KAAO,4BAA4B,eAAe,oCAAoC,iBAAiB,wC,iBCAhLD,EAAOC,QAAU,CAAC,SAAW,uBAAuB,qBAAqB,iCAAiC,mBAAmB,iC,iBCA7HD,EAAOC,QAAU,CAAC,MAAQ,sBAAsB,OAAS,uBAAuB,SAAW,yBAAyB,aAAa,2BAA2B,cAAgB,gC,iBCA5KD,EAAOC,QAAU,CAAC,aAAa,8BAA8B,mBAAmB","sources":["webpack://_N_E/./src/components/ActionLink/index.tsx","webpack://_N_E/./src/hooks/useLogin.ts","webpack://_N_E/./src/components/LoginForm/index.tsx","webpack://_N_E/./src/components/Logo/index.tsx","webpack://_N_E/./src/components/LogoContainer/index.tsx","webpack://_N_E/./src/components/OIDC/index.tsx","webpack://_N_E/./src/components/Submit/index.tsx","webpack://_N_E/./src/components/TextInput/index.tsx","webpack://_N_E/./src/components/ActionLink/ActionLink.module.scss","webpack://_N_E/./src/components/LoginForm/LoginForm.module.scss","webpack://_N_E/./src/components/LogoContainer/LogoContainer.module.scss","webpack://_N_E/./src/components/OIDC/OIDC.module.scss","webpack://_N_E/./src/components/Submit/Submit.module.scss","webpack://_N_E/./src/components/TextInput/TextInput.module.scss"],"sourcesContent":["import _ from \"lodash\";\nimport styles from \"./ActionLink.module.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport Link from \"next/link\";\n\nexport interface ActionLinkProps {\n /** The content of the link */\n children: string | JSX.Element | (string | JSX.Element)[];\n /** Additional class to add to the element */\n className?: string;\n href?: string;\n to?: string;\n /** _blank to open another tab */\n target?: string;\n /** Style this link as the default action to take */\n primary?: boolean;\n /** Style this link as an alternative action to take */\n secondary?: boolean;\n /** Click handler */\n onClick?: () => void;\n classes?: string[];\n}\n\nconst primary = styles[\"action-link--primary\"];\nconst secondary = styles[\"action-link--secondary\"];\n\nexport const ActionLink = (props: ActionLinkProps) => {\n const classes = classnames(styles[\"action-link\"], props.className, props.classes, {\n [primary]: props.primary,\n [secondary]: props.secondary,\n });\n const as = props.to || props.href;\n let href = as;\n if (_.startsWith(as, \"/dashboard\")) {\n href = \"/dashboard/[[...all]]\";\n } else if (_.startsWith(as, \"/gallery\")) {\n href = \"/dashboard/[id]\";\n } else if (_.startsWith(as, \"/up\")) {\n href = \"/up/[token]\";\n }\n\n let onClick = props.onClick;\n\n if (!onClick) {\n return \n \n {props.children}\n }\n\n return (\n \n {props.children}\n \n );\n};\n\nexport default ActionLink;\n","import * as _ from \"lodash\";\nimport { useState } from \"react\";\nimport World from \"../world\";\nimport { MaybeAPIErr } from \"../api\";\n\ntype LoginHook = {\n onChange: (e: React.FormEvent) => void;\n onSubmit: (e: React.FormEvent) => Promise;\n error: MaybeAPIErr;\n isPending: boolean;\n}\n\nfunction useLogin(world: World, onLoginSuccess?: () => void): LoginHook {\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState(null);\n const [isPending, setIsPending] = useState(false);\n\n\n const onChange = (e: React.FormEvent) => {\n switch (e.currentTarget.name) {\n case \"email\":\n setEmail(e.currentTarget.value);\n break;\n case \"password\":\n setPassword(e.currentTarget.value);\n break;\n }\n }\n\n const onSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n setIsPending(true);\n setError(null);\n\n const err = await world.login({\n email: email,\n password: password,\n });\n\n setIsPending(false);\n\n if (err) {\n setError(err);\n return;\n }\n\n (window as any).fbq(\"init\", 1857456867824784, {\n em: world.host.email,\n });\n\n if (onLoginSuccess) {\n onLoginSuccess();\n }\n }\n\n return {\n onChange,\n onSubmit,\n error,\n isPending,\n };\n}\n\nexport default useLogin;\n","import * as React from \"react\";\n\nimport styles from \"./LoginForm.module.scss\";\nimport { LogoContainer } from \"../LogoContainer\"\nimport { ActionLink } from \"../ActionLink\"\nimport TextInput from \"../TextInput\"\nimport { Submit } from \"../Submit\"\nimport useLogin from \"../../hooks/useLogin\";\nimport World from \"../../world\";\nimport { Facebook } from \"../OIDC\";\n\ntype Props = {\n world: World;\n onLoginSuccess?: () => void;\n}\n\nexport const LoginForm = (props: Props) => {\n const { onChange, onSubmit, isPending, error } = useLogin(props.world, props.onLoginSuccess);\n\n return (\n
\n \n\n {error && (\n

{error.message}

\n )}\n\n \n No Account? Sign Up\n \n\n
\n \n\n \n\n

\n \n Reset Password\n \n

\n\n \n \n\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\n
\n );\n};\n\nexport default LoginForm;\n","import \"./Logo.module.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\n\n/** Logo properties. */\ntype Props = {\n classes?: string[];\n}\n\nconst Logo = (props: Props) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\t\n\t\n\t\n\t\n\t\n\n\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n \n )\n}\n\nexport default Logo;\n","import styles from \"./LogoContainer.module.scss\";\nimport * as React from \"react\";\nimport classnames from \"classnames\";\n\nimport Logo from \"../Logo\";\n\ntype Props = {\n classes?: string[];\n};\n\nexport const LogoContainer = (props: Props) => {\n return (\n
\n \n
\n )\n}\n\nexport default LogoContainer\n","import React from \"react\";\nimport styles from \"./OIDC.module.scss\";\nimport classnames from \"classnames\";\n\nconst onFB = () => {\n\tif (localStorage.auth) {\n\t\twindow.location.href = \"/dashboard\";\n\t} else {\n\t\twindow.location.href = \"/api/continue-with-facebook\"\n\t}\n}\n\nconst fbclasses = classnames(styles[\"loginBtn\"], styles[\"loginBtn--facebook\"]);\nconst gclasses = classnames(styles[\"loginBtn\"], styles[\"loginBtn--google\"]);\n\nexport const Facebook = () => (\n\t\n);\n\nexport const Google = () => (\n\t\n);\n","import styles from \"./Submit.module.scss\";\nimport * as React from \"react\";\n\n/**\n * Note that there is no onSubmit handler. This component should be embedded in\n * a Form with an onSubmit handler.\n */\nexport interface SubmitProps {\n /** Label defaults to \"Save\" if not set */\n label?: string;\n /** Disable and apply animation */\n is_pending?: boolean;\n}\n\nexport const Submit = (props: SubmitProps) => {\n return (\n \n )\n};\n\nexport default Submit;\n","import React from \"react\";\nimport styles from \"./TextInput.module.scss\";\n\nexport interface Props {\n /** DOM attribute name */\n name: string;\n /** Shown on focus */\n help: string;\n /** Defaults to text */\n type?: string;\n /** Initial DOM attribute value */\n defaultValue?: string;\n /** DOM attribute placeholder */\n placeholder?: string;\n /** Flag to set DOM attribute disabled */\n disabled?: boolean;\n /** Flag to set DOM attribute required (enforced by modern browsers, ignored by others) */\n required?: boolean;\n /** Flag to set DOM attribute autocomplete=\"off\" */\n nocomplete?: boolean;\n /** Flag to set DOM attribute autoCorrect=\"off\" */\n nocorrect?: boolean;\n /** Flag to set DOM attribute autoCapitalize=\"off\" */\n nocapitalize?: boolean;\n\n /** Value change handler - the only way to get the value of the input */\n onChange: (e: any) => void;\n value?: string;\n}\n\nconst TextInput = (props: Props) => {\n const inputProps: any = {\n name: props.name,\n type: props.type || \"text\",\n defaultValue: props.defaultValue,\n placeholder: props.placeholder,\n disabled: props.disabled,\n required: props.required,\n onChange: props.onChange,\n autoComplete: props.nocomplete ? \"off\" : undefined,\n autoCorrect: props.nocorrect ? \"off\" : undefined,\n autoCapitalize: props.nocapitalize ? \"off\" : undefined,\n };\n if (props.value) {\n inputProps.value = props.value;\n }\n\n return (\n <>\n \n \n \n );\n};\n\nexport default TextInput;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"action-link\":\"ActionLink_action-link__2bUwh\",\"action-link--primary\":\"ActionLink_action-link--primary__3gBB8\",\"action-link--secondary\":\"ActionLink_action-link--secondary__1fTE0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"login-form\":\"LoginForm_login-form__14E2f\",\"logo-container\":\"LoginForm_logo-container__3J4hM\",\"create-account-link\":\"LoginForm_create-account-link__2Daxq\",\"login-or\":\"LoginForm_login-or__2WfcJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"logo-container\":\"LogoContainer_logo-container__2XiSF\",\"logo\":\"LogoContainer_logo__1XZVL\",\"logo-primary\":\"LogoContainer_logo-primary__2aSKU\",\"logo-secondary\":\"LogoContainer_logo-secondary__3GqDn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginBtn\":\"OIDC_loginBtn__15B6V\",\"loginBtn--facebook\":\"OIDC_loginBtn--facebook__3uq1J\",\"loginBtn--google\":\"OIDC_loginBtn--google__LETQb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"Submit_input__3rP65\",\"submit\":\"Submit_submit__htdws\",\"fullform\":\"Submit_fullform__2Rb7t\",\"form-error\":\"Submit_form-error__wgKlZ\",\"AnimationName\":\"Submit_AnimationName__wWShR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text-input\":\"TextInput_text-input__1uGQb\",\"text-input-label\":\"TextInput_text-input-label__YIAxu\"};"],"names":["primary","styles","secondary","ActionLink","props","classes","classnames","className","as","to","href","_","onClick","target","children","world","onLoginSuccess","useState","email","setEmail","password","setPassword","error","setError","isPending","setIsPending","onChange","e","currentTarget","name","value","onSubmit","preventDefault","login","err","window","fbq","em","host","useLogin","LogoContainer","message","TextInput","placeholder","help","type","Submit","label","is_pending","style","color","version","viewBox","enableBackground","transform","id","x1","y1","x2","y2","offset","stopColor","fill","d","onFB","localStorage","auth","location","fbclasses","Facebook","disabled","inputProps","defaultValue","required","autoComplete","nocomplete","undefined","autoCorrect","nocorrect","autoCapitalize","nocapitalize","htmlFor","module","exports"],"sourceRoot":""}