Show sent payments and received payments for pubkey (#2101)

* Got sent payments working for profile page

* Show received payments in profile page

* Fix infinite scroll of received payments for profile page

* Update frontend build
This commit is contained in:
Jonathan Zernik 2022-03-30 21:19:22 -07:00 committed by GitHub
parent f7fec3b8a3
commit a1981cc846
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 245 additions and 124 deletions

View file

@ -151,6 +151,10 @@ import {
GetReceivedPaymentsForSqueakReply,
GetPaymentSummaryForPubkeyRequest,
GetPaymentSummaryForPubkeyReply,
GetSentPaymentsForPubkeyRequest,
GetSentPaymentsForPubkeyReply,
GetReceivedPaymentsForPubkeyRequest,
GetReceivedPaymentsForPubkeyReply,
} from '../proto/squeak_admin_pb';
import axios from 'axios'
@ -418,6 +422,22 @@ export const getSentPaymentsForSqueak = (squeakHash, limit, lastSentPayment) =>
});
}
export const getSentPaymentsForPubkey = (pubkey, limit, lastSentPayment) => {
console.log('Calling getSentPaymentsForPubkey');
const request = new GetSentPaymentsForPubkeyRequest();
request.setPubkey(pubkey);
request.setLimit(limit);
if (lastSentPayment) {
request.setLastSentPayment(lastSentPayment);
}
const deser = GetSentPaymentsForPubkeyReply.deserializeBinary;
return baseRequest({
url: '/getsentpaymentsforpubkey',
req: request,
deser: deser,
});
}
export const getReceivedPayments = (limit, lastReceivedPayment) => {
console.log('Calling getReceivedPayments');
const request = new GetReceivedPaymentsRequest();
@ -449,6 +469,22 @@ export const getReceivedPaymentsForSqueak = (squeakHash, limit, lastReceivedPaym
});
}
export const getReceivedPaymentsForPubkey = (pubkey, limit, lastReceivedPayment) => {
console.log('Calling getReceivedPaymentsForPubkey');
const request = new GetReceivedPaymentsForPubkeyRequest();
request.setPubkey(pubkey);
request.setLimit(limit);
if (lastReceivedPayment) {
request.setLastReceivedPayment(lastReceivedPayment);
}
const deser = GetReceivedPaymentsForPubkeyReply.deserializeBinary;
return baseRequest({
url: '/getreceivedpaymentsforpubkey',
req: request,
deser: deser,
});
}
export const getSearchSqueaks = (searchText, limit, lastSqueak) => {
console.log('Calling getSearchSqueaks');
const request = new GetSearchSqueakDisplaysRequest();

View file

@ -39,6 +39,10 @@ import {
selectPaymentSummaryForPubkey,
} from '../../features/payments/paymentsSlice'
import SentPayments from '../../features/payments/SentPayments'
import ReceivedPayments from '../../features/payments/ReceivedPayments'
const Profile = (props) => {
const [activeTab, setActiveTab] = useState('Squeaks')
@ -50,7 +54,7 @@ const Profile = (props) => {
const [exportModalOpen, setExportModalOpen] = useState(false)
const [spendingModalOpen, setSpendingModalOpen] = useState(false)
const [createModalOpen, setCreateModalOpen] = useState(false)
const [tab, setTab] = useState('Sats Spent')
const [tab, setTab] = useState('Sent Payments')
const [styleBody, setStyleBody] = useState(false)
const userParam = props.match.params.username
@ -424,12 +428,12 @@ const Profile = (props) => {
</div>
<div className="profile-social-box">
{/* TODO: Implement sats spent */}
<div onClick={()=>toggleSpendingModal('members','Sats Spent')}>
<div onClick={()=>toggleSpendingModal('members','Sent Payments')}>
<p className="follow-num"> {paymentSummary && paymentSummary.getAmountSpentMsat() / 1000} </p>
<p className="follow-text"> sats spent </p>
</div>
{/* TODO: Implement sats eaned */}
<div onClick={()=>toggleSpendingModal('members', 'Sats Earned')}>
<div onClick={()=>toggleSpendingModal('members', 'Received Payments')}>
<p className="follow-num"> {paymentSummary && paymentSummary.getAmountEarnedMsat() / 1000} </p>
<p className="follow-text"> sats earned </p>
</div>
@ -562,41 +566,58 @@ const Profile = (props) => {
</div>
<div className="modal-body">
<div className="explore-nav-menu">
<div onClick={()=>setTab('Sats Spent')} className={tab =='Sats Spent' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Sats Spent
<div onClick={()=>setTab('Sent Payments')} className={tab =='Sent Payments' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Sent Payments
</div>
<div onClick={()=>setTab('Sats Earned')} className={tab =='Sats Earned' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Sats Earned
<div onClick={()=>setTab('Received Payments')} className={tab =='Received Payments' ? `explore-nav-item activeTab` : `explore-nav-item`}>
Received Payments
</div>
</div>
<div className="modal-scroll">
</div>
{tab === 'Sent Payments' ?
<>
<SentPayments pubkey={props.match.params.username} />
</>
:
tab === 'Received Payments' ?
<>
<ReceivedPayments pubkey={props.match.params.username} />
</>
: <div className="try-searching">
Nothing to see here ..
<div/>
Try searching for people, usernames, or keywords
</div>
</div>
}
</div>
{/* Modal for create contact profile */}
<div onClick={()=>toggleCreateModal()} style={{display: createModalOpen ? 'block' : 'none'}} className="modal-edit">
<div onClick={(e)=>handleModalClick(e)} className="modal-content">
<div className="modal-header">
<div className="modal-closeIcon">
<div onClick={()=>toggleCreateModal()} className="modal-closeIcon-wrap">
<ICON_CLOSE />
</div>
</div>
<p className="modal-title">Add Contact Profile</p>
</div>
<div className="modal-body">
<AddContactProfileForm />
</div>
</div>
</div>
</div>
</div>
)
}
</div>
export default withRouter(Profile)
{/* Modal for create contact profile */}
<div onClick={()=>toggleCreateModal()} style={{display: createModalOpen ? 'block' : 'none'}} className="modal-edit">
<div onClick={(e)=>handleModalClick(e)} className="modal-content">
<div className="modal-header">
<div className="modal-closeIcon">
<div onClick={()=>toggleCreateModal()} className="modal-closeIcon-wrap">
<ICON_CLOSE />
</div>
</div>
<p className="modal-title">Add Contact Profile</p>
</div>
<div className="modal-body">
<AddContactProfileForm />
</div>
</div>
</div>
</div>
</div>
)
}
export default withRouter(Profile)

View file

@ -29,6 +29,7 @@ const ReceivedPayments = (props) => {
dispatch(clearReceivedPayments());
dispatch(fetchReceivedPayments({
squeakHash: props.squeakHash,
pubkey: props.pubkey,
limit: 10,
lastReceivedPayment: null,
}));
@ -37,6 +38,7 @@ const ReceivedPayments = (props) => {
const fetchMore = () => {
dispatch(fetchReceivedPayments({
squeakHash: props.squeakHash,
pubkey: props.pubkey,
limit: 10,
lastReceivedPayment: lastReceivedPayment,
}));

View file

@ -29,6 +29,7 @@ const SentPayments = (props) => {
dispatch(clearSentPayments());
dispatch(fetchSentPayments({
squeakHash: props.squeakHash,
pubkey: props.pubkey,
limit: 10,
lastSentPayment: null,
}));
@ -37,6 +38,7 @@ const SentPayments = (props) => {
const fetchMore = () => {
dispatch(fetchSentPayments({
squeakHash: props.squeakHash,
pubkey: props.pubkey,
limit: 10,
lastSentPayment: lastSentPayment,
}));

View file

@ -7,11 +7,13 @@ import {
import {
getSentPayments,
getSentPaymentsForSqueak,
getSentPaymentsForPubkey,
getReceivedPayments,
getReceivedPaymentsForSqueak,
getPaymentSummary,
getPaymentSummaryForSqueak,
getPaymentSummaryForPubkey,
getReceivedPaymentsForPubkey,
} from '../../api/client'
const initialState = {
@ -33,6 +35,11 @@ export const fetchSentPayments = createAsyncThunk(
values.limit,
values.lastSentPayment,
)
: values.pubkey ? await getSentPaymentsForPubkey(
values.pubkey,
values.limit,
values.lastSentPayment,
)
: await getSentPayments(
values.limit,
values.lastSentPayment,
@ -49,6 +56,11 @@ export const fetchReceivedPayments = createAsyncThunk(
values.limit,
values.lastReceivedPayment,
)
: values.pubkey ? await getReceivedPaymentsForPubkey(
values.pubkey,
values.limit,
values.lastReceivedPayment,
)
: await getReceivedPayments(
values.limit,
values.lastReceivedPayment,

View file

@ -1,35 +1,35 @@
{
"files": {
"main.css": "/static/css/main.be11d9c8.chunk.css",
"main.js": "/static/js/main.9dc2a676.chunk.js",
"main.js.map": "/static/js/main.9dc2a676.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.d6eba3d2.js",
"runtime-main.js.map": "/static/js/runtime-main.d6eba3d2.js.map",
"static/js/2.72b7acf2.chunk.js": "/static/js/2.72b7acf2.chunk.js",
"static/js/2.72b7acf2.chunk.js.map": "/static/js/2.72b7acf2.chunk.js.map",
"main.js": "/static/js/main.6a7c927e.chunk.js",
"main.js.map": "/static/js/main.6a7c927e.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.05610a5d.js",
"runtime-main.js.map": "/static/js/runtime-main.05610a5d.js.map",
"static/js/2.34efa20b.chunk.js": "/static/js/2.34efa20b.chunk.js",
"static/js/2.34efa20b.chunk.js.map": "/static/js/2.34efa20b.chunk.js.map",
"static/css/3.1f6bb621.chunk.css": "/static/css/3.1f6bb621.chunk.css",
"static/js/3.f8daaa08.chunk.js": "/static/js/3.f8daaa08.chunk.js",
"static/js/3.f8daaa08.chunk.js.map": "/static/js/3.f8daaa08.chunk.js.map",
"static/js/3.2d2d34d3.chunk.js": "/static/js/3.2d2d34d3.chunk.js",
"static/js/3.2d2d34d3.chunk.js.map": "/static/js/3.2d2d34d3.chunk.js.map",
"static/css/4.6512f3a3.chunk.css": "/static/css/4.6512f3a3.chunk.css",
"static/js/4.57c210f1.chunk.js": "/static/js/4.57c210f1.chunk.js",
"static/js/4.57c210f1.chunk.js.map": "/static/js/4.57c210f1.chunk.js.map",
"static/js/4.13c6f568.chunk.js": "/static/js/4.13c6f568.chunk.js",
"static/js/4.13c6f568.chunk.js.map": "/static/js/4.13c6f568.chunk.js.map",
"static/css/5.3aaab79d.chunk.css": "/static/css/5.3aaab79d.chunk.css",
"static/js/5.98c7883d.chunk.js": "/static/js/5.98c7883d.chunk.js",
"static/js/5.98c7883d.chunk.js.map": "/static/js/5.98c7883d.chunk.js.map",
"static/js/5.2d635141.chunk.js": "/static/js/5.2d635141.chunk.js",
"static/js/5.2d635141.chunk.js.map": "/static/js/5.2d635141.chunk.js.map",
"index.html": "/index.html",
"precache-manifest.cd28673d075bf2731e351fd5dcf09cd2.js": "/precache-manifest.cd28673d075bf2731e351fd5dcf09cd2.js",
"precache-manifest.dd47f226d16dea85b0faa073346e53cb.js": "/precache-manifest.dd47f226d16dea85b0faa073346e53cb.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.be11d9c8.chunk.css.map": "/static/css/main.be11d9c8.chunk.css.map",
"static/js/2.72b7acf2.chunk.js.LICENSE.txt": "/static/js/2.72b7acf2.chunk.js.LICENSE.txt",
"static/js/2.34efa20b.chunk.js.LICENSE.txt": "/static/js/2.34efa20b.chunk.js.LICENSE.txt",
"static/media/icon.a0c2d343.svg": "/static/media/icon.a0c2d343.svg"
},
"entrypoints": [
"static/js/runtime-main.d6eba3d2.js",
"static/js/2.72b7acf2.chunk.js",
"static/js/runtime-main.05610a5d.js",
"static/js/2.34efa20b.chunk.js",
"static/css/main.be11d9c8.chunk.css",
"static/js/main.9dc2a676.chunk.js"
"static/js/main.6a7c927e.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.be11d9c8.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:"f8daaa08",4:"57c210f1",5:"98c7883d"}[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.72b7acf2.chunk.js"></script><script src="/static/js/main.9dc2a676.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.be11d9c8.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:"2d2d34d3",4:"13c6f568",5:"2d635141"}[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.34efa20b.chunk.js"></script><script src="/static/js/main.6a7c927e.chunk.js"></script></body></html>

View file

@ -1,54 +0,0 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "70a7a8ad4224f2dd157bd8706ddaa6b7",
"url": "/index.html"
},
{
"revision": "54c1e9d2b8060e37a08a",
"url": "/static/css/3.1f6bb621.chunk.css"
},
{
"revision": "19b2fac41bfd8bf51af9",
"url": "/static/css/4.6512f3a3.chunk.css"
},
{
"revision": "29eb539d0d52d68ac636",
"url": "/static/css/5.3aaab79d.chunk.css"
},
{
"revision": "bd0b0d93c7704f3b47cf",
"url": "/static/css/main.be11d9c8.chunk.css"
},
{
"revision": "edaadb0ff70b3a4b34eb",
"url": "/static/js/2.72b7acf2.chunk.js"
},
{
"revision": "a569361d31625f49e7e30aea21628ed5",
"url": "/static/js/2.72b7acf2.chunk.js.LICENSE.txt"
},
{
"revision": "54c1e9d2b8060e37a08a",
"url": "/static/js/3.f8daaa08.chunk.js"
},
{
"revision": "19b2fac41bfd8bf51af9",
"url": "/static/js/4.57c210f1.chunk.js"
},
{
"revision": "29eb539d0d52d68ac636",
"url": "/static/js/5.98c7883d.chunk.js"
},
{
"revision": "bd0b0d93c7704f3b47cf",
"url": "/static/js/main.9dc2a676.chunk.js"
},
{
"revision": "3d8cbe3cffbdee6a722d",
"url": "/static/js/runtime-main.d6eba3d2.js"
},
{
"revision": "a0c2d343127a93b025409da6fd970700",
"url": "/static/media/icon.a0c2d343.svg"
}
]);

View file

@ -0,0 +1,54 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "18bdf187ee95230950f194530b73c2c4",
"url": "/index.html"
},
{
"revision": "b231ad02f3f1cc4d806e",
"url": "/static/css/3.1f6bb621.chunk.css"
},
{
"revision": "73f49a16160afba90031",
"url": "/static/css/4.6512f3a3.chunk.css"
},
{
"revision": "8671e1a9be8d91740510",
"url": "/static/css/5.3aaab79d.chunk.css"
},
{
"revision": "8f5e1c1f2d6d6f4df7e1",
"url": "/static/css/main.be11d9c8.chunk.css"
},
{
"revision": "d847f8d7fccd469909c7",
"url": "/static/js/2.34efa20b.chunk.js"
},
{
"revision": "a569361d31625f49e7e30aea21628ed5",
"url": "/static/js/2.34efa20b.chunk.js.LICENSE.txt"
},
{
"revision": "b231ad02f3f1cc4d806e",
"url": "/static/js/3.2d2d34d3.chunk.js"
},
{
"revision": "73f49a16160afba90031",
"url": "/static/js/4.13c6f568.chunk.js"
},
{
"revision": "8671e1a9be8d91740510",
"url": "/static/js/5.2d635141.chunk.js"
},
{
"revision": "8f5e1c1f2d6d6f4df7e1",
"url": "/static/js/main.6a7c927e.chunk.js"
},
{
"revision": "a02b2d7c374aeb856b49",
"url": "/static/js/runtime-main.05610a5d.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.cd28673d075bf2731e351fd5dcf09cd2.js"
"/precache-manifest.dd47f226d16dea85b0faa073346e53cb.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],{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.f8daaa08.chunk.js.map
(this["webpackJsonptwitter-frontend"]=this["webpackJsonptwitter-frontend"]||[]).push([[3],{141:function(e,t,a){},146:function(e,t,a){"use strict";a.r(t);var n=a(0),c=a.n(n),l=(a(141),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.2d2d34d3.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.f8daaa08.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.2d2d34d3.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

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],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:"f8daaa08",4:"57c210f1",5:"98c7883d"}[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.d6eba3d2.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:"2d2d34d3",4:"13c6f568",5:"2d635141"}[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.05610a5d.js.map

View file

@ -230,6 +230,18 @@ class SqueakController:
last_sent_payment,
)
def get_sent_payments_for_pubkey(
self,
pubkey: SqueakPublicKey,
limit: int,
last_sent_payment: Optional[SentPayment],
) -> List[SentPayment]:
return self.squeak_store.get_sent_payments_for_pubkey(
pubkey,
limit,
last_sent_payment,
)
def get_sent_payment(self, sent_payment_id: int) -> Optional[SentPayment]:
return self.squeak_store.get_sent_payment(sent_payment_id)
@ -258,6 +270,18 @@ class SqueakController:
last_received_payment,
)
def get_received_payments_for_pubkey(
self,
pubkey: SqueakPublicKey,
limit: int,
last_received_payment: Optional[ReceivedPayment],
) -> List[ReceivedPayment]:
return self.squeak_store.get_received_payments_for_pubkey(
pubkey,
limit,
last_received_payment,
)
def delete_all_expired_offers(self):
self.squeak_store.delete_all_expired_offers()

View file

@ -418,6 +418,18 @@ class SqueakStore:
last_sent_payment,
)
def get_sent_payments_for_pubkey(
self,
pubkey: SqueakPublicKey,
limit: int,
last_sent_payment: Optional[SentPayment],
) -> List[SentPayment]:
return self.squeak_db.get_sent_payments_for_pubkey(
pubkey,
limit,
last_sent_payment,
)
def get_sent_payment(self, sent_payment_id: int) -> Optional[SentPayment]:
return self.squeak_db.get_sent_payment(sent_payment_id)
@ -449,6 +461,18 @@ class SqueakStore:
last_received_payment,
)
def get_received_payments_for_pubkey(
self,
pubkey: SqueakPublicKey,
limit: int,
last_received_payment: Optional[ReceivedPayment],
) -> List[ReceivedPayment]:
return self.squeak_db.get_received_payments_for_pubkey(
pubkey,
limit,
last_received_payment,
)
def delete_all_expired_offers(self):
self.delete_all_expired_received_offers()
self.delete_all_expired_sent_offers()