-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdashboard-accounts.8ac18cb9479de97a80ab.js
1 lines (1 loc) · 14 KB
/
dashboard-accounts.8ac18cb9479de97a80ab.js
1
"use strict";(this.webpackChunkBitShares2_light=this.webpackChunkBitShares2_light||[]).push([[884],{22053:(t,e,s)=>{s.r(e),s.d(e,{default:()=>B});var n=s(67294),a=s(43393),i=s.n(a),r=s(13973),c=s(58074),o=s.n(c),l=s(89449),d=s(39014),h=s(29548),u=s(23037),p=s(82267),m=s(55294),g=s(82050),b=s(91684),E=s(30806),w=s(68555),v=s(32793),y=s(112),A=s.n(y),_=s(41075),f=s(5977);class S extends n.Component{static propTypes={accounts:u.Z.ChainAccountsList.isRequired,ignoredAccounts:u.Z.ChainAccountsList};static defaultProps={width:2e3,compact:!1};constructor(t){super(),this.state={inverseSort:t.viewSettings.get("dashboardSortInverse",!0),sortBy:t.viewSettings.get("dashboardSort","star"),dashboardFilter:t.viewSettings.get("dashboardFilter","")}}shouldComponentUpdate(t,e){return!r.Z.are_equal_shallow(t.accounts,this.props.accounts)||t.isContactsList!==this.props.isContactsList||t.showMyAccounts!==this.props.showMyAccounts||t.width!==this.props.width||t.showIgnored!==this.props.showIgnored||t.locked!==this.props.locked||t.passwordAccount!==this.props.passwordAccount||!r.Z.are_equal_shallow(t.starredAccounts,this.props.starredAccounts)||!r.Z.are_equal_shallow(e,this.state)}_onStar(t,e,s){s.preventDefault(),e?g.Z.removeStarAccount(t):g.Z.addStarAccount(t)}_goAccount(t,e){this.props.history.push(`/account/${t}`),m.Z.changeViewSetting({overviewTab:e})}_createAccount(){this.props.history.push("/create-account/wallet")}_onFilter(t){this.setState({dashboardFilter:t.target.value.toLowerCase()}),m.Z.changeViewSetting({dashboardFilter:t.target.value.toLowerCase()})}_setSort(t){let e=t===this.state.sortBy?!this.state.inverseSort:this.state.inverseSort;this.setState({sortBy:t,inverseSort:e}),m.Z.changeViewSetting({dashboardSort:t,dashboardSortInverse:e})}_onAddContact(t){g.Z.addAccountContact(t)}_onRemoveContact(t){g.Z.removeAccountContact(t)}_renderList(t,e){const{width:s,starredAccounts:a,isContactsList:c,passwordAccount:o}=this.props,{dashboardFilter:l,sortBy:d,inverseSort:h}=this.state;let u=i().List();return t.filter((t=>{if(!t)return!1;let e=t.get("name"),s=v.Z.isMyAccount(t)||e===o;return!!c||s===this.props.showMyAccounts})).filter((t=>!!t&&-1!==t.get("name").toLowerCase().indexOf(l))).sort(((t,e)=>{switch(d){case"star":return function(t,e,s,n){let a=t.get("name"),i=e.get("name"),c=n.has(a),o=n.has(i);return c&&!o?s?-1:1:o&&!c||a>i?s?1:-1:a<i?s?-1:1:r.Z.sortText(a,i,!s)}(t,e,h,a);case"name":return r.Z.sortText(t.get("name"),e.get("name"),h)}})).map((t=>{if(t){let i={},r={},l={};u=u.clear();let d=t.get("name"),h=t.get("lifetime_referrer_name")===d;t.get("orders")&&t.get("orders").forEach(((t,e)=>{let s=E.ChainStore.getObject(t);if(s){let t=s.getIn(["sell_price","base","asset_id"]);l[t]?l[t]+=parseInt(s.get("for_sale"),10):l[t]=parseInt(s.get("for_sale"),10)}})),t.get("call_orders")&&t.get("call_orders").forEach(((t,e)=>{let s=E.ChainStore.getObject(t);if(s){let t=s.getIn(["call_price","base","asset_id"]);i[t]?i[t]+=parseInt(s.get("collateral"),10):i[t]=parseInt(s.get("collateral"),10);let e=s.getIn(["call_price","quote","asset_id"]);r[e]?r[e]+=parseInt(s.get("debt"),10):r[e]=parseInt(s.get("debt"),10)}}));let p=t.get("balances");t.get("balances")&&p.forEach((t=>{let e=E.ChainStore.getObject(t);if(!e||!e.get("balance"))return null;u=u.push(t)}));let m=v.Z.isMyAccount(t)||d===o,g=a.has(d),y=g?"gold-star":"grey-star";return n.createElement("tr",{key:d},n.createElement("td",{className:"clickable",onClick:this._onStar.bind(this,d,g)},n.createElement(b.Z,{className:y,name:"fi-star",title:"icons.fi_star.account"})),c?e&&n.createElement("td",{onClick:this._onAddContact.bind(this,d)},n.createElement(b.Z,{name:"plus-circle",title:"icons.plus_circle.add_contact"}))||n.createElement("td",{onClick:this._onRemoveContact.bind(this,d)},n.createElement(b.Z,{name:"minus-circle",title:"icons.minus_circle.remove_contact"})):null,n.createElement("td",{style:{textAlign:"left"}},t.get("id")),n.createElement("td",{style:{textAlign:"left",paddingLeft:10},onClick:this._goAccount.bind(this,d,0),className:"clickable"+(m?" my-account":"")},n.createElement("span",{className:h?"lifetime":""},d)),n.createElement("td",{className:"clickable",onClick:this._goAccount.bind(this,d,1),style:{textAlign:"right"}},n.createElement(w.Z,{noTip:!0,balances:[],openOrders:l})),s>=750?n.createElement("td",{className:"clickable",onClick:this._goAccount.bind(this,d,2),style:{textAlign:"right"}},n.createElement(w.Z,{noTip:!0,balances:[],collateral:i})):null,s>=1200?n.createElement("td",{className:"clickable",onClick:this._goAccount.bind(this,d,2),style:{textAlign:"right"}},n.createElement(w.Z,{noTip:!0,balances:[],debt:r})):null,n.createElement("td",{className:"clickable",onClick:this._goAccount.bind(this,d,0),style:{textAlign:"right"}},n.createElement(w.Z,{noTip:!0,balances:u,collateral:i,debt:r,openOrders:l})))}}))}render(){let{width:t,showIgnored:e,isContactsList:s}=this.props;const{dashboardFilter:a}=this.state;let i=this._renderList(this.props.accounts),r=this._renderList(this.props.ignoredAccounts,!0),c=s?A().translate("explorer.accounts.filter_contacts"):A().translate("explorer.accounts.filter");c+="...";let l=!!_.Z.getWallet();return n.createElement("div",{style:this.props.style},this.props.compact?null:n.createElement("section",{style:{paddingTop:"1rem",paddingLeft:"2rem"}},n.createElement("input",{placeholder:c,style:{maxWidth:"20rem",display:"inline-block"},type:"text",value:a,onChange:this._onFilter.bind(this)}),l&&!s?n.createElement("div",{onClick:this._createAccount.bind(this),style:{display:"inline-block",marginLeft:5,marginBottom:"1rem"},className:"button small"},n.createElement(o(),{content:"header.create_account"})):null,r&&r.length?n.createElement("div",{onClick:this.props.onToggleIgnored,style:{display:"inline-block",float:"right",marginRight:"20px"},className:"button small"},n.createElement(o(),{content:"account."+(this.props.showIgnored?"hide_ignored":"show_ignored")})):null),n.createElement("table",{className:"table table-hover dashboard-table",style:{fontSize:"0.85rem"}},this.props.compact?null:n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",{onClick:this._setSort.bind(this,"star"),className:"clickable"},n.createElement(b.Z,{className:"grey-star",name:"fi-star",title:"icons.fi_star.sort_accounts"})),s?n.createElement("th",null,n.createElement(b.Z,{name:"user",title:"icons.user.account"})):null,n.createElement("th",{style:{textAlign:"left"}},"ID"),n.createElement("th",{style:{textAlign:"left",paddingLeft:10},onClick:this._setSort.bind(this,"name"),className:"clickable"},n.createElement(o(),{content:"header.account"})),n.createElement("th",{style:{textAlign:"right"}},n.createElement(o(),{content:"account.open_orders"})),t>=750?n.createElement("th",{style:{textAlign:"right"}},n.createElement(o(),{content:"account.as_collateral"})):null,t>=1200?n.createElement("th",{style:{textAlign:"right"}},n.createElement(o(),{content:"transaction.borrow_amount"})):null,n.createElement("th",{style:{textAlign:"right",marginRight:20}},n.createElement(o(),{content:"account.total_value"})))),n.createElement("tbody",null,i,e&&r.length?n.createElement("tr",{className:"dashboard-table--hiddenAccounts",style:{backgroundColor:"transparent"},key:"hidden"},n.createElement("td",{colSpan:"8"},A().translate("account.hidden_accounts_row"),":")):null,e&&r)))}}S=(0,p.Z)(S);class C extends n.Component{render(){return n.createElement(S,this.props)}}C=(0,f.EN)(C);const T=(0,l.$)(C,{listenTo:()=>[d.Z,h.Z,v.Z],getProps:()=>({locked:h.Z.getState().locked,starredAccounts:v.Z.getState().starredAccounts,viewSettings:d.Z.getState().viewSettings})});var Z=s(32049),k=s(52531),x=s(4207),N=s(12326),L=s(34091),I=s(59851);function D(){return D=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(t[n]=s[n])}return t},D.apply(this,arguments)}class O extends n.Component{render(){return n.createElement(I.Z,{stores:[v.Z,d.Z,N.Z],inject:{contacts:()=>v.Z.getState().accountContacts,myActiveAccounts:()=>v.Z.getState().myActiveAccounts,myHiddenAccounts:()=>v.Z.getState().myHiddenAccounts,accountsReady:()=>v.Z.getState().accountsLoaded&&v.Z.getState().refsLoaded,passwordAccount:()=>v.Z.getState().passwordAccount,currentEntry:d.Z.getState().viewSettings.get("dashboardEntry","accounts")}},n.createElement(R,this.props))}}class R extends n.Component{constructor(t){super(),this.state={width:null,showIgnored:!1,currentEntry:t.currentEntry},this._setDimensions=this._setDimensions.bind(this)}componentDidMount(){this._setDimensions(),window.addEventListener("resize",this._setDimensions,{capture:!1,passive:!0})}shouldComponentUpdate(t,e){return t.myActiveAccounts!==this.props.myActiveAccounts||t.contacts!==this.props.contacts||t.ignoredAccounts!==this.props.ignoredAccounts||t.passwordAccount!==this.props.passwordAccount||e.width!==this.state.width||t.accountsReady!==this.props.accountsReady||e.showIgnored!==this.state.showIgnored||e.currentEntry!==this.state.currentEntry}componentWillUnmount(){window.removeEventListener("resize",this._setDimensions)}_setDimensions(){let t=window.innerWidth;t!==this.state.width&&this.setState({width:t})}_onToggleIgnored(){this.setState({showIgnored:!this.state.showIgnored})}_onSwitchType(t){this.setState({currentEntry:t}),m.Z.changeViewSetting({dashboardEntry:t})}render(){let{myActiveAccounts:t,myHiddenAccounts:e,accountsReady:s,passwordAccount:a}=this.props,{width:r,showIgnored:c}=this.state;a&&!t.has(a)&&(t=t.add(a));let o=t.toArray().sort();a&&-1===o.indexOf(a)&&o.push(a);let l=e.toArray().sort(),d=t.size+e.size+(a?1:0);if(!s)return n.createElement(k.Z,null);if(!d)return n.createElement(x.Z,null);const h=this.props.contacts.toArray();return n.createElement("div",{ref:"wrapper",className:"grid-block page-layout vertical"},n.createElement("div",{ref:"container",className:"tabs-container generic-bordered-box"},n.createElement(L.m,{setting:"accountTab",className:"account-tabs",defaultActiveTab:1,segmented:!1,tabsClass:"account-overview no-padding bordered-header content-block"},n.createElement(L.O,{title:"account.accounts"},n.createElement("div",{className:"generic-bordered-box"},n.createElement("div",{className:"box-content"},n.createElement(T,{accounts:i().List(o),ignoredAccounts:i().List(l),width:r,onToggleIgnored:this._onToggleIgnored.bind(this),showIgnored:c,showMyAccounts:!0})))),n.createElement(L.O,{title:"account.contacts"},n.createElement("div",{className:"generic-bordered-box"},n.createElement("div",{className:"box-content"},n.createElement(T,{accounts:h,passwordAccount:a,ignoredAccounts:i().List(l),width:r,onToggleIgnored:this._onToggleIgnored.bind(this),showIgnored:c,isContactsList:!0})))),n.createElement(L.O,{title:"account.recent"},n.createElement(Z.t,{accountsList:t,limit:10,compactView:!1,fullHeight:!0,showFilters:!0,dashboard:!0})))))}}const B=t=>n.createElement(O,D({},t,{onlyAccounts:!0}))},34091:(t,e,s)=>{s.d(e,{O:()=>m,m:()=>g});var n=s(67294),a=s(45697),i=s.n(a),r=s(94184),c=s.n(r),o=s(89449),l=s(55294),d=s(39014),h=s(112),u=s.n(h),p=s(5977);class m extends n.Component{static propTypes={changeTab:i().func,isActive:i().bool.isRequired,index:i().number.isRequired,className:i().string,isLinkTo:i().string,subText:i().oneOfType([i().object,i().string])};static defaultProps={isActive:!1,index:0,className:"",isLinkTo:"",subText:null};render(){let{isActive:t,index:e,changeTab:s,title:a,className:i,updatedTab:r,disabled:o,subText:l}=this.props,d=c()({"is-active":t},i);return"string"==typeof a&&a.indexOf(".")>0&&(a=u().translate(a)),this.props.collapsed?("string"==typeof l&&(l=l.trim()),"span"===a.type&&(a=a.props.children[2]),n.createElement("option",{value:e,"data-is-link-to":this.props.isLinkTo},a,r?"*":"",l&&" (",l&&l,l&&")")):n.createElement("li",{className:d,onClick:o?null:s.bind(this,e,this.props.isLinkTo)},n.createElement("a",null,n.createElement("span",{className:"tab-title"},a,r?"*":""),l&&n.createElement("div",{className:"tab-subtext"},l)))}}class g extends n.Component{static propTypes={setting:i().string,defaultActiveTab:i().number,segmented:i().bool};static defaultProps={active:0,defaultActiveTab:0,segmented:!0,contentClass:"",style:{}};constructor(t){super(),this.state={activeTab:t.setting?t.viewSettings.get(t.setting,t.defaultActiveTab):t.defaultActiveTab,width:window.innerWidth},this._setDimensions=this._setDimensions.bind(this)}componentDidMount(){this._setDimensions(),window.addEventListener("resize",this._setDimensions,{capture:!1,passive:!0})}UNSAFE_componentWillReceiveProps(t){let e=t.viewSettings.get(t.setting);e!==this.props.viewSettings.get(this.props.setting)&&this.setState({activeTab:e})}componentWillUnmount(){window.removeEventListener("resize",this._setDimensions)}_setDimensions(){let t=window.innerWidth;t!==this.state.width&&this.setState({width:t})}_changeTab(t,e){t!==this.state.activeTab&&(""!==e&&this.props.history.push(e),this.props.setting&&l.Z.changeViewSetting({[this.props.setting]:t}),this.setState({activeTab:t}),this.props.onChangeTab&&this.props.onChangeTab(t))}render(){let{children:t,contentClass:e,tabsClass:s,style:a,segmented:i}=this.props;const r=this.state.width<900&&n.Children.count(t)>2;let o=null,l=n.Children.map(t,((t,e)=>{if(!t)return null;if(r&&t.props.disabled)return null;let s=e===this.state.activeTab;return s&&(o=t.props.children),n.cloneElement(t,{collapsed:r,isActive:s,changeTab:this._changeTab.bind(this),index:e})})).filter((t=>null!==t));return o||(o=l[0].props.children),n.createElement("div",{className:c()(this.props.actionButtons?"with-buttons":"",this.props.className)},n.createElement("div",{className:"service-selector"},n.createElement("ul",{style:a,className:c()("button-group no-margin",s,{segmented:i})},r?n.createElement("li",{style:{paddingLeft:10,paddingRight:10,minWidth:"15rem"}},n.createElement("select",{value:this.state.activeTab,style:{marginTop:10,marginBottom:10},className:"bts-select",onChange:t=>{let e=parseInt(t.target.value,10);this._changeTab(e,t.target[e].attributes["data-is-link-to"].value)}},l)):l,this.props.actionButtons?n.createElement("li",{className:"tabs-action-buttons"},this.props.actionButtons):null)),n.createElement("div",{className:c()("tab-content",e)},o))}}g=(0,o.$)(g,{listenTo:()=>[d.Z],getProps:()=>({viewSettings:d.Z.getState().viewSettings})}),g=(0,p.EN)(g)}}]);