@@ -144,7 +144,8 @@ module.exports = function (dom, kb, subject, options) {
144144 // field.cols = 40
145145 field . setAttribute ( 'style' , messageBodyStyle + 'background-color: #eef;' )
146146
147- field . addEventListener ( 'keyup' , function ( e ) { // User preference?
147+ // Trap the Enter BEFORE it is used ti make a newline
148+ field . addEventListener ( 'keydown' , function ( e ) { // User preference?
148149 if ( e . keyCode === 13 ) {
149150 if ( ! e . altKey ) { // Alt-Enter just adds a new line
150151 sendMessage ( )
@@ -237,6 +238,18 @@ module.exports = function (dom, kb, subject, options) {
237238 renderMessage ( messageTable , bindings , messageTable . fresh ) // fresh from elsewhere
238239 }
239240
241+ function elementForImageURI ( imageUri ) {
242+ let img = dom . createElement ( 'img' )
243+ img . setAttribute ( 'style' , 'max-height: 10em; border-radius: 1em; margin: 0.7em;' )
244+ // UI.widgets.makeDropTarget(img, handleURIsDroppedOnMugshot, droppedFileHandler)
245+ if ( imageUri ) img . setAttribute ( 'src' , imageUri )
246+ let anchor = dom . createElement ( 'a' )
247+ anchor . setAttribute ( 'href' , imageUri )
248+ anchor . setAttribute ( 'target' , 'images' )
249+ anchor . appendChild ( img )
250+ return anchor
251+ }
252+
240253 var renderMessage = function ( messageTable , bindings , fresh ) {
241254 var creator = bindings [ '?creator' ]
242255 var message = bindings [ '?msg' ]
@@ -269,12 +282,19 @@ module.exports = function (dom, kb, subject, options) {
269282 creatorAndDate ( td1 , creator , UI . widgets . shortDate ( dateString ) , message )
270283
271284 var td2 = dom . createElement ( 'td' )
285+ let text = content . value
272286 tr . appendChild ( td2 )
273- var pre = dom . createElement ( 'p' )
274- pre . setAttribute ( 'style' , messageBodyStyle +
275- ( fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;' ) )
276- td2 . appendChild ( pre )
277- pre . textContent = content . value
287+ var isImage = ( / \. ( g i f | j p g | j p e g | t i f f | p n g | s v g ) $ / i) . test ( text ) // @@ Should use content-type not URI
288+ if ( isImage ) {
289+ let img = elementForImageURI ( text )
290+ td2 . appendChild ( img )
291+ } else { // text
292+ var pre = dom . createElement ( 'p' )
293+ pre . setAttribute ( 'style' , messageBodyStyle +
294+ ( fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;' ) )
295+ td2 . appendChild ( pre )
296+ pre . textContent = text
297+ }
278298
279299 var td3 = dom . createElement ( 'td' )
280300 tr . appendChild ( td3 )
0 commit comments