<%
function relatedPostsInTopic() {
  if (page.topic?.length == 0) {
    return ''
  }
  var topic = theme.topic.tree[page.topic]
  if (topic == null) {
    return ''
  }
  var entries = []
  for (var post of topic.pages) {
    entries.push({
      href: pretty_url(post.path),
      title: post.title,
      active: post.path == page.path
    })
  }
  var body = partial('_partial/components/collection', {options: {
    layout: 'list',
    variant: 'nav',
    density: 'compact',
    items: entries
  }})
  return partial('_partial/components/widget-frame', {
    className: 'related-widget',
    title: __('btn.topic') + __('symbol.colon') + (topic.name || topic.title),
    body: body,
    reveal: false
  })
}

function relatedWiki() {
  var thisItemObject = theme.wiki.tree[page.wiki]
  if (thisItemObject == null) {
    return ''
  }
  var relatedItems = thisItemObject.relatedItems || []
  var el = ''
  for (var relatedItem of relatedItems) {
    var entries = []
    for (var id of relatedItem.items) {
      var relatedProject = theme.wiki.tree[id]
      if (relatedProject) {
        entries.push({
          href: pretty_url(relatedProject.homepage?.path),
          title: relatedProject.title,
          description: relatedProject.description,
          indicator: false
        })
      }
    }
    var body = partial('_partial/components/collection', {options: {
      layout: 'list',
      variant: 'summary',
      density: 'compact',
      items: entries
    }})
    el += partial('_partial/components/widget-frame', {
      className: 'related-summary-widget',
      title: __('meta.more') + __('symbol.colon') + relatedItem.name,
      body: body
    })
  }
  return el
}

function layoutDiv() {
  if (page.wiki?.length > 0) {
    return relatedWiki()
  } else if (page.topic?.length > 0) {
    return relatedPostsInTopic()
  }
  return ''
}
%>
<%- layoutDiv() %>
