Live JavaScript v1
Live JavaScript
Live
JavaScript
Home
/
Live
/
JavaScript
/
SDK

Manage custom items

With custom items for live events, you can store additional information as key-value pairs to the LiveEvent object. Custom key-value items are saved as a [key: string]: string dictionary and can be updated or deleted by the users specified in userIdsForHost. Information related to the live event can be added as custom items for better user experience.


Add

When creating a live event, users can add custom items by adding it to LiveEventCreateParams as [key: string]: string dictionary type. By default, customItems is an empty dictionary.

const items = { key1: 'value1', key2: 'value2', key3: 'value3' };
const params = {
    title: 'TITLE',
    coverUrl: IMAGE_URL,
    customItems: items,
}

try {
    await SendbirdLive.createLiveEvent(params);
} catch (e) {
    // Handle error.
}

Update and delete

Custom items can be updated or deleted when a live event is in the ongoing state. If a new custom item has the same key as the existing custom item, the new item updates the value of the existing item. If the new item has a new key, it's added to the list of existing custom items. You can update those custom items by calling liveEvent.updateCustomItems().

// Update custom items.
const items = { key1: 'value1', key2: 'value2', key3: 'value3' };
try {
    await liveEvent.updateCustomItems(items);
} catch (e) {
    // Handle error.
}

You can delete custom items by calling liveEvent.deleteCustomItems() with the list of keys that you want to delete from the list of custom items. If you want to delete all custom items in a live event, you can call liveEvent.deleteAllCustomItems().

// Delete custom items.
const keys = ['key1', 'key2'];
try {
    await liveEvent.deleteCustomItems(keys);
} catch (e) {
    // Handle error.
}

Receive events

A participant in a live event can receive events from the Sendbird server when the custom item is modified. The events are delivered to the listener only when the live event is in the ongoing state. Add customItemsUpdated and customItemsDeleted event listeners to receive events in the live event. Each event contains the list of keys of the changed custom items, such as updatedKeys or deletedKeys.

liveEvent.on('customItemsUpdated', (updatedKeys: string[]) => {
    console.log('customItemsUpdated updatedKeys:', updatedKeys);
})
liveEvent.on('customItemsDeleted', (deletedKeys: string[]) => {
  console.log('customItemsDeleted deletedKeys:', deletedKeys);
})