{"version":3,"sources":["webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/privacy_policy/index.tsx"],"names":["messages","defineMessages","title","id","defaultMessage","PrivacyPolicy","_ref","multiColumn","intl","useIntl","response","setResponse","useState","loading","setLoading","useEffect","apiGetPrivacyPolicy","then","data","catch","_jsx","Column","bindToDocument","label","formatMessage","className","FormattedMessage","values","date","Skeleton","width","FormattedDate","value","updated_at","year","month","day","dangerouslySetInnerHTML","__html","content","Helmet","name"],"mappings":"mLAgBA,MAAMA,EAAWC,YAAe,CAC9BC,MAAO,CAAEC,GAAG,uBAAyBC,eAAe,oBAwEvCC,UAnEVC,IAAsB,IAArB,YAAEC,GAAaD,EACnB,MAAME,EAAOC,eACNC,EAAUC,GAAeC,sBACzBC,EAASC,GAAcF,oBAAS,GAcvC,OAZAG,qBAAU,KACRC,cACGC,MAAMC,IACLP,EAAYO,GACZJ,GAAW,GACJ,MAERK,OAAM,KACLL,GAAW,EAAM,GACjB,GACH,IAGDM,YAACC,IAAM,CACLC,gBAAiBf,EACjBgB,MAAOf,EAAKgB,cAAcxB,EAASE,aAAO,EAE1CkB,YAAA,OAAKK,UAAU,kCAA2B,EACxCL,YAAA,OAAKK,UAAU,qBAAc,EAC3BL,YAAA,eACEA,YAACM,IAAgB,CACfvB,GAAE,uBACFC,eAAe,oBAGnBgB,YAAA,cACEA,YAACM,IAAgB,CACfvB,GAAE,8BACFC,eAAe,sBACfuB,OAAQ,CACNC,KAAMf,EACJO,YAACS,IAAQ,CAACC,MAAM,SAEhBV,YAACW,IAAa,CACZC,MAAOtB,aAAQ,EAARA,EAAUuB,WACjBC,KAAK,UACLC,MAAM,QACNC,IAAI,iBAQf1B,GACCU,YAAA,OACEK,UAAU,6BACVY,wBAAyB,CAAEC,OAAQ5B,EAAS6B,YAKlDnB,YAACoB,IAAM,UACLpB,YAAA,kBAAQZ,EAAKgB,cAAcxB,EAASE,QACpCkB,YAAA,QAAMqB,KAAK,SAASF,QAAQ,SAEvB,C","file":"js/features/glitch/async/privacy_policy-8273b96c4187be9c8bd1.chunk.js","sourcesContent":["import { useState, useEffect } from 'react';\n\nimport {\n  FormattedMessage,\n  FormattedDate,\n  useIntl,\n  defineMessages,\n} from 'react-intl';\n\nimport { Helmet } from 'react-helmet';\n\nimport { apiGetPrivacyPolicy } from 'flavours/glitch/api/instance';\nimport type { ApiPrivacyPolicyJSON } from 'flavours/glitch/api_types/instance';\nimport { Column } from 'flavours/glitch/components/column';\nimport { Skeleton } from 'flavours/glitch/components/skeleton';\n\nconst messages = defineMessages({\n  title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' },\n});\n\nconst PrivacyPolicy: React.FC<{\n  multiColumn: boolean;\n}> = ({ multiColumn }) => {\n  const intl = useIntl();\n  const [response, setResponse] = useState<ApiPrivacyPolicyJSON>();\n  const [loading, setLoading] = useState(true);\n\n  useEffect(() => {\n    apiGetPrivacyPolicy()\n      .then((data) => {\n        setResponse(data);\n        setLoading(false);\n        return '';\n      })\n      .catch(() => {\n        setLoading(false);\n      });\n  }, []);\n\n  return (\n    <Column\n      bindToDocument={!multiColumn}\n      label={intl.formatMessage(messages.title)}\n    >\n      <div className='scrollable privacy-policy'>\n        <div className='column-title'>\n          <h3>\n            <FormattedMessage\n              id='privacy_policy.title'\n              defaultMessage='Privacy Policy'\n            />\n          </h3>\n          <p>\n            <FormattedMessage\n              id='privacy_policy.last_updated'\n              defaultMessage='Last updated {date}'\n              values={{\n                date: loading ? (\n                  <Skeleton width='10ch' />\n                ) : (\n                  <FormattedDate\n                    value={response?.updated_at}\n                    year='numeric'\n                    month='short'\n                    day='2-digit'\n                  />\n                ),\n              }}\n            />\n          </p>\n        </div>\n\n        {response && (\n          <div\n            className='privacy-policy__body prose'\n            dangerouslySetInnerHTML={{ __html: response.content }}\n          />\n        )}\n      </div>\n\n      <Helmet>\n        <title>{intl.formatMessage(messages.title)}</title>\n        <meta name='robots' content='all' />\n      </Helmet>\n    </Column>\n  );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default PrivacyPolicy;\n"],"sourceRoot":""}