11import { isEscapeKey } from './util.js' ;
22import { DATA_ELEMENTS } from './photo-modal-elements.js' ;
3+ import { renderNextComments , closeComments , initComments } from './comments.js' ;
34
45const onDocumentKeydown = ( evt ) => {
56 if ( isEscapeKey ( evt ) ) {
@@ -12,40 +13,21 @@ const showModal = (isShown = true) => {
1213 if ( isShown ) {
1314 DATA_ELEMENTS . photoModalElement . classList . remove ( 'hidden' ) ;
1415 document . body . classList . add ( 'modal-open' ) ;
15- } else {
16- DATA_ELEMENTS . photoModalElement . classList . add ( 'hidden' ) ;
17- document . body . classList . remove ( 'modal-open' ) ;
16+ return ;
1817 }
19- } ;
2018
21- const renderComments = ( comments ) => {
22- const commentsFragment = document . createDocumentFragment ( ) ;
23- comments . forEach ( ( comment ) => {
24- const newCommentsElement = DATA_ELEMENTS . commentTemplate . cloneNode ( true ) ;
25- const avatar = newCommentsElement . querySelector ( '.social__picture' ) ;
26- avatar . src = comment . avatar ;
27- avatar . alt = comment . name ;
28- newCommentsElement . querySelector ( '.social__text' ) . textContent = comment . message ;
29- commentsFragment . append ( newCommentsElement ) ;
30- } ) ;
31- DATA_ELEMENTS . commentsListElement . appendChild ( commentsFragment ) ;
19+ DATA_ELEMENTS . photoModalElement . classList . add ( 'hidden' ) ;
20+ document . body . classList . remove ( 'modal-open' ) ;
3221} ;
3322
34- const renderModal = ( ( { url, description, likes, comments} ) => {
23+ const renderModal = ( { url, description, likes, comments } ) => {
3524 DATA_ELEMENTS . bigPhotoImgElement . src = url ;
3625 DATA_ELEMENTS . bigPhotoImgElement . alt = description ;
3726 DATA_ELEMENTS . likesCountElement . textContent = likes ;
3827 DATA_ELEMENTS . socialCaptionElement . textContent = description ;
3928
40- DATA_ELEMENTS . commentsListElement . innerHTML = '' ;
41-
42- DATA_ELEMENTS . commentShownCountElement . textContent = comments . length ;
43- DATA_ELEMENTS . commentTotalCountElement . textContent = comments . length ;
44- DATA_ELEMENTS . commentCountBlockElement . classList . add ( 'hidden' ) ;
45- DATA_ELEMENTS . commentsLoaderElement . classList . add ( 'hidden' ) ;
46-
47- renderComments ( comments ) ;
48- } ) ;
29+ initComments ( comments ) ;
30+ } ;
4931
5032const openPhotoModal = ( photo ) => {
5133 showModal ( ) ;
@@ -56,10 +38,11 @@ const openPhotoModal = (photo) => {
5638const closePhotoModal = ( ) => {
5739 showModal ( false ) ;
5840 document . removeEventListener ( 'keydown' , onDocumentKeydown ) ;
41+ closeComments ( ) ;
5942} ;
6043
61- DATA_ELEMENTS . photoModalCloseElement . addEventListener ( 'click' , ( ) => {
62- closePhotoModal ( ) ;
63- } ) ;
44+ DATA_ELEMENTS . photoModalCloseElement . addEventListener ( 'click' , closePhotoModal ) ;
45+ DATA_ELEMENTS . commentsLoaderElement . addEventListener ( 'click' , renderNextComments ) ;
6446
6547export { openPhotoModal , closePhotoModal } ;
48+
0 commit comments