Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
svelte-virtual-infinite-list
Advanced tools
Readme
A virtual list component for Svelte apps. Instead of rendering all your data, <VirtuaInfinitelList>
just renders the bits that are visible, keeping your page nice and light.
This library is forked and extends from @sveltejs/svelte-virtual-list, and all the basic feature of @sveltejs/svelte-virtual-list are available except default slot.
npm i svelte-virtual-infinite-list
<script lang="ts">
import VirtualInfiniteList from 'svelte-virtual-infinite-list'
import type { InfiniteEvent } from 'svelte-virtual-infinite-list'
import { find } from './find'
let things = [
// these can be any values you like
{ name: 'one', number: 1 },
{ name: 'two', number: 2 },
{ name: 'three', number: 3 },
// ...
{ name: 'six thousand and ninety-two', number: 6092 }
]
let loading = true
let virtualInfiniteList: VirtualInfiniteList
async function onInitialize() {
await virtualInfiniteList.scrollToBottom()
}
async function onInfinite({ detail }: InfiniteEvent) {
if (detail.on === 'bottom') return
loading = true
const data = await find(30)
things = [...data, ...things]
loading = false
}
onMount(async () => {
const data = await find(30)
things = [...data]
loading = false
})
async function scrollToIndex(item) {
const index = things.findIndex((it) => it === item.number)
index && await virtualInfiniteList.scrollToIndex(index)
}
</script>
<VirtualInfiniteList
items={things}
{loading}
direction="top"
persists={30}
uniqueKey={'number'}
on:initialize={onInitialize}
on:infinite={onInfinite}
bind:this={virtualInfiniteList}
let:item
>
<!-- this will be rendered for each currently visible item -->
<div slot="item">
<p>{item.number}: {item.name}</p>
</div>
<!-- option -->
<div slot="loader">
Loading...
</div>
<!-- option -->
<div slot="empty">
Empty
</div>
</VirtualInfiniteList>
No | Property Name | Type | Note |
---|---|---|---|
1 | loading | boolean | - |
2 | direction | 'top' or 'bottom' or 'vertical' | Loading direction. |
3 | maxItemCountPerLoad | number | Deprecated. This valiable removed @2.0.0. Use persists , please. |
4 | persists | number | [For direction-top infinite scroll user] Maximum number of items loaded per load. The offset after loaded may be significantly shift if the number of items that exceeds this value is loaded. Default value is 30. |
5 | uniqueKey | string | You need to set specify one unique property like id in the item object if you want to use the scrollToIndex method. Default value is undefined. |
No | Property Name | Type | Note |
---|---|---|---|
1 | on:initialize | () => any | Emit on change items count from 0 to more over. |
2 | on:infinite | (event: InfiniteEvent) => any | Emit on scrollbar reached top or bottom. |
No | Slot Name | Note |
---|---|---|
1 | item | Displayed item |
2 | loader | Displayed element if loading is true |
3 | empty | Displayed element if items is [] and loading is false |
No | Method Name | Type | Note |
---|---|---|---|
1 | scrollTo | (offset: number) => Promise<void> | This allows you to scroll to a specific offset. |
2 | scrollToIndex | (index: number, options?: { align: 'top' | 'bottom' | 'center' }) => Promise<boolean> | This allows you to scroll to a specific item using the index. Returns true if this is done. |
3 | scrollToTop | () => Promise<void> | This allows you to scroll to top. |
4 | scrollToBottom | () => Promise<void> | This allows you to scroll to bottom. |
5 | reset | () => Promise<void> | This allows you to reset VirtualInfiniteList. |
6 | forceRefresh | () => Promise<void> | This allows you to tick and render VirtualInfiniteList. |
FAQs
Unknown package
The npm package svelte-virtual-infinite-list receives a total of 48 weekly downloads. As such, svelte-virtual-infinite-list popularity was classified as not popular.
We found that svelte-virtual-infinite-list demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.