The utils for repeated item scope event handlers in Velo by Wix.
You use the Package Manager to manage the npm packages in your site.
Latest available version: Check status
Using global select function $w() you can select needed elements group in Repeater Item Template.
useScope(event)createScope(cb)getRepeater(event)(since v2.0.0)updateItem(event, callback)(since v2.0.0)
Automatic find the parent Repeater by emitted event object.
import { useScope } from 'repeater-scope';
$w.onReady(() => {
// use dynamic event handler with global selector function $w
$w('#repeatedButton').onClick((event) => {
const { $item, itemData, index, data } = useScope(event);
$item('#repeatedText').text = itemData.title;
});
});
// or a static event handler
export function repeatedButton_dblClick(event) {
const { $item, itemData, index, data } = useScope(event);
};Create scope function with specific data array. It can be useful with state management libraries.
import { createScope } from 'repeater-scope';
// Create a scope with a callback function that returns actual repeater data.
const useScope = createScope(() => {
return $w('#repeater').data;
});
export function repeatedButton_Click(event) {
const { $item, itemData, index, data } = useScope(event);
};Gets parent Repeater by event
import { getRepeater } from 'repeater-scope';
$w.onReady(() => {
$w('#repeatedButton').onClick((event) => {
const $repeater = getRepeater(event);
$repeater.hide();
});
});Update Repeated Item by event
import { updateItem } from 'repeater-scope';
$w.onReady(() => {
$w('#repeatedButton').onClick((event) => {
updateItem(event, ($item, itemData, index) => {
$item('#repeatedText').text = itemData.title;
});
});
});function useScope(event: $w.Event): ScopeData
function createScope(event: $w.Event): ScopeData
type ScopeData = {
$item: $w.$w;
itemData: ItemData;
index: number;
data: ItemData[];
}
type ItemData = {
_id: string;
[key: string]: any;
}
function getRepeater(event: $w.Event): $w.Repeater
function updateItem(event: $w.Event, callback: $w.ForItemCallback): void- $item - A selector function with repeated item scope.
- itemData - The object from the repeater's
dataarray that corresponds to the repeated item being created. - index - The index of the
itemDataobject in thedataarray. - data - A repeater's data array
