Skip to content

Commit f231dde

Browse files
author
Tim Berners-Lee
committed
Add inline pictures (using file ext) and fix probelm when Enter hit mid-line givung a newline as well as a Send
1 parent c64aa1f commit f231dde

1 file changed

Lines changed: 26 additions & 6 deletions

File tree

src/infiniteMessageArea.js

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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 = (/\.(gif|jpg|jpeg|tiff|png|svg)$/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

Comments
 (0)