1
+ ' use strict'
2
+
3
+ require ' ./ImageViewer.scss'
4
+
5
+ React = require ' react'
6
+
7
+ ImageViewer = ({
8
+ files
9
+ file
10
+ viewPrevious
11
+ viewNext
12
+ selectFile
13
+ prevFile
14
+ nextFile
15
+ showNotifications
16
+ toggleZoom
17
+ imageZoomedIn
18
+ }) ->
19
+
20
+ <div className = " ImageViewer" >
21
+ <main className = " flex column middle light-bg" >
22
+ <div className = " content flex column flex-grow" >
23
+ {if file .name
24
+ <p className = " file-name" >{file .name }</p >
25
+ }
26
+
27
+ {if file .caption
28
+ <p className = " file-caption" >{file .caption }</p >
29
+ }
30
+
31
+ <div className = " slideshow flex column flex-grow" >
32
+ <div className = " preview flex center flex-grow flex-shrink" >
33
+ <div className = " previous flex flex-grow" >
34
+ { if prevFile
35
+ <a className = " arrow-previous" onClick = {viewPrevious}>
36
+ <button className = " clean icon arrow" ></button >
37
+ </a >
38
+ }
39
+
40
+ { if ! prevFile
41
+ <a className = " arrow-previous invisible disabled" >
42
+ <button className = " clean icon arrow" ></button >
43
+ </a >
44
+ }
45
+ </div >
46
+
47
+ <div className = " image flex column center" >
48
+ <div className = " img-container flex flex-grow" >
49
+ {if ! imageZoomedIn
50
+ <div className = " bg-image" onClick = {toggleZoom} style = {backgroundImage : ' url(' + file .url + ' )' } />
51
+ }
52
+ {if imageZoomedIn
53
+ <div className = " bg-image zoomed elevated" onClick = {toggleZoom}>
54
+ <img src = {file .url }/>
55
+ </div >
56
+ }
57
+ </div >
58
+ </div >
59
+
60
+ <div className = " next flex flex-grow" >
61
+ { if nextFile
62
+ <a className = " arrow-next" onClick = {viewNext}>
63
+ <button className = " clean icon arrow right" ></button >
64
+ </a >
65
+ }
66
+
67
+ { if ! nextFile
68
+ <a className = " arrow-next invisible disabled" >
69
+ <button className = " clean icon arrow right" ></button >
70
+ </a >
71
+ }
72
+ </div >
73
+ </div >
74
+
75
+ <ul className = " thumbnails" >
76
+ {for file in files
77
+ <li className = " thumbnail" key = {file .name }>
78
+ <button className = " clean" onClick = {selectFile .bind (null , file)}>
79
+ <img src = {file .url }/>
80
+ {if file .unreadMessages > 0 && showNotifications
81
+ <div className = " notification absolute" >
82
+ {file .unreadMessages }
83
+ </div >
84
+ }
85
+ </button >
86
+ </li >
87
+ }
88
+ </ul >
89
+
90
+ </div >
91
+ </div >
92
+ </main >
93
+ </div >
94
+
95
+ module .exports = ImageViewer
0 commit comments