@@ -6,30 +6,35 @@ import { connect } from 'react-redux';
6
6
7
7
import { updateFavoriteStatusWithID } from '../actions/index' ;
8
8
9
+ const resizeMasonryItem = ( item ) => {
10
+ var grid = document . getElementsByClassName ( 'pinterest-grid-photos' ) [ 0 ]
11
+ var rowGap = parseInt ( window . getComputedStyle ( grid ) . getPropertyValue ( 'grid-row-gap' ) )
12
+ var rowHeight = parseInt ( window . getComputedStyle ( grid ) . getPropertyValue ( 'grid-auto-rows' ) ) ;
13
+
14
+ let heightWithGap = item . querySelector ( '.pinterest-grid-photos__brick__photo' ) . getBoundingClientRect ( ) . height + rowGap
15
+ let rowHeightWithGap = rowHeight + rowGap
16
+ var rowSpan = Math . floor ( heightWithGap / rowHeightWithGap ) ;
17
+
18
+ item . style . gridRowEnd = 'span ' + rowSpan ;
19
+ }
20
+
21
+ const resizeAllMasonryItems = ( ) => {
22
+ var allItems = document . getElementsByClassName ( 'pinterest-grid-photos__brick' ) ;
23
+ for ( var i = 0 ; i < allItems . length ; i ++ ) {
24
+ resizeMasonryItem ( allItems [ i ] ) ;
25
+ }
26
+ }
27
+
28
+
9
29
class PinterestGrid extends Component {
10
30
31
+ componentDidUpdate ( ) {
32
+ resizeAllMasonryItems ( )
33
+ }
34
+
11
35
constructor ( ) {
12
36
super ( )
13
37
14
- const resizeMasonryItem = ( item ) => {
15
- var grid = document . getElementsByClassName ( 'pinterest-grid-photos' ) [ 0 ]
16
- var rowGap = parseInt ( window . getComputedStyle ( grid ) . getPropertyValue ( 'grid-row-gap' ) )
17
- var rowHeight = parseInt ( window . getComputedStyle ( grid ) . getPropertyValue ( 'grid-auto-rows' ) ) ;
18
-
19
- let heightWithGap = item . querySelector ( '.pinterest-grid-photos__brick__photo' ) . getBoundingClientRect ( ) . height + rowGap
20
- let rowHeightWithGap = rowHeight + rowGap
21
- var rowSpan = Math . floor ( heightWithGap / rowHeightWithGap ) ;
22
-
23
- item . style . gridRowEnd = 'span ' + rowSpan ;
24
- }
25
-
26
- const resizeAllMasonryItems = ( ) => {
27
- var allItems = document . getElementsByClassName ( 'pinterest-grid-photos__brick' ) ;
28
- for ( var i = 0 ; i < allItems . length ; i ++ ) {
29
- resizeMasonryItem ( allItems [ i ] ) ;
30
- }
31
- }
32
-
33
38
var masonryEvents = [ 'load' , 'resize' ] ;
34
39
masonryEvents . forEach ( event => {
35
40
window . addEventListener ( event , resizeAllMasonryItems ) ;
0 commit comments