1
- import React , { ChangeEvent , Component } from 'react'
1
+ import React , { ChangeEvent , Component , createRef } from 'react'
2
2
import { ScreenContext } from '../contexts'
3
3
import {
4
4
AudioAttachment ,
@@ -14,7 +14,7 @@ import { selectedAccountId } from '../ScreenController'
14
14
import AutoSizer from 'react-virtualized-auto-sizer'
15
15
import { FixedSizeGrid } from 'react-window'
16
16
import SettingsStoreInstance , { SettingsStoreState } from '../stores/settings'
17
- import moment , { Moment } from 'moment'
17
+ import moment from 'moment'
18
18
19
19
const log = getLogger ( 'renderer/Gallery' )
20
20
@@ -63,9 +63,9 @@ export default class Gallery extends Component<
63
63
loading : boolean
64
64
queryText : string
65
65
GalleryImageKeepAspectRatio ?: boolean
66
- dateMoment ?: Moment
67
66
}
68
67
> {
68
+ dateHeader = createRef < HTMLDivElement > ( )
69
69
constructor ( props : mediaProps ) {
70
70
super ( props )
71
71
this . state = {
@@ -77,7 +77,6 @@ export default class Gallery extends Component<
77
77
loading : true ,
78
78
queryText : '' ,
79
79
GalleryImageKeepAspectRatio : false ,
80
- dateMoment : undefined ,
81
80
}
82
81
83
82
this . settingsStoreListener = this . settingsStoreListener . bind ( this )
@@ -92,7 +91,6 @@ export default class Gallery extends Component<
92
91
mediaLoadResult : { } ,
93
92
loading : true ,
94
93
queryText : '' ,
95
- dateMoment : undefined ,
96
94
} )
97
95
}
98
96
@@ -152,7 +150,6 @@ export default class Gallery extends Component<
152
150
mediaMessageIds : media_ids ,
153
151
mediaLoadResult,
154
152
loading : false ,
155
- dateMoment : undefined ,
156
153
} )
157
154
this . forceUpdate ( )
158
155
} )
@@ -182,9 +179,10 @@ export default class Gallery extends Component<
182
179
183
180
updateFirstVisibleMessage ( message : Type . MessageLoadResult ) {
184
181
if ( message . variant === 'message' ) {
185
- this . setState ( {
186
- dateMoment : moment ( message . timestamp * 1000 ) ,
187
- } )
182
+ if ( this . dateHeader . current )
183
+ this . dateHeader . current . innerText = moment (
184
+ message . timestamp * 1000
185
+ ) . format ( 'LL' )
188
186
}
189
187
}
190
188
@@ -233,10 +231,8 @@ export default class Gallery extends Component<
233
231
</ li >
234
232
)
235
233
} ) }
236
- { showDateHeader && this . state . dateMoment && (
237
- < div className = 'big-date' >
238
- { this . state . dateMoment . format ( 'LL' ) }
239
- </ div >
234
+ { showDateHeader && (
235
+ < div className = 'big-date' ref = { this . dateHeader } > </ div >
240
236
) }
241
237
</ ul >
242
238
< div role = 'tabpanel' >
0 commit comments