{"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":""}