Make squeak card open new tab (#2001)

* Got ctrl-click working on squeak card

* Got ctrl-click working on profile card

* Improve html for squeak card

* Make squeak hash a clickable link in payments page

* Update frontend build
This commit is contained in:
Jonathan Zernik 2022-03-15 19:11:26 -07:00 committed by GitHub
parent a8a67ce712
commit 6dbd4982ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 175 additions and 201 deletions

View file

@ -97,11 +97,10 @@
color: rgb(29, 161, 242);
}
.search-result-wapper{
.payment-wapper{
border-bottom: 1px solid rgb(230, 236, 240);
padding: 10px 15px;
transition: 0.2s;
cursor: pointer;
display: flex;
&:hover{
background-color: rgb(245,248,250);

View file

@ -51,10 +51,6 @@ const SqueakCard = React.memo(function SqueakCard(props) {
dispatch(setDeleteSqueak(id));
}
const goToSqueak = (id) => {
props.history.push(`/app/squeak/${id}`)
}
const toggleModal = (e, type) => {
if(e){ e.stopPropagation() }
setStyleBody(!styleBody)
@ -99,7 +95,7 @@ const SqueakCard = React.memo(function SqueakCard(props) {
return (
<div>
<div onClick={()=>goToSqueak(props.id)} key={props.id} className={props.squeak ? "Squeak-card-wrapper" : "Squeak-card-wrapper missing-squeak"} >
<Link onClick={(e)=>e.stopPropagation()} to={`/app/squeak/${props.id}`} key={props.id} className={props.squeak ? "Squeak-card-wrapper" : "Squeak-card-wrapper missing-squeak"} >
{props.squeak ?
<>
@ -189,7 +185,7 @@ const SqueakCard = React.memo(function SqueakCard(props) {
</>
}
</div>
</Link>
{/* squeak modal */}
{props.squeak ?
@ -209,6 +205,8 @@ const SqueakCard = React.memo(function SqueakCard(props) {
</div>
</div> : null}
</div> : null}
</div>
)
});

View file

@ -1,7 +1,7 @@
import React, { useEffect } from 'react'
import { useSelector } from 'react-redux'
import { useDispatch } from 'react-redux'
import { withRouter } from 'react-router-dom'
import { Link, withRouter } from 'react-router-dom'
import moment from 'moment'
import SqueakCard from '../../components/SqueakCard'
@ -45,12 +45,12 @@ const ReceivedPayments = (props) => {
}
const renderedListItems = receivedPayments.map(f=>{
return <div onClick={()=>goToSqueak(f.getSqueakHash())} key={f.getPaymentHash()} className="search-result-wapper">
return <div key={f.getPaymentHash()} className="payment-wapper">
<div className="search-user-details">
<div className="search-user-warp">
<div className="search-user-info">
<div className="payment-price">{f.getPriceMsat() / 1000} sats</div>
<div className="payment-squeak-hash"><b>Squeak Hash</b>: {f.getSqueakHash()}</div>
<div className="payment-squeak-hash"><b>Squeak Hash</b>: <Link style={{color: "blue", fontWeight: 'bold'}} to={`/app/squeak/${f.getSqueakHash()}`}>{f.getSqueakHash()}</Link></div>
<div className="payment-peer-address"><b>Peer</b>: {f.getPeerAddress().getHost()}:{f.getPeerAddress().getPort()}</div>
<div className="payment-time">{moment(f.getTimeMs()).format("h:mm A · MMM D, YYYY")}</div>
</div>

View file

@ -1,7 +1,7 @@
import React, { useEffect } from 'react'
import { useSelector } from 'react-redux'
import { useDispatch } from 'react-redux'
import { withRouter } from 'react-router-dom'
import { Link, withRouter } from 'react-router-dom'
import moment from 'moment'
import SqueakCard from '../../components/SqueakCard'
@ -45,12 +45,12 @@ const SentPayments = (props) => {
}
const renderedListItems = sentPayments.map(f=>{
return <div onClick={()=>goToSqueak(f.getSqueakHash())} key={f.getPaymentHash()} className="search-result-wapper">
return <div key={f.getPaymentHash()} className="payment-wapper">
<div className="search-user-details">
<div className="search-user-warp">
<div className="search-user-info">
<div className="payment-price">{f.getPriceMsat() / 1000} sats</div>
<div className="payment-squeak-hash"><b>Squeak Hash</b>: {f.getSqueakHash()}</div>
<div className="payment-squeak-hash"><b>Squeak Hash</b>: <Link style={{color: "blue", fontWeight: 'bold'}} to={`/app/squeak/${f.getSqueakHash()}`}>{f.getSqueakHash()}</Link></div>
<div className="payment-peer-address"><b>Peer</b>: {f.getPeerAddress().getHost()}:{f.getPeerAddress().getPort()}</div>
<div className="payment-lightning-node"><b>Lightning Node</b>: {f.getNodePubkey()}</div>
<div className="payment-time">{moment(f.getTimeMs()).format("h:mm A · MMM D, YYYY")}</div>

View file

@ -6,7 +6,7 @@ import moment from 'moment'
import { getProfileImageSrcString } from '../../squeakimages/images';
import SqueakCard from '../../components/SqueakCard'
import ProfileCard from './ProfileCard'
import Loader from '../../components/Loader'
@ -15,8 +15,6 @@ import {
clearContactProfiles,
selectContactProfiles,
selectContactProfilesStatus,
setFollowProfile,
setUnfollowProfile,
} from './profilesSlice'
@ -32,48 +30,8 @@ const ContactProfiles = (props) => {
dispatch(fetchContactProfiles());
}, [])
const goToUser = (id) => {
props.history.push(`/app/profile/${id}`)
}
const followUser = (e, id) => {
e.stopPropagation()
console.log('Follow clicked');
dispatch(setFollowProfile(id));
}
const unfollowUser = (e,id) => {
e.stopPropagation()
console.log('Unfollow clicked');
dispatch(setUnfollowProfile(id));
}
console.log(contactProfiles);
const renderedListItems = contactProfiles.map(f=>{
return <div onClick={()=>goToUser(f.getPubkey())} key={f.getPubkey()} className="search-result-wapper">
<Link to={`/app/profile/${f.getPubkey()}`} className="search-userPic-wrapper">
<img style={{borderRadius:'50%', minWidth:'49px'}} width="100%" height="49px" src={`${getProfileImageSrcString(f)}`}/>
</Link>
<div className="search-user-details">
<div className="search-user-warp">
<div className="search-user-info">
<div className="search-user-name">{f.getProfileName()}</div>
<div className="search-user-username">@{f.getPubkey()}</div>
</div>
<div onClick={(e)=>{
f.getFollowing() ?
unfollowUser(e,f.getProfileId()) :
followUser(e,f.getProfileId())
}} className={f.getFollowing() ? "follow-btn-wrap unfollow-switch":"follow-btn-wrap"}>
<span><span>{f.getFollowing() ? 'Following' : 'Follow'}</span></span>
</div>
</div>
<div className="search-user-bio">
&nbsp;
</div>
</div>
</div>
const renderedListItems = contactProfiles.map(profile=>{
return <ProfileCard profile={profile}/>
})
return <>

View file

@ -0,0 +1,60 @@
import React, { useEffect } from 'react'
import { useSelector } from 'react-redux'
import { useDispatch } from 'react-redux'
import { withRouter, Link } from 'react-router-dom'
import moment from 'moment'
import { getProfileImageSrcString } from '../../squeakimages/images';
import SqueakCard from '../../components/SqueakCard'
import Loader from '../../components/Loader'
import {
setFollowProfile,
setUnfollowProfile,
} from './profilesSlice'
const ProfileCard = (props) => {
const profile = props.profile;
const dispatch = useDispatch();
const followUser = (e, id) => {
e.stopPropagation()
console.log('Follow clicked');
dispatch(setFollowProfile(id));
}
const unfollowUser = (e,id) => {
e.stopPropagation()
console.log('Unfollow clicked');
dispatch(setUnfollowProfile(id));
}
return <Link onClick={(e)=>e.stopPropagation()} to={`/app/profile/${profile.getPubkey()}`} key={profile.getPubkey()} className="search-result-wapper">
<div className="search-userPic-wrapper">
<img style={{borderRadius:'50%', minWidth:'49px'}} width="100%" height="49px" src={`${getProfileImageSrcString(profile)}`}/>
</div>
<div className="search-user-details">
<div className="search-user-warp">
<div className="search-user-info">
<div className="search-user-name">{profile.getProfileName()}</div>
<div className="search-user-username">@{profile.getPubkey()}</div>
</div>
<div onClick={(e)=>{
profile.getFollowing() ?
unfollowUser(e,profile.getProfileId()) :
followUser(e,profile.getProfileId())
}} className={profile.getFollowing() ? "follow-btn-wrap unfollow-switch":"follow-btn-wrap"}>
<span><span>{profile.getFollowing() ? 'Following' : 'Follow'}</span></span>
</div>
</div>
<div className="search-user-bio">
&nbsp;
</div>
</div>
</Link>
}
export default withRouter(ProfileCard)

View file

@ -6,7 +6,7 @@ import moment from 'moment'
import { getProfileImageSrcString } from '../../squeakimages/images';
import SqueakCard from '../../components/SqueakCard'
import ProfileCard from './ProfileCard'
import Loader from '../../components/Loader'
@ -15,8 +15,6 @@ import {
clearSigningProfiles,
selectSigningProfiles,
selectSigningProfilesStatus,
setFollowProfile,
setUnfollowProfile,
} from './profilesSlice'
@ -32,47 +30,8 @@ const SigningProfiles = (props) => {
dispatch(fetchSigningProfiles(null));
}, [])
const goToUser = (id) => {
props.history.push(`/app/profile/${id}`)
}
const followUser = (e, id) => {
e.stopPropagation()
console.log('Follow clicked');
dispatch(setFollowProfile(id));
}
const unfollowUser = (e,id) => {
e.stopPropagation()
console.log('Unfollow clicked');
dispatch(setUnfollowProfile(id));
}
const renderedListItems = signingProfiles.map(f=>{
return <div onClick={()=>goToUser(f.getPubkey())} key={f.getPubkey()} className="search-result-wapper">
<Link to={`/app/profile/${f.getPubkey()}`} className="search-userPic-wrapper">
<img style={{borderRadius:'50%', minWidth:'49px'}} width="100%" height="49px" src={`${getProfileImageSrcString(f)}`}/>
</Link>
<div className="search-user-details">
<div className="search-user-warp">
<div className="search-user-info">
<div className="search-user-name">{f.getProfileName()}</div>
<div className="search-user-username">@{f.getPubkey()}</div>
</div>
<div onClick={(e)=>{
f.getFollowing() ?
unfollowUser(e,f.getProfileId()) :
followUser(e,f.getProfileId())
}} className={f.getFollowing() ? "follow-btn-wrap unfollow-switch":"follow-btn-wrap"}>
<span><span>{f.getFollowing() ? 'Following' : 'Follow'}</span></span>
</div>
</div>
<div className="search-user-bio">
&nbsp;
</div>
</div>
</div>
const renderedListItems = signingProfiles.map(profile=>{
return <ProfileCard profile={profile}/>
})
return <>

View file

@ -1,35 +1,35 @@
{
"files": {
"main.css": "/static/css/main.2db21378.chunk.css",
"main.js": "/static/js/main.e2566cf0.chunk.js",
"main.js.map": "/static/js/main.e2566cf0.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.91cc567f.js",
"runtime-main.js.map": "/static/js/runtime-main.91cc567f.js.map",
"static/js/2.babe843f.chunk.js": "/static/js/2.babe843f.chunk.js",
"static/js/2.babe843f.chunk.js.map": "/static/js/2.babe843f.chunk.js.map",
"main.css": "/static/css/main.1879ee6f.chunk.css",
"main.js": "/static/js/main.07693939.chunk.js",
"main.js.map": "/static/js/main.07693939.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.642dcf2e.js",
"runtime-main.js.map": "/static/js/runtime-main.642dcf2e.js.map",
"static/js/2.c5da907d.chunk.js": "/static/js/2.c5da907d.chunk.js",
"static/js/2.c5da907d.chunk.js.map": "/static/js/2.c5da907d.chunk.js.map",
"static/css/3.1f6bb621.chunk.css": "/static/css/3.1f6bb621.chunk.css",
"static/js/3.967fd536.chunk.js": "/static/js/3.967fd536.chunk.js",
"static/js/3.967fd536.chunk.js.map": "/static/js/3.967fd536.chunk.js.map",
"static/js/3.3367fbde.chunk.js": "/static/js/3.3367fbde.chunk.js",
"static/js/3.3367fbde.chunk.js.map": "/static/js/3.3367fbde.chunk.js.map",
"static/css/4.6512f3a3.chunk.css": "/static/css/4.6512f3a3.chunk.css",
"static/js/4.5466ca1a.chunk.js": "/static/js/4.5466ca1a.chunk.js",
"static/js/4.5466ca1a.chunk.js.map": "/static/js/4.5466ca1a.chunk.js.map",
"static/js/4.6ed25fb6.chunk.js": "/static/js/4.6ed25fb6.chunk.js",
"static/js/4.6ed25fb6.chunk.js.map": "/static/js/4.6ed25fb6.chunk.js.map",
"static/css/5.3aaab79d.chunk.css": "/static/css/5.3aaab79d.chunk.css",
"static/js/5.93db42e1.chunk.js": "/static/js/5.93db42e1.chunk.js",
"static/js/5.93db42e1.chunk.js.map": "/static/js/5.93db42e1.chunk.js.map",
"static/js/5.e6f4a57d.chunk.js": "/static/js/5.e6f4a57d.chunk.js",
"static/js/5.e6f4a57d.chunk.js.map": "/static/js/5.e6f4a57d.chunk.js.map",
"index.html": "/index.html",
"precache-manifest.9ec2e80a7a580d16d37b1d37c776b801.js": "/precache-manifest.9ec2e80a7a580d16d37b1d37c776b801.js",
"precache-manifest.9f50eac5210a372dbd43bd204f43c166.js": "/precache-manifest.9f50eac5210a372dbd43bd204f43c166.js",
"service-worker.js": "/service-worker.js",
"static/css/3.1f6bb621.chunk.css.map": "/static/css/3.1f6bb621.chunk.css.map",
"static/css/4.6512f3a3.chunk.css.map": "/static/css/4.6512f3a3.chunk.css.map",
"static/css/5.3aaab79d.chunk.css.map": "/static/css/5.3aaab79d.chunk.css.map",
"static/css/main.2db21378.chunk.css.map": "/static/css/main.2db21378.chunk.css.map",
"static/js/2.babe843f.chunk.js.LICENSE.txt": "/static/js/2.babe843f.chunk.js.LICENSE.txt",
"static/css/main.1879ee6f.chunk.css.map": "/static/css/main.1879ee6f.chunk.css.map",
"static/js/2.c5da907d.chunk.js.LICENSE.txt": "/static/js/2.c5da907d.chunk.js.LICENSE.txt",
"static/media/icon.a0c2d343.svg": "/static/media/icon.a0c2d343.svg"
},
"entrypoints": [
"static/js/runtime-main.91cc567f.js",
"static/js/2.babe843f.chunk.js",
"static/css/main.2db21378.chunk.css",
"static/js/main.e2566cf0.chunk.js"
"static/js/runtime-main.642dcf2e.js",
"static/js/2.c5da907d.chunk.js",
"static/css/main.1879ee6f.chunk.css",
"static/js/main.07693939.chunk.js"
]
}

View file

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#1da1f2"/><meta nam="description" content="Squeaknode!"/><meta name="og:title" content="Squeaknode"/><meta name="og:description" content="check out my the Squeaknode I made"/><link href="https://fonts.googleapis.com/css2?family=Assistant&display=swap" rel="stylesheet"><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Squeaknode</title><link href="/static/css/main.2db21378.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,d=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&d.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(t);d.length;)d.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var c=r[o];0!==a[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},a={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[];o[e]?t.push(o[e]):0!==o[e]&&{3:1,4:1,5:1}[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{3:"1f6bb621",4:"6512f3a3",5:"3aaab79d"}[e]+".chunk.css",a=i.p+n,u=document.getElementsByTagName("link"),c=0;c<u.length;c++){var l=(f=u[c]).getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(l===n||l===a))return t()}var s=document.getElementsByTagName("style");for(c=0;c<s.length;c++){var f;if((l=(f=s[c]).getAttribute("data-href"))===n||l===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],d.parentNode.removeChild(d),r(u)},d.href=a,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){o[e]=0})));var r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var u,c=document.createElement("script");c.charset="utf-8",c.timeout=120,i.nc&&c.setAttribute("nonce",i.nc),c.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"967fd536",4:"5466ca1a",5:"93db42e1"}[e]+".chunk.js"}(e);var l=new Error;u=function(t){c.onerror=c.onload=null,clearTimeout(s);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",l.name="ChunkLoadError",l.type=n,l.request=o,r[1](l)}a[e]=void 0}};var s=setTimeout((function(){u({type:"timeout",target:c})}),12e4);c.onerror=c.onload=u,document.head.appendChild(c)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var c=this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[],l=c.push.bind(c);c.push=t,c=c.slice();for(var s=0;s<c.length;s++)t(c[s]);var f=l;r()}([])</script><script src="/static/js/2.babe843f.chunk.js"></script><script src="/static/js/main.e2566cf0.chunk.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#1da1f2"/><meta nam="description" content="Squeaknode!"/><meta name="og:title" content="Squeaknode"/><meta name="og:description" content="check out my the Squeaknode I made"/><link href="https://fonts.googleapis.com/css2?family=Assistant&display=swap" rel="stylesheet"><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Squeaknode</title><link href="/static/css/main.1879ee6f.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],f=0,d=[];f<i.length;f++)o=i[f],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&d.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(t);d.length;)d.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var c=r[o];0!==a[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},a={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[];o[e]?t.push(o[e]):0!==o[e]&&{3:1,4:1,5:1}[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{3:"1f6bb621",4:"6512f3a3",5:"3aaab79d"}[e]+".chunk.css",a=i.p+n,u=document.getElementsByTagName("link"),c=0;c<u.length;c++){var l=(s=u[c]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(l===n||l===a))return t()}var f=document.getElementsByTagName("style");for(c=0;c<f.length;c++){var s;if((l=(s=f[c]).getAttribute("data-href"))===n||l===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],d.parentNode.removeChild(d),r(u)},d.href=a,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){o[e]=0})));var r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var u,c=document.createElement("script");c.charset="utf-8",c.timeout=120,i.nc&&c.setAttribute("nonce",i.nc),c.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"3367fbde",4:"6ed25fb6",5:"e6f4a57d"}[e]+".chunk.js"}(e);var l=new Error;u=function(t){c.onerror=c.onload=null,clearTimeout(f);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",l.name="ChunkLoadError",l.type=n,l.request=o,r[1](l)}a[e]=void 0}};var f=setTimeout((function(){u({type:"timeout",target:c})}),12e4);c.onerror=c.onload=u,document.head.appendChild(c)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var c=this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[],l=c.push.bind(c);c.push=t,c=c.slice();for(var f=0;f<c.length;f++)t(c[f]);var s=l;r()}([])</script><script src="/static/js/2.c5da907d.chunk.js"></script><script src="/static/js/main.07693939.chunk.js"></script></body></html>

View file

@ -1,54 +0,0 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "fdc9e565465ed9cfa1f75aedbf1822d6",
"url": "/index.html"
},
{
"revision": "7baf43bc8eff95a7cf57",
"url": "/static/css/3.1f6bb621.chunk.css"
},
{
"revision": "e412fb479d10e72daad6",
"url": "/static/css/4.6512f3a3.chunk.css"
},
{
"revision": "98f588d1fdf51e73593e",
"url": "/static/css/5.3aaab79d.chunk.css"
},
{
"revision": "cea573f8a51c2fa63278",
"url": "/static/css/main.2db21378.chunk.css"
},
{
"revision": "552e6884ef83ffe7b186",
"url": "/static/js/2.babe843f.chunk.js"
},
{
"revision": "a569361d31625f49e7e30aea21628ed5",
"url": "/static/js/2.babe843f.chunk.js.LICENSE.txt"
},
{
"revision": "7baf43bc8eff95a7cf57",
"url": "/static/js/3.967fd536.chunk.js"
},
{
"revision": "e412fb479d10e72daad6",
"url": "/static/js/4.5466ca1a.chunk.js"
},
{
"revision": "98f588d1fdf51e73593e",
"url": "/static/js/5.93db42e1.chunk.js"
},
{
"revision": "cea573f8a51c2fa63278",
"url": "/static/js/main.e2566cf0.chunk.js"
},
{
"revision": "f7ce3bd6df005a3f5b49",
"url": "/static/js/runtime-main.91cc567f.js"
},
{
"revision": "a0c2d343127a93b025409da6fd970700",
"url": "/static/media/icon.a0c2d343.svg"
}
]);

View file

@ -0,0 +1,54 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "c67bae670573e55237e3950c26d6f512",
"url": "/index.html"
},
{
"revision": "335b69f0ca9a1d250748",
"url": "/static/css/3.1f6bb621.chunk.css"
},
{
"revision": "7f1c2b2b2cc82192d5cf",
"url": "/static/css/4.6512f3a3.chunk.css"
},
{
"revision": "f0349186ff6f02b7b645",
"url": "/static/css/5.3aaab79d.chunk.css"
},
{
"revision": "5d5cce5081fd0c3b4345",
"url": "/static/css/main.1879ee6f.chunk.css"
},
{
"revision": "3c47b6490e31d71b8d2d",
"url": "/static/js/2.c5da907d.chunk.js"
},
{
"revision": "a569361d31625f49e7e30aea21628ed5",
"url": "/static/js/2.c5da907d.chunk.js.LICENSE.txt"
},
{
"revision": "335b69f0ca9a1d250748",
"url": "/static/js/3.3367fbde.chunk.js"
},
{
"revision": "7f1c2b2b2cc82192d5cf",
"url": "/static/js/4.6ed25fb6.chunk.js"
},
{
"revision": "f0349186ff6f02b7b645",
"url": "/static/js/5.e6f4a57d.chunk.js"
},
{
"revision": "5d5cce5081fd0c3b4345",
"url": "/static/js/main.07693939.chunk.js"
},
{
"revision": "1b149485713f8341b38a",
"url": "/static/js/runtime-main.642dcf2e.js"
},
{
"revision": "a0c2d343127a93b025409da6fd970700",
"url": "/static/media/icon.a0c2d343.svg"
}
]);

View file

@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
importScripts(
"/precache-manifest.9ec2e80a7a580d16d37b1d37c776b801.js"
"/precache-manifest.9f50eac5210a372dbd43bd204f43c166.js"
);
self.addEventListener('message', (event) => {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
(this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[]).push([[3],{133:function(e,t,a){},138:function(e,t,a){"use strict";a.r(t);var n=a(0),c=a.n(n),l=(a(133),a(38),a(32),a(7),a(37),a(12)),r=a(18),s=a(33),u=a(6),i=a(11),o=(a(40),function(){var e=Object(u.c)(i.D),t=Object(u.c)(i.E),a=Object(u.c)(i.u),s=Object(u.b)();Object(n.useEffect)((function(){window.scrollTo(0,0),console.log("fetchTodos"),s(Object(i.c)()),s(Object(i.k)({limit:10,lastSqueak:null}))}),[]);var o=e.map((function(e){return c.a.createElement(r.a,{squeak:e,key:e.getSqueakHash(),id:e.getSqueakHash(),user:e.getAuthor()})}));return c.a.createElement(c.a.Fragment,null,c.a.createElement("ul",{className:"todo-list"},o),"loading"===t?c.a.createElement("div",{className:"todo-list"},c.a.createElement(l.a,null)):c.a.createElement("div",{onClick:function(){s(Object(i.k)({limit:10,lastSqueak:a}))},className:"squeak-btn-side squeak-btn-active"},"LOAD MORE"))});t.default=function(){return c.a.createElement("div",{className:"Home-wrapper"},c.a.createElement("div",{className:"Home-header-wrapper"},c.a.createElement("h2",{className:"Home-header"},"Latest Squeaks")),c.a.createElement(s.a,null),c.a.createElement("div",{className:"Squeak-input-divider"}),c.a.createElement(o,null))}}}]);
//# sourceMappingURL=3.967fd536.chunk.js.map
(this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[]).push([[3],{133:function(e,t,a){},138:function(e,t,a){"use strict";a.r(t);var n=a(0),c=a.n(n),l=(a(133),a(38),a(32),a(7),a(37),a(12)),r=a(19),s=a(33),u=a(6),i=a(11),o=(a(40),function(){var e=Object(u.c)(i.D),t=Object(u.c)(i.E),a=Object(u.c)(i.u),s=Object(u.b)();Object(n.useEffect)((function(){window.scrollTo(0,0),console.log("fetchTodos"),s(Object(i.c)()),s(Object(i.k)({limit:10,lastSqueak:null}))}),[]);var o=e.map((function(e){return c.a.createElement(r.a,{squeak:e,key:e.getSqueakHash(),id:e.getSqueakHash(),user:e.getAuthor()})}));return c.a.createElement(c.a.Fragment,null,c.a.createElement("ul",{className:"todo-list"},o),"loading"===t?c.a.createElement("div",{className:"todo-list"},c.a.createElement(l.a,null)):c.a.createElement("div",{onClick:function(){s(Object(i.k)({limit:10,lastSqueak:a}))},className:"squeak-btn-side squeak-btn-active"},"LOAD MORE"))});t.default=function(){return c.a.createElement("div",{className:"Home-wrapper"},c.a.createElement("div",{className:"Home-header-wrapper"},c.a.createElement("h2",{className:"Home-header"},"Latest Squeaks")),c.a.createElement(s.a,null),c.a.createElement("div",{className:"Squeak-input-divider"}),c.a.createElement(o,null))}}}]);
//# sourceMappingURL=3.3367fbde.chunk.js.map

View file

@ -1 +1 @@
{"version":3,"sources":["features/squeaks/Timeline.js","components/Home/index.js"],"names":["Timeline","squeaks","useSelector","selectTimelineSqueaks","loadingStatus","selectTimelineSqueaksStatus","lastSqueak","selectLastTimelineSqueak","dispatch","useDispatch","useEffect","window","scrollTo","console","log","clearTimeline","fetchTimeline","limit","renderedListItems","map","squeak","SqueakCard","key","getSqueakHash","id","user","getAuthor","className","Loader","onClick","Home","MakeSqueak"],"mappings":"oPA+DeA,G,MA5CE,WACf,IAAMC,EAAUC,YAAYC,KACtBC,EAAgBF,YAAYG,KAC5BC,EAAaJ,YAAYK,KACzBC,EAAWC,cAEjBC,qBAAU,WACNC,OAAOC,SAAS,EAAG,GACnBC,QAAQC,IAAI,cACZN,EAASO,eACTP,EAASQ,YAAc,CACrBC,MAAO,GACPX,WAAY,UAEf,IAEH,IAQMY,EAAoBjB,EAAQkB,KAAI,SAACC,GACrC,OAAO,kBAACC,EAAA,EAAD,CAAYD,OAAQA,EAAQE,IAAKF,EAAOG,gBAAiBC,GAAIJ,EAAOG,gBAAiBE,KAAML,EAAOM,iBAG3G,OAAO,oCACC,wBAAIC,UAAU,aAAaT,GAER,YAAlBd,EACD,yBAAKuB,UAAU,aACb,kBAACC,EAAA,EAAD,OAGF,yBAAKC,QAAS,WAnBpBrB,EAASQ,YAAc,CACrBC,MAAO,GACPX,WAAYA,MAiByBqB,UAAU,qCAA3C,gBCtBKG,UAlBF,WAET,OACI,yBAAKH,UAAU,gBACX,yBAAKA,UAAU,uBACX,wBAAIA,UAAU,eAAd,mBAIJ,kBAACI,EAAA,EAAD,MACA,yBAAKJ,UAAU,yBAEf,kBAAC,EAAD","file":"static/js/3.967fd536.chunk.js","sourcesContent":["import React, { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useDispatch } from 'react-redux'\n\nimport SqueakCard from '../../components/SqueakCard'\nimport Loader from '../../components/Loader'\n\n\nimport {\n fetchTimeline,\n selectTimelineSqueaks,\n selectTimelineSqueaksStatus,\n selectLastTimelineSqueak,\n clearTimeline,\n} from '../squeaks/squeaksSlice'\n\nimport store from '../../store'\n\n\nconst Timeline = () => {\n const squeaks = useSelector(selectTimelineSqueaks);\n const loadingStatus = useSelector(selectTimelineSqueaksStatus)\n const lastSqueak = useSelector(selectLastTimelineSqueak)\n const dispatch = useDispatch()\n\n useEffect(() => {\n window.scrollTo(0, 0)\n console.log('fetchTodos');\n dispatch(clearTimeline());\n dispatch(fetchTimeline({\n limit: 10,\n lastSqueak: null,\n }));\n }, [])\n\n const fetchMore = () => {\n dispatch(fetchTimeline({\n limit: 10,\n lastSqueak: lastSqueak,\n }));\n }\n\n\n const renderedListItems = squeaks.map((squeak) => {\n return <SqueakCard squeak={squeak} key={squeak.getSqueakHash()} id={squeak.getSqueakHash()} user={squeak.getAuthor()} />\n })\n\n return <>\n <ul className=\"todo-list\">{renderedListItems}</ul>\n\n {loadingStatus === 'loading' ?\n <div className=\"todo-list\">\n <Loader />\n </div>\n :\n <div onClick={() => fetchMore()} className='squeak-btn-side squeak-btn-active'>\n LOAD MORE\n </div>\n }\n\n </>\n}\n\nexport default Timeline\n","import React, { useEffect, useState, useContext, useRef } from 'react'\r\nimport './style.scss'\r\nimport axios from 'axios'\r\nimport ContentEditable from 'react-contenteditable'\r\nimport { ICON_IMGUPLOAD } from '../../Icons'\r\nimport { Link } from 'react-router-dom'\r\nimport { API_URL } from '../../config'\r\nimport Loader from '../Loader'\r\nimport SqueakCard from '../SqueakCard'\r\n//import MakeSqueak from '../MakeSqueak'\r\nimport MakeSqueak from '../../features/squeaks/MakeSqueak'\r\nimport Timeline from '../../features/squeaks/Timeline'\r\n\r\n\r\n\r\nconst Home = () => {\r\n\r\n return (\r\n <div className=\"Home-wrapper\">\r\n <div className=\"Home-header-wrapper\">\r\n <h2 className=\"Home-header\">\r\n Latest Squeaks\r\n </h2>\r\n </div>\r\n <MakeSqueak />\r\n <div className=\"Squeak-input-divider\"></div>\r\n\r\n <Timeline />\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport default Home\r\n"],"sourceRoot":""}
{"version":3,"sources":["features/squeaks/Timeline.js","components/Home/index.js"],"names":["Timeline","squeaks","useSelector","selectTimelineSqueaks","loadingStatus","selectTimelineSqueaksStatus","lastSqueak","selectLastTimelineSqueak","dispatch","useDispatch","useEffect","window","scrollTo","console","log","clearTimeline","fetchTimeline","limit","renderedListItems","map","squeak","SqueakCard","key","getSqueakHash","id","user","getAuthor","className","Loader","onClick","Home","MakeSqueak"],"mappings":"oPA+DeA,G,MA5CE,WACf,IAAMC,EAAUC,YAAYC,KACtBC,EAAgBF,YAAYG,KAC5BC,EAAaJ,YAAYK,KACzBC,EAAWC,cAEjBC,qBAAU,WACNC,OAAOC,SAAS,EAAG,GACnBC,QAAQC,IAAI,cACZN,EAASO,eACTP,EAASQ,YAAc,CACrBC,MAAO,GACPX,WAAY,UAEf,IAEH,IAQMY,EAAoBjB,EAAQkB,KAAI,SAACC,GACrC,OAAO,kBAACC,EAAA,EAAD,CAAYD,OAAQA,EAAQE,IAAKF,EAAOG,gBAAiBC,GAAIJ,EAAOG,gBAAiBE,KAAML,EAAOM,iBAG3G,OAAO,oCACC,wBAAIC,UAAU,aAAaT,GAER,YAAlBd,EACD,yBAAKuB,UAAU,aACb,kBAACC,EAAA,EAAD,OAGF,yBAAKC,QAAS,WAnBpBrB,EAASQ,YAAc,CACrBC,MAAO,GACPX,WAAYA,MAiByBqB,UAAU,qCAA3C,gBCtBKG,UAlBF,WAET,OACI,yBAAKH,UAAU,gBACX,yBAAKA,UAAU,uBACX,wBAAIA,UAAU,eAAd,mBAIJ,kBAACI,EAAA,EAAD,MACA,yBAAKJ,UAAU,yBAEf,kBAAC,EAAD","file":"static/js/3.3367fbde.chunk.js","sourcesContent":["import React, { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useDispatch } from 'react-redux'\n\nimport SqueakCard from '../../components/SqueakCard'\nimport Loader from '../../components/Loader'\n\n\nimport {\n fetchTimeline,\n selectTimelineSqueaks,\n selectTimelineSqueaksStatus,\n selectLastTimelineSqueak,\n clearTimeline,\n} from '../squeaks/squeaksSlice'\n\nimport store from '../../store'\n\n\nconst Timeline = () => {\n const squeaks = useSelector(selectTimelineSqueaks);\n const loadingStatus = useSelector(selectTimelineSqueaksStatus)\n const lastSqueak = useSelector(selectLastTimelineSqueak)\n const dispatch = useDispatch()\n\n useEffect(() => {\n window.scrollTo(0, 0)\n console.log('fetchTodos');\n dispatch(clearTimeline());\n dispatch(fetchTimeline({\n limit: 10,\n lastSqueak: null,\n }));\n }, [])\n\n const fetchMore = () => {\n dispatch(fetchTimeline({\n limit: 10,\n lastSqueak: lastSqueak,\n }));\n }\n\n\n const renderedListItems = squeaks.map((squeak) => {\n return <SqueakCard squeak={squeak} key={squeak.getSqueakHash()} id={squeak.getSqueakHash()} user={squeak.getAuthor()} />\n })\n\n return <>\n <ul className=\"todo-list\">{renderedListItems}</ul>\n\n {loadingStatus === 'loading' ?\n <div className=\"todo-list\">\n <Loader />\n </div>\n :\n <div onClick={() => fetchMore()} className='squeak-btn-side squeak-btn-active'>\n LOAD MORE\n </div>\n }\n\n </>\n}\n\nexport default Timeline\n","import React, { useEffect, useState, useContext, useRef } from 'react'\r\nimport './style.scss'\r\nimport axios from 'axios'\r\nimport ContentEditable from 'react-contenteditable'\r\nimport { ICON_IMGUPLOAD } from '../../Icons'\r\nimport { Link } from 'react-router-dom'\r\nimport { API_URL } from '../../config'\r\nimport Loader from '../Loader'\r\nimport SqueakCard from '../SqueakCard'\r\n//import MakeSqueak from '../MakeSqueak'\r\nimport MakeSqueak from '../../features/squeaks/MakeSqueak'\r\nimport Timeline from '../../features/squeaks/Timeline'\r\n\r\n\r\n\r\nconst Home = () => {\r\n\r\n return (\r\n <div className=\"Home-wrapper\">\r\n <div className=\"Home-header-wrapper\">\r\n <h2 className=\"Home-header\">\r\n Latest Squeaks\r\n </h2>\r\n </div>\r\n <MakeSqueak />\r\n <div className=\"Squeak-input-divider\"></div>\r\n\r\n <Timeline />\r\n\r\n </div>\r\n )\r\n}\r\n\r\nexport default Home\r\n"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
!function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],s=0,d=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&d.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(t);d.length;)d.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var c=r[o];0!==a[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},a={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[];o[e]?t.push(o[e]):0!==o[e]&&{3:1,4:1,5:1}[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{3:"1f6bb621",4:"6512f3a3",5:"3aaab79d"}[e]+".chunk.css",a=i.p+n,u=document.getElementsByTagName("link"),c=0;c<u.length;c++){var l=(f=u[c]).getAttribute("data-href")||f.getAttribute("href");if("stylesheet"===f.rel&&(l===n||l===a))return t()}var s=document.getElementsByTagName("style");for(c=0;c<s.length;c++){var f;if((l=(f=s[c]).getAttribute("data-href"))===n||l===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],d.parentNode.removeChild(d),r(u)},d.href=a,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){o[e]=0})));var r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var u,c=document.createElement("script");c.charset="utf-8",c.timeout=120,i.nc&&c.setAttribute("nonce",i.nc),c.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"967fd536",4:"5466ca1a",5:"93db42e1"}[e]+".chunk.js"}(e);var l=new Error;u=function(t){c.onerror=c.onload=null,clearTimeout(s);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",l.name="ChunkLoadError",l.type=n,l.request=o,r[1](l)}a[e]=void 0}};var s=setTimeout((function(){u({type:"timeout",target:c})}),12e4);c.onerror=c.onload=u,document.head.appendChild(c)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var c=this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[],l=c.push.bind(c);c.push=t,c=c.slice();for(var s=0;s<c.length;s++)t(c[s]);var f=l;r()}([]);
//# sourceMappingURL=runtime-main.91cc567f.js.map
!function(e){function t(t){for(var n,o,i=t[0],c=t[1],l=t[2],f=0,d=[];f<i.length;f++)o=i[f],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&d.push(a[o][0]),a[o]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(t);d.length;)d.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var c=r[o];0!==a[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},a={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[];o[e]?t.push(o[e]):0!==o[e]&&{3:1,4:1,5:1}[e]&&t.push(o[e]=new Promise((function(t,r){for(var n="static/css/"+({}[e]||e)+"."+{3:"1f6bb621",4:"6512f3a3",5:"3aaab79d"}[e]+".chunk.css",a=i.p+n,u=document.getElementsByTagName("link"),c=0;c<u.length;c++){var l=(s=u[c]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(l===n||l===a))return t()}var f=document.getElementsByTagName("style");for(c=0;c<f.length;c++){var s;if((l=(s=f[c]).getAttribute("data-href"))===n||l===a)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=t,d.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],d.parentNode.removeChild(d),r(u)},d.href=a,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){o[e]=0})));var r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var u,c=document.createElement("script");c.charset="utf-8",c.timeout=120,i.nc&&c.setAttribute("nonce",i.nc),c.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"3367fbde",4:"6ed25fb6",5:"e6f4a57d"}[e]+".chunk.js"}(e);var l=new Error;u=function(t){c.onerror=c.onload=null,clearTimeout(f);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",l.name="ChunkLoadError",l.type=n,l.request=o,r[1](l)}a[e]=void 0}};var f=setTimeout((function(){u({type:"timeout",target:c})}),12e4);c.onerror=c.onload=u,document.head.appendChild(c)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var c=this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[],l=c.push.bind(c);c.push=t,c=c.slice();for(var f=0;f<c.length;f++)t(c[f]);var s=l;r()}([]);
//# sourceMappingURL=runtime-main.642dcf2e.js.map