Use informed lib for create profile (#2051)

* Got create signing profile form working with tesla informed

* Got create contact profile form working with tesla informed

* Got add twitter account form working with tesla informed

* Update frontend build
This commit is contained in:
Jonathan Zernik 2022-03-28 20:49:57 -07:00 committed by GitHub
parent c3c1c14071
commit 451de52a59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 315 additions and 325 deletions

View file

@ -6,6 +6,9 @@ import { getProfileImageSrcString } from '../../squeakimages/images';
import Loader from '../Loader'
import SqueakCard from '../SqueakCard'
import { Form, Input, Select, Checkbox, Relevant, Debug, TextArea, Option } from 'informed';
import { unwrapResult } from '@reduxjs/toolkit'
import { useDispatch } from 'react-redux'
@ -19,225 +22,216 @@ import {
const Profiles = (props) => {
const [tab, setTab] = useState('Signing Profiles')
const [signingProfileModalOpen, setSigningProfileModalOpen] = useState(false)
const [contactProfileModalOpen, setContactProfileModalOpen] = useState(false)
const [styleBody, setStyleBody] = useState(false)
const [newProfileName, setNewProfileName] = useState('')
const [newProfilePubkey, setNewProfilePubkey] = useState('')
const [usePrivKey, setUsePrivKey] = useState(false)
const [newProfilePrivkey, setNewProfilePrivkey] = useState('')
const [tab, setTab] = useState('Signing Profiles')
const [signingProfileModalOpen, setSigningProfileModalOpen] = useState(false)
const [contactProfileModalOpen, setContactProfileModalOpen] = useState(false)
const [styleBody, setStyleBody] = useState(false)
const dispatch = useDispatch()
const dispatch = useDispatch()
const searchOnChange = (param) => {
if(tab !== 'Search'){setTab('Search')}
if(param.length>0){
// TODO: search for a profile by name.
}
const searchOnChange = (param) => {
if(tab !== 'Search'){setTab('Search')}
if(param.length>0){
// TODO: search for a profile by name.
}
}
const toggleSigningProfileModal = (param, type) => {
setStyleBody(!styleBody)
setTimeout(()=>{ setSigningProfileModalOpen(!signingProfileModalOpen) },20)
const toggleSigningProfileModal = (param, type) => {
setStyleBody(!styleBody)
setTimeout(()=>{ setSigningProfileModalOpen(!signingProfileModalOpen) },20)
}
const toggleContactProfileModal = (param, type) => {
setStyleBody(!styleBody)
setTimeout(()=>{ setContactProfileModalOpen(!contactProfileModalOpen) },20)
}
const createSigningProfile = ({values}) => {
console.log(values);
if (values.importExisting) {
console.log('Import signing profile with name:', values.name);
dispatch(setImportSigningProfile({profileName: values.name, privateKey: values.privateKey}))
.then(unwrapResult)
.then((pubkey) => {
console.log('Created profile with pubkey', pubkey);
props.history.push(`/app/profile/${pubkey}`);
})
.catch((err) => {
alert(err.message);
});
} else {
console.log('Create signing profile with name:', values.name);
dispatch(setCreateSigningProfile({profileName: values.name}))
.then(unwrapResult)
.then((pubkey) => {
console.log('Created profile with pubkey', pubkey);
props.history.push(`/app/profile/${pubkey}`);
})
.catch((err) => {
alert(err.message);
});
}
toggleSigningProfileModal();
}
const toggleContactProfileModal = (param, type) => {
setStyleBody(!styleBody)
setTimeout(()=>{ setContactProfileModalOpen(!contactProfileModalOpen) },20)
}
const createContactProfile = ({values}) => {
dispatch(setCreateContactProfile({profileName: values.name, pubkey: values.pubkey}))
.then(unwrapResult)
.then((pubkey) => {
console.log('Created profile with pubkey', pubkey);
props.history.push(`/app/profile/${pubkey}`);
})
.catch((err) => {
alert(err.message);
});
toggleContactProfileModal();
}
const createSigningProfile = () => {
if (usePrivKey) {
console.log('Import signing profile with name:', newProfileName);
dispatch(setImportSigningProfile({profileName: newProfileName, privateKey: newProfilePrivkey}))
.then(unwrapResult)
.then((pubkey) => {
console.log('Created profile with pubkey', pubkey);
props.history.push(`/app/profile/${pubkey}`);
})
.catch((err) => {
alert(err.message);
});
} else {
console.log('Create signing profile with name:', newProfileName);
dispatch(setCreateSigningProfile({profileName: newProfileName}))
.then(unwrapResult)
.then((pubkey) => {
console.log('Created profile with pubkey', pubkey);
props.history.push(`/app/profile/${pubkey}`);
})
.catch((err) => {
alert(err.message);
});
}
toggleSigningProfileModal();
}
const handleModalClick = (e) => {
e.stopPropagation()
}
const createContactProfile = () => {
dispatch(setCreateContactProfile({profileName: newProfileName, pubkey: newProfilePubkey}))
.then(unwrapResult)
.then((pubkey) => {
console.log('Created profile with pubkey', pubkey);
props.history.push(`/app/profile/${pubkey}`);
})
.catch((err) => {
alert(err.message);
});
toggleContactProfileModal();
}
const CreateSigningProfileForm = () => (
<Form onSubmit={createSigningProfile} className="Squeak-input-side">
<div className="edit-input-wrap">
<Input class="informed-input" name="name" label="Profile Name" placeholder="Satoshi" />
</div>
<div className="edit-input-wrap">
<Checkbox class="informed-input" name="importExisting" label="Import Existing Private Key: " />
</div>
<Relevant when={({ formState }) => formState.values.importExisting}>
<div className="edit-input-wrap">
<Input class="informed-input" name="privateKey" label="Private Key" />
</div>
</Relevant>
const handleModalClick = (e) => {
e.stopPropagation()
}
<div className="inner-input-links">
<div className="input-links-side">
</div>
<div className="squeak-btn-holder">
<div style={{ fontSize: '13px', color: null }}>
</div>
<button type="submit" className={'squeak-btn-side squeak-btn-active'}>
Submit
</button>
</div>
</div>
</Form>
);
const handleChangeUsePrivKey = () => {
setUsePrivKey(!usePrivKey);
};
const CreateContactProfileForm = () => (
<Form onSubmit={createContactProfile} className="Squeak-input-side">
<div className="edit-input-wrap">
<Input class="informed-input" name="name" label="Profile Name" placeholder="Satoshi" />
</div>
<div className="edit-input-wrap">
<Input class="informed-input" name="pubkey" label="Public Key" />
</div>
<div className="inner-input-links">
<div className="input-links-side">
</div>
<div className="squeak-btn-holder">
<div style={{ fontSize: '13px', color: null }}>
</div>
<button type="submit" className={'squeak-btn-side squeak-btn-active'}>
Submit
</button>
</div>
</div>
</Form>
);
return(
<div>
return(
<div>
<div className="explore-wrapper">
<div className="explore-header">
<div className="explore-search-wrapper">
<div className="explore-search-icon">
<ICON_SEARCH/>
</div>
<div className="explore-search-input">
<input onChange={(e)=>searchOnChange(e.target.value)} placeholder="Search for people" type="text" name="search"/>
</div>
</div>
<div className="explore-wrapper">
<div className="explore-header">
<div className="explore-search-wrapper">
<div className="explore-search-icon">
<ICON_SEARCH/>
</div>
<div className="profile-details-wrapper">
<div className="profiles-options">
<div className="explore-search-input">
<input onChange={(e)=>searchOnChange(e.target.value)} placeholder="Search for people" type="text" name="search"/>
</div>
</div>
</div>
<div className="profile-details-wrapper">
<div className="profiles-options">
<div onClick={(e)=>toggleSigningProfileModal('edit')}
className='profiles-create-button'>
<span>Add Signing Profile</span>
className='profiles-create-button'>
<span>Add Signing Profile</span>
</div>
<div onClick={(e)=>toggleContactProfileModal('edit')}
className='profiles-create-button'>
<span>Add Contact Profile</span>
className='profiles-create-button'>
<span>Add Contact Profile</span>
</div>
</div>
</div>
<div>
<div className="explore-nav-menu">
<div onClick={()=>setTab('Signing Profiles')} className={tab === 'Signing Profiles' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Signing Profiles
</div>
<div onClick={()=>setTab('Contact Profiles')} className={tab === 'Contact Profiles' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Contact Profiles
</div>
<div>
<div className="explore-nav-menu">
<div onClick={()=>setTab('Signing Profiles')} className={tab === 'Signing Profiles' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Signing Profiles
</div>
<div onClick={()=>setTab('Contact Profiles')} className={tab === 'Contact Profiles' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Contact Profiles
</div>
</div>
{tab === 'Signing Profiles' ?
<SigningProfiles />
:
tab === 'Contact Profiles' ?
<ContactProfiles />
: <div className="try-searching">
Nothing to see here ..
<div/>
Try searching for people, usernames, or keywords
</div>
{tab === 'Signing Profiles' ?
<SigningProfiles />
:
tab === 'Contact Profiles' ?
<ContactProfiles />
: <div className="try-searching">
Nothing to see here ..
<div/>
Try searching for people, usernames, or keywords
</div>
}
</div>
}
</div>
</div>
{/* Modal for create signing profile */}
<div onClick={()=>toggleSigningProfileModal()} style={{display: signingProfileModalOpen ? 'block' : 'none'}} className="modal-edit">
<div onClick={(e)=>handleModalClick(e)} className="modal-content">
<div className="modal-header">
<div className="modal-closeIcon">
<div onClick={()=>toggleSigningProfileModal()} className="modal-closeIcon-wrap">
<ICON_CLOSE />
</div>
</div>
<p className="modal-title">Add Signing Profile</p>
</div>
<div className="modal-body">
<CreateSigningProfileForm />
</div>
</div>
</div>
{/* Modal for create signing profile */}
<div onClick={()=>toggleSigningProfileModal()} style={{display: signingProfileModalOpen ? 'block' : 'none'}} className="modal-edit">
<div onClick={(e)=>handleModalClick(e)} className="modal-content">
<div className="modal-header">
<div className="modal-closeIcon">
<div onClick={()=>toggleSigningProfileModal()} className="modal-closeIcon-wrap">
<ICON_CLOSE />
</div>
</div>
<p className="modal-title">Add Signing Profile</p>
<div className="save-modal-wrapper">
<div onClick={createSigningProfile} className="save-modal-btn">
Submit
</div>
</div>
</div>
<div className="modal-body">
<form className="edit-form">
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>Profile Name</label>
<input onChange={(e)=>setNewProfileName(e.target.value)} type="text" name="name" className="edit-input"/>
</div>
</div>
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>
<input
type="checkbox"
checked={usePrivKey}
onChange={handleChangeUsePrivKey}
/>
Import Existing Private Key
</label>
</div>
</div>
{usePrivKey &&
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>Private Key</label>
<input onChange={(e)=>setNewProfilePrivkey(e.target.value)} type="text" name="name" className="edit-input"/>
</div>
</div>
}
</form>
</div>
{/* Modal for create contact profile */}
<div onClick={()=>toggleContactProfileModal()} style={{display: contactProfileModalOpen ? 'block' : 'none'}} className="modal-edit">
<div onClick={(e)=>handleModalClick(e)} className="modal-content">
<div className="modal-header">
<div className="modal-closeIcon">
<div onClick={()=>toggleContactProfileModal()} className="modal-closeIcon-wrap">
<ICON_CLOSE />
</div>
</div>
<p className="modal-title">Add Contact Profile</p>
</div>
{/* Modal for create contact profile */}
<div onClick={()=>toggleContactProfileModal()} style={{display: contactProfileModalOpen ? 'block' : 'none'}} className="modal-edit">
<div onClick={(e)=>handleModalClick(e)} className="modal-content">
<div className="modal-header">
<div className="modal-closeIcon">
<div onClick={()=>toggleContactProfileModal()} className="modal-closeIcon-wrap">
<ICON_CLOSE />
</div>
</div>
<p className="modal-title">Add Contact Profile</p>
<div className="save-modal-wrapper">
<div onClick={createContactProfile} className="save-modal-btn">
Submit
</div>
</div>
</div>
<div className="modal-body">
<form className="edit-form">
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>Profile Name</label>
<input onChange={(e)=>setNewProfileName(e.target.value)} type="text" name="name" className="edit-input"/>
</div>
</div>
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>Public Key</label>
<input onChange={(e)=>setNewProfilePubkey(e.target.value)} type="text" name="name" className="edit-input"/>
</div>
</div>
</form>
</div>
</div>
<div className="modal-body">
<CreateContactProfileForm />
</div>
</div>
</div>
</div>
)
</div>
)
}
export default withRouter(Profiles)

View file

@ -5,8 +5,8 @@ import { ICON_SEARCH, ICON_ARROWBACK, ICON_CLOSE } from '../../Icons'
import { getProfileImageSrcString } from '../../squeakimages/images';
import Loader from '../Loader'
import SqueakCard from '../SqueakCard'
import Select from 'react-select'
import { Form, Input, Checkbox, Select, Relevant, Debug, TextArea, Option } from 'informed';
import { unwrapResult } from '@reduxjs/toolkit'
import { useDispatch } from 'react-redux'
@ -31,10 +31,6 @@ const Twitter = (props) => {
const [tab, setTab] = useState('Signing Profiles')
const [twitterAccountModalOpen, setTwitterAccountModalOpen] = useState(false)
const [styleBody, setStyleBody] = useState(false)
const [twitterHandle, setTwitterHandle] = useState('')
const [newProfilePubkey, setNewProfilePubkey] = useState('')
const [bearerToken, setBearerToken] = useState('')
const [signingProfile, setSigningProfile] = useState(null)
const signingProfiles = useSelector(selectSigningProfiles);
@ -59,20 +55,20 @@ const Twitter = (props) => {
setTimeout(()=>{ setTwitterAccountModalOpen(!twitterAccountModalOpen) },20)
}
const createTwitterAccount = () => {
console.log('Create twitter account with handle:', twitterHandle);
if (!signingProfile) {
const createTwitterAccount = ({values}) => {
console.log('Create twitter account with handle:', values.twitterHandle);
if (!values.signingProfileId) {
alert('Signing profile must be set.');
return;
}
dispatch(setCreateTwitterAccount({
twitterHandle: twitterHandle,
profileId: signingProfile.getProfileId(),
bearerToken: bearerToken,
twitterHandle: values.twitterHandle,
profileId: values.signingProfileId,
bearerToken: values.twitterBearerToken,
}))
.then(unwrapResult)
.then((pubkey) => {
console.log('Created twitter account with handle', twitterHandle);
console.log('Created twitter account with handle', values.twitterHandle);
})
.catch((err) => {
alert(err.message);
@ -84,10 +80,37 @@ const Twitter = (props) => {
e.stopPropagation()
}
const handleChangeSigningProfile = (e) => {
setSigningProfile(e.value);
}
const AddTwitterAccountForm = () => (
<Form onSubmit={createTwitterAccount} className="Squeak-input-side">
<div className="edit-input-wrap">
<Input class="informed-input" name="twitterHandle" label="Twitter Handle" />
</div>
<div className="edit-input-wrap">
<Input class="informed-input" name="twitterBearerToken" label="Twitter Bearer Token" />
</div>
<div className="edit-input-wrap">
<Select class="informed-select" name="signingProfileId" initialValue="">
<Option value="" disabled>
Select Signing Profile...
</Option>
{signingProfiles.map(p => {
return <option value={p.getProfileId()}>{p.getProfileName()}</option>
})}
</Select>
</div>
<div className="inner-input-links">
<div className="input-links-side">
</div>
<div className="squeak-btn-holder">
<div style={{ fontSize: '13px', color: null }}>
</div>
<button type="submit" className={'squeak-btn-side squeak-btn-active'}>
Add Twitter Account
</button>
</div>
</div>
</Form>
);
return(
<div>
@ -129,37 +152,10 @@ const Twitter = (props) => {
</div>
</div>
<p className="modal-title">Add Twitter Account</p>
<div className="save-modal-wrapper">
<div onClick={createTwitterAccount} className="save-modal-btn">
Submit
</div>
</div>
</div>
<div className="modal-body">
<form className="edit-form">
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>Twitter Handle</label>
<input onChange={(e)=>setTwitterHandle(e.target.value)} type="text" name="name" className="edit-input"/>
</div>
</div>
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>Twitter Bearer Token</label>
<input onChange={(e)=>setBearerToken(e.target.value)} type="text" name="name" className="edit-input"/>
</div>
</div>
<div className="edit-input-wrap">
<div className="edit-input-content">
<label>Signing Profile</label>
<div className="inner-input-box">
<Select options={optionsFromProfiles(signingProfiles)} onChange={handleChangeSigningProfile} />
</div>
</div>
</div>
</form>
<AddTwitterAccountForm />
</div>
</div>
</div>

View file

@ -1,35 +1,35 @@
{
"files": {
"main.css": "/static/css/main.a68e0912.chunk.css",
"main.js": "/static/js/main.7d973489.chunk.js",
"main.js.map": "/static/js/main.7d973489.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.11ce1da2.js",
"runtime-main.js.map": "/static/js/runtime-main.11ce1da2.js.map",
"static/js/2.3fe7af41.chunk.js": "/static/js/2.3fe7af41.chunk.js",
"static/js/2.3fe7af41.chunk.js.map": "/static/js/2.3fe7af41.chunk.js.map",
"main.js": "/static/js/main.4a1d67f6.chunk.js",
"main.js.map": "/static/js/main.4a1d67f6.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.f68d91c9.js",
"runtime-main.js.map": "/static/js/runtime-main.f68d91c9.js.map",
"static/js/2.5e6a1b19.chunk.js": "/static/js/2.5e6a1b19.chunk.js",
"static/js/2.5e6a1b19.chunk.js.map": "/static/js/2.5e6a1b19.chunk.js.map",
"static/css/3.1f6bb621.chunk.css": "/static/css/3.1f6bb621.chunk.css",
"static/js/3.7c4e27fb.chunk.js": "/static/js/3.7c4e27fb.chunk.js",
"static/js/3.7c4e27fb.chunk.js.map": "/static/js/3.7c4e27fb.chunk.js.map",
"static/js/3.1fd37384.chunk.js": "/static/js/3.1fd37384.chunk.js",
"static/js/3.1fd37384.chunk.js.map": "/static/js/3.1fd37384.chunk.js.map",
"static/css/4.6512f3a3.chunk.css": "/static/css/4.6512f3a3.chunk.css",
"static/js/4.977be235.chunk.js": "/static/js/4.977be235.chunk.js",
"static/js/4.977be235.chunk.js.map": "/static/js/4.977be235.chunk.js.map",
"static/js/4.dabb8d93.chunk.js": "/static/js/4.dabb8d93.chunk.js",
"static/js/4.dabb8d93.chunk.js.map": "/static/js/4.dabb8d93.chunk.js.map",
"static/css/5.3aaab79d.chunk.css": "/static/css/5.3aaab79d.chunk.css",
"static/js/5.93ab39d9.chunk.js": "/static/js/5.93ab39d9.chunk.js",
"static/js/5.93ab39d9.chunk.js.map": "/static/js/5.93ab39d9.chunk.js.map",
"static/js/5.3ee02b27.chunk.js": "/static/js/5.3ee02b27.chunk.js",
"static/js/5.3ee02b27.chunk.js.map": "/static/js/5.3ee02b27.chunk.js.map",
"index.html": "/index.html",
"precache-manifest.d397b1778f1037e414481d8861fd54b9.js": "/precache-manifest.d397b1778f1037e414481d8861fd54b9.js",
"precache-manifest.9b60bd08b1a0f3eb52c0fe9e27db5b68.js": "/precache-manifest.9b60bd08b1a0f3eb52c0fe9e27db5b68.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.a68e0912.chunk.css.map": "/static/css/main.a68e0912.chunk.css.map",
"static/js/2.3fe7af41.chunk.js.LICENSE.txt": "/static/js/2.3fe7af41.chunk.js.LICENSE.txt",
"static/js/2.5e6a1b19.chunk.js.LICENSE.txt": "/static/js/2.5e6a1b19.chunk.js.LICENSE.txt",
"static/media/icon.a0c2d343.svg": "/static/media/icon.a0c2d343.svg"
},
"entrypoints": [
"static/js/runtime-main.11ce1da2.js",
"static/js/2.3fe7af41.chunk.js",
"static/js/runtime-main.f68d91c9.js",
"static/js/2.5e6a1b19.chunk.js",
"static/css/main.a68e0912.chunk.css",
"static/js/main.7d973489.chunk.js"
"static/js/main.4a1d67f6.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.a68e0912.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,p=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&p.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);p.length;)p.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 p=document.createElement("link");p.rel="stylesheet",p.type="text/css",p.onload=t,p.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],p.parentNode.removeChild(p),r(u)},p.href=a,document.getElementsByTagName("head")[0].appendChild(p)})).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:"7c4e27fb",4:"977be235",5:"93ab39d9"}[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.3fe7af41.chunk.js"></script><script src="/static/js/main.7d973489.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.a68e0912.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:"1fd37384",4:"dabb8d93",5:"3ee02b27"}[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.5e6a1b19.chunk.js"></script><script src="/static/js/main.4a1d67f6.chunk.js"></script></body></html>

View file

@ -0,0 +1,54 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "20cf6118eb7a06dd713e1222b2501e8b",
"url": "/index.html"
},
{
"revision": "e3acb8f457eab8e6b6c4",
"url": "/static/css/3.1f6bb621.chunk.css"
},
{
"revision": "88b3280c5866997eb8c6",
"url": "/static/css/4.6512f3a3.chunk.css"
},
{
"revision": "a6f14d6cba9838f47d93",
"url": "/static/css/5.3aaab79d.chunk.css"
},
{
"revision": "35de1330657241e0b5ad",
"url": "/static/css/main.a68e0912.chunk.css"
},
{
"revision": "691f7812c49021775a1f",
"url": "/static/js/2.5e6a1b19.chunk.js"
},
{
"revision": "a569361d31625f49e7e30aea21628ed5",
"url": "/static/js/2.5e6a1b19.chunk.js.LICENSE.txt"
},
{
"revision": "e3acb8f457eab8e6b6c4",
"url": "/static/js/3.1fd37384.chunk.js"
},
{
"revision": "88b3280c5866997eb8c6",
"url": "/static/js/4.dabb8d93.chunk.js"
},
{
"revision": "a6f14d6cba9838f47d93",
"url": "/static/js/5.3ee02b27.chunk.js"
},
{
"revision": "35de1330657241e0b5ad",
"url": "/static/js/main.4a1d67f6.chunk.js"
},
{
"revision": "2eb454bfa71d6f3b4e6e",
"url": "/static/js/runtime-main.f68d91c9.js"
},
{
"revision": "a0c2d343127a93b025409da6fd970700",
"url": "/static/media/icon.a0c2d343.svg"
}
]);

View file

@ -1,54 +0,0 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "ebd094cefdc4a8afe4b3b0d6b8ead160",
"url": "/index.html"
},
{
"revision": "0c9461c4febd89983230",
"url": "/static/css/3.1f6bb621.chunk.css"
},
{
"revision": "e46de22ba41bbbcd75d8",
"url": "/static/css/4.6512f3a3.chunk.css"
},
{
"revision": "b3dc0bc03ca729ccaa55",
"url": "/static/css/5.3aaab79d.chunk.css"
},
{
"revision": "1f8ee18fcc3eca9944b8",
"url": "/static/css/main.a68e0912.chunk.css"
},
{
"revision": "4108482c7fab24f0d913",
"url": "/static/js/2.3fe7af41.chunk.js"
},
{
"revision": "a569361d31625f49e7e30aea21628ed5",
"url": "/static/js/2.3fe7af41.chunk.js.LICENSE.txt"
},
{
"revision": "0c9461c4febd89983230",
"url": "/static/js/3.7c4e27fb.chunk.js"
},
{
"revision": "e46de22ba41bbbcd75d8",
"url": "/static/js/4.977be235.chunk.js"
},
{
"revision": "b3dc0bc03ca729ccaa55",
"url": "/static/js/5.93ab39d9.chunk.js"
},
{
"revision": "1f8ee18fcc3eca9944b8",
"url": "/static/js/main.7d973489.chunk.js"
},
{
"revision": "8a0c41374970e9781cf1",
"url": "/static/js/runtime-main.11ce1da2.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.d397b1778f1037e414481d8861fd54b9.js"
"/precache-manifest.9b60bd08b1a0f3eb52c0fe9e27db5b68.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

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],{139:function(e,t,a){},144:function(e,t,a){"use strict";a.r(t);var n=a(0),c=a.n(n),l=(a(139),a(42),a(36),a(7),a(41),a(13)),r=a(18),s=a(34),i=a(3),u=a(11),o=(a(44),function(){var e=Object(i.c)(u.C),t=Object(i.c)(u.D),a=Object(i.c)(u.t),s=Object(i.b)();Object(n.useEffect)((function(){window.scrollTo(0,0),console.log("fetchTodos"),s(Object(u.c)()),s(Object(u.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(u.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.7c4e27fb.chunk.js.map
(this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[]).push([[3],{139:function(e,t,a){},144:function(e,t,a){"use strict";a.r(t);var n=a(0),c=a.n(n),l=(a(139),a(42),a(37),a(7),a(41),a(13)),r=a(19),s=a(35),i=a(3),u=a(11),o=(a(44),function(){var e=Object(i.c)(u.C),t=Object(i.c)(u.D),a=Object(i.c)(u.t),s=Object(i.b)();Object(n.useEffect)((function(){window.scrollTo(0,0),console.log("fetchTodos"),s(Object(u.c)()),s(Object(u.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(u.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.1fd37384.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.7c4e27fb.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.1fd37384.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,p=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&p.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);p.length;)p.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 p=document.createElement("link");p.rel="stylesheet",p.type="text/css",p.onload=t,p.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],p.parentNode.removeChild(p),r(u)},p.href=a,document.getElementsByTagName("head")[0].appendChild(p)})).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:"7c4e27fb",4:"977be235",5:"93ab39d9"}[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.11ce1da2.js.map
!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:"1fd37384",4:"dabb8d93",5:"3ee02b27"}[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.f68d91c9.js.map