<div class="timeline">
  <VirtualList component="{{StatusListItem}}" items="{{statuses}}" />
  <button type="button" on:click="addMoreItems()">Add more items</button>
</div>
<script>
  import { store } from '../_utils/store'
  import { getHomeTimeline } from '../_utils/mastodon/oauth'
  import fixture from '../_utils/fixture.json'
  import StatusListItem from './StatusListItem.html'
  import VirtualList from './VirtualList.html'
  import { splice } from 'svelte-extras'

  let i = -1

  const createData = () => fixture.slice(0, 20).map(_ => ({
    key: `${++i}`,
    props: _
  }))

  export default {
    data: () => ({
      target: 'home',
      statuses: createData(),
      StatusListItem: StatusListItem
    }),
    store: () => store,
    components: {
      VirtualList
    },
    methods: {
      splice: splice,
      addMoreItems() {
        this.splice('statuses', this.get('statuses').length, 0, ...createData())
      }
    }
  }
</script>