timeline ={
const toots_list=d3.select(html`<div></div>`);
const toots_title = toots_list.append("article").attr("class","box")
const toots_data = toots_list.append("div").attr("id","toots")
var update=function(instance,public_toots){
toots_title.selectAll("h1").remove()
toots_title.append("h1").append("a").attr("href",`https://${instance}`).text(instance)
toots_title.selectAll("h2").remove()
if(public_toots.length==0){
toots_title.append("h2").text("Public timeline not available.")
}
toots_data.selectAll("article").remove()
const toots = toots_data.selectAll("article")
.data(public_toots)
.join("article")
.attr("class","box media")
toots
.append("div")
.attr("class","media-left")
.html(toot => `
<a href="${toot.account.url}">
<figure class="image is-64x64"><img src="${toot.account.avatar_static}" alt="Avatar"></figure>
</a> `)
var toots_cont = toots
.append("div")
.attr("class","media-content")
.html(toot => `
<a href=${toot.account.url}>
<div class="content">
<p>
<strong>${toot.account.display_name}</strong>
<small>@${toot.account.acct}</small>
</p>
</div>
</a>
<p>${toot.content}</p>
`)
toots_cont.each(function(d) {
d3.select(this)
.selectAll(".medias")
.data(d.media_attachments)
.join("div")
.attr("class","medias")
.html( media => `<figure class="attachement">
<img src="${media.preview_url}" /></figure>`)
})
toots_cont.append("small").html(toot => `<a href="${toot.uri}">${toot.created_at}</a>`);
return instance
}
return Object.assign(toots_list.node(), {
update:update
});
}