1 (window
.webpackJsonp
=window
.webpackJsonp
||[]).push([[48],{764:function(e
,t
,a
){"use strict";a
.r(t
);var n
=a(0),o
=a(2),c
=a(7),i
=a(1),s
=a(3),r
=a
.n(s
),l
=a(12),d
=a(18),p
=a
.n(d
),u
=a(5),h
=a
.n(u
),b
=a(23),m
=a(33),O
=a(293),g
=a(662),f
=a(992),j
=a(19),v
=a(148),y
=a(25),_
=a(15),I
=a(10),M
=a
.n(I
),L
=a(208),w
=a(149),R=function(e
){function t(){for(var t
,a
=arguments
.length
,n
=new Array(a
),c
=0;c
<a
;c
++)n
[c
]=arguments
[c
];return t
=e
.call
.apply(e
,[this].concat(n
))||this,Object(i
.a
)(Object(o
.a
)(t
),"state",{visible:"hide_all"!==_
.g
&&!t
.props
.attachment
.getIn(["status","sensitive"])||"show_all"===_
.g
,loaded:!1}),Object(i
.a
)(Object(o
.a
)(t
),"setCanvasRef",function(e
){t
.canvas
=e
}),Object(i
.a
)(Object(o
.a
)(t
),"handleImageLoad",function(){t
.setState({loaded:!0})}),Object(i
.a
)(Object(o
.a
)(t
),"handleMouseEnter",function(e
){t
.hoverToPlay()&&e
.target
.play()}),Object(i
.a
)(Object(o
.a
)(t
),"handleMouseLeave",function(e
){t
.hoverToPlay()&&(e
.target
.pause(),e
.target
.currentTime
=0)}),Object(i
.a
)(Object(o
.a
)(t
),"handleClick",function(e
){0!==e
.button
||e
.ctrlKey
||e
.metaKey
||(e
.preventDefault(),t
.state
.visible
?t
.props
.onOpenMedia(t
.props
.attachment
):t
.setState({visible:!0}))}),t
}Object(c
.a
)(t
,e
);var a
=t
.prototype;return a
.componentDidMount=function(){this.props
.attachment
.get("blurhash")&&this._decode()},a
.componentDidUpdate=function(e
){e
.attachment
.get("blurhash")!==this.props
.attachment
.get("blurhash")&&this.props
.attachment
.get("blurhash")&&this._decode()},a
._decode=function(){var e
=this.props
.attachment
.get("blurhash"),t
=Object(L
.decode
)(e
,32,32);if(t
){var a
=this.canvas
.getContext("2d"),n
=new ImageData(t
,32,32);a
.putImageData(n
,0,0)}},a
.hoverToPlay=function(){return!_
.a
&&-1!==["gifv","video"].indexOf(this.props
.attachment
.get("type"))},a
.render=function(){var e
=this.props
,t
=e
.attachment
,a
=e
.displayWidth
,o
=this.state
,c
=o
.visible
,i
=o
.loaded
,s
=Math
.floor((a
-4)/3)-4+"px",l
=s
,d
=t
.get("status"),p
=d
.get("spoiler_text")||t
.get("description"),u
="";if("unknown"===t
.get("type"));else if("audio"===t
.get("type"))u
=Object(n
.a
)("span",{className:"account-gallery__item__icons"},void 0,Object(n
.a
)(y
.a
,{id:"music"}));else if("image"===t
.get("type")){var h
=100*((t
.getIn(["meta","focus","x"])||0)/2+.5),b=100*((t.getIn(["meta","focus","y"])||0)/-2+.5);u
=Object(n
.a
)("img",{src:t
.get("preview_url"),alt:t
.get("description"),title:t
.get("description"),style:{objectPosition:h
+"% "+b
+"%"},onLoad:this.handleImageLoad
})}else if(-1!==["gifv","video"].indexOf(t
.get("type"))){var m
=!Object(w
.a
)()&&_
.a
;u
=Object(n
.a
)("div",{className:M()("media-gallery__gifv",{autoplay:m
})},void 0,Object(n
.a
)("video",{className:"media-gallery__item-gifv-thumbnail","aria-label":t
.get("description"),title:t
.get("description"),role:"application",src:t
.get("url"),onMouseEnter:this.handleMouseEnter
,onMouseLeave:this.handleMouseLeave
,autoPlay:m
,loop:!0,muted:!0}),Object(n
.a
)("span",{className:"media-gallery__gifv__label"},void 0,"GIF"))}var O
=Object(n
.a
)("span",{className:"account-gallery__item__icons"},void 0,Object(n
.a
)(y
.a
,{id:"eye-slash"}));return Object(n
.a
)("div",{className:"account-gallery__item",style:{width:s
,height:l
}},void 0,Object(n
.a
)("a",{className:"media-gallery__item-thumbnail",href:d
.get("url"),target:"_blank",onClick:this.handleClick
,title:p
},void 0,r
.a
.createElement("canvas",{width:32,height:32,ref:this.setCanvasRef
,className:M()("media-gallery__preview",{"media-gallery__preview--hidden":c
&&i
})}),c
?u:O
))},t
}(j
.a
);Object(i
.a
)(R
,"propTypes",{attachment:p
.a
.map
.isRequired
,displayWidth:h
.a
.number
.isRequired
,onOpenMedia:h
.a
.func
.isRequired
});var x
,C
,k
,S
=a(997),T
=a(460),N
=a(991),D
=a(969),E
=a(42);a
.d(t
,"default",function(){return A
});var q=function(e
){function t(){for(var t
,a
=arguments
.length
,n
=new Array(a
),c
=0;c
<a
;c
++)n
[c
]=arguments
[c
];return t
=e
.call
.apply(e
,[this].concat(n
))||this,Object(i
.a
)(Object(o
.a
)(t
),"handleLoadMore",function(){t
.props
.onLoadMore(t
.props
.maxId
)}),t
}return Object(c
.a
)(t
,e
),t
.prototype.render=function(){return Object(n
.a
)(N
.a
,{disabled:this.props
.disabled
,onClick:this.handleLoadMore
})},t
}(j
.a
);Object(i
.a
)(q
,"propTypes",{maxId:h
.a
.string
,onLoadMore:h
.a
.func
.isRequired
});var A
=Object(l
.connect
)(function(e
,t
){return{isAccount:!!e
.getIn(["accounts",t
.params
.accountId
]),attachments:Object(v
.a
)(e
,t
.params
.accountId
),isLoading:e
.getIn(["timelines","account:"+t
.params
.accountId
+":media","isLoading"]),hasMore:e
.getIn(["timelines","account:"+t
.params
.accountId
+":media","hasMore"])}})((k
=C=function(e
){function t(){for(var t
,a
=arguments
.length
,n
=new Array(a
),c
=0;c
<a
;c
++)n
[c
]=arguments
[c
];return t
=e
.call
.apply(e
,[this].concat(n
))||this,Object(i
.a
)(Object(o
.a
)(t
),"state",{width:323}),Object(i
.a
)(Object(o
.a
)(t
),"handleHeaderClick",function(){t
.column
.scrollTop()}),Object(i
.a
)(Object(o
.a
)(t
),"handleScrollToBottom",function(){t
.props
.hasMore
&&t
.handleLoadMore(t
.props
.attachments
.size
>0?t
.props
.attachments
.last().getIn(["status","id"]):void 0)}),Object(i
.a
)(Object(o
.a
)(t
),"handleScroll",function(e
){var a
=e
.target
,n
=a
.scrollTop
;150>a
.scrollHeight
-n
-a
.clientHeight
&&!t
.props
.isLoading
&&t
.handleScrollToBottom()}),Object(i
.a
)(Object(o
.a
)(t
),"handleLoadMore",function(e
){t
.props
.dispatch(Object(m
.p
)(t
.props
.params
.accountId
,{maxId:e
}))}),Object(i
.a
)(Object(o
.a
)(t
),"handleLoadOlder",function(e
){e
.preventDefault(),t
.handleScrollToBottom()}),Object(i
.a
)(Object(o
.a
)(t
),"shouldUpdateScroll",function(e
,t
){var a
=t
.location
;return!(((e
||{}).location
||{}).state
||{}).mastodonModalOpen
&&!(a
.state
&&a
.state
.mastodonModalOpen
)}),Object(i
.a
)(Object(o
.a
)(t
),"setColumnRef",function(e
){t
.column
=e
}),Object(i
.a
)(Object(o
.a
)(t
),"handleOpenMedia",function(e
){if(["video","audio"].includes(e
.get("type")))t
.props
.dispatch(Object(E
.d
)("VIDEO",{media:e
,status:e
.get("status")}));else{var a
=e
.getIn(["status","media_attachments"]),n
=a
.findIndex(function(t
){return t
.get("id")===e
.get("id")});t
.props
.dispatch(Object(E
.d
)("MEDIA",{media:a
,index:n
,status:e
.get("status")}))}}),Object(i
.a
)(Object(o
.a
)(t
),"handleRef",function(e
){e
&&t
.setState({width:e
.offsetWidth
})}),t
}Object(c
.a
)(t
,e
);var a
=t
.prototype;return a
.componentDidMount=function(){this.props
.dispatch(Object(b
.F
)(this.props
.params
.accountId
)),this.props
.dispatch(Object(m
.p
)(this.props
.params
.accountId
))},a
.componentWillReceiveProps=function(e
){e
.params
.accountId
!==this.props
.params
.accountId
&&e
.params
.accountId
&&(this.props
.dispatch(Object(b
.F
)(e
.params
.accountId
)),this.props
.dispatch(Object(m
.p
)(this.props
.params
.accountId
)))},a
.render=function(){var e
=this,t
=this.props
,a
=t
.attachments
,o
=t
.isLoading
,c
=t
.hasMore
,i
=t
.isAccount
,s
=this.state
.width
;if(!i
)return Object(n
.a
)(g
.a
,{},void 0,Object(n
.a
)(D
.a
,{}));if(!a
&&o
)return Object(n
.a
)(g
.a
,{},void 0,Object(n
.a
)(O
.a
,{}));var l
=null;return!c
||o
&&0===a
.size
||(l
=Object(n
.a
)(N
.a
,{visible:!o
,onClick:this.handleLoadOlder
})),r
.a
.createElement(g
.a
,{ref:this.setColumnRef
},Object(n
.a
)(f
.a
,{onClick:this.handleHeaderClick
}),Object(n
.a
)(T
.a
,{scrollKey:"account_gallery",shouldUpdateScroll:this.shouldUpdateScroll
},void 0,Object(n
.a
)("div",{className:"scrollable scrollable--flex",onScroll:this.handleScroll
},void 0,Object(n
.a
)(S
.a
,{accountId:this.props
.params
.accountId
}),r
.a
.createElement("div",{role:"feed",className:"account-gallery__container",ref:this.handleRef
},a
.map(function(t
,o
){return null===t
?Object(n
.a
)(q
,{maxId:o
>0?a
.getIn(o
-1,"id"):null,onLoadMore:e
.handleLoadMore
},"more:"+a
.getIn(o
+1,"id")):Object(n
.a
)(R
,{attachment:t
,displayWidth:s
,onOpenMedia:e
.handleOpenMedia
},t
.get("id"))}),l
),o
&&0===a
.size
&&Object(n
.a
)("div",{className:"scrollable__append"},void 0,Object(n
.a
)(O
.a
,{})))))},t
}(j
.a
),Object(i
.a
)(C
,"propTypes",{params:h
.a
.object
.isRequired
,dispatch:h
.a
.func
.isRequired
,attachments:p
.a
.list
.isRequired
,isLoading:h
.a
.bool
,hasMore:h
.a
.bool
,isAccount:h
.a
.bool
}),x
=k
))||x
}}]);
2 //# sourceMappingURL=account_gallery.js.map