@@ -35,12 +35,17 @@ class ArtworkDetailContainer extends Component {
3535 }
3636
3737 componentWillReceiveProps ( nextProps ) {
38- console . log ( 'nextProps' , nextProps ) ;
3938 this . setState ( {
4039 thumb_url : nextProps . singleArtwork && nextProps . singleArtwork . thumb_url || noThumbImg
4140 } ) ;
4241 }
4342
43+ componentDidUpdate ( ) {
44+ if ( this . canvas && ! this . glslCanvas ) {
45+ this . glslCanvas = new GlslCanvas ( this . canvas ) ;
46+ }
47+ }
48+
4449 _formatDisplayName ( format ) {
4550 switch ( format ) {
4651 case 'openframe-glslviewer' :
@@ -50,6 +55,23 @@ class ArtworkDetailContainer extends Component {
5055 }
5156 }
5257
58+ _getPreviewElement ( ) {
59+ const url = this . props . singleArtwork . url ;
60+ const re = / t h e b o o k o f s h a d e r s \. c o m / i;
61+ const bos = url . match ( re ) ;
62+ if ( bos ) {
63+ return ( < canvas
64+ ref = { ( canvas ) => { this . canvas = canvas ; } }
65+ className = "artwork-detail__canvas"
66+ data-fragment-url = { url }
67+ width = "1000"
68+ height = "1000" > </ canvas > ) ;
69+
70+ } else {
71+ return ( < img className = "artwork-detail__img" src = { this . state . thumb_url } onError = { ::this . _imageError } /> ) ;
72+ }
73+ }
74+
5375 _handlePushClick ( e ) {
5476 e . preventDefault ( ) ;
5577 let { params, actions, isAuthenticated} = this . props ;
@@ -111,7 +133,9 @@ class ArtworkDetailContainer extends Component {
111133 < div className = "artwork-detail__author" > by { singleArtwork . author_name } </ div >
112134 </ div >
113135
114- < img className = "artwork-detail__img" src = { this . state . thumb_url } onError = { ::this . _imageError } />
136+ {
137+ ::this . _getPreviewElement ( this . state . thumb_url )
138+ }
115139
116140 < div className = "artwork-detail__info" >
117141
0 commit comments