Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let client: any
- type OnItemAddedCb = (label: string) => void
- declare const onItemAdded: (cb: OnItemAddedCb) => void
- onItemAdded((label) => {
- client.createSpeaker(label)
- })
- type OnItemEditedCb = (id: string, newLabel: string) => void
- declare const onItemEdited: (cb: OnItemEditedCb) => void
- onItemEdited((id, newLabel) => {
- client.updateSpeaker(id, newLabel)
- })
- type OnItemDeletedCb = (id: string) => void
- declare const onItemDeleted: (cb: OnItemDeletedCb) => void
- onItemDeleted((id) => {
- client.deleteSpeaker(id)
- })
- // vs
- type ChangeEvent =
- | { action: 'add'; label: string }
- | { action: 'edit'; id: string; newLabel: string }
- | { action: 'delete'; id: string }
- type OnCollectionChangedCb = (event: ChangeEvent) => void
- declare const onCollectionChanged: (cb: OnCollectionChangedCb) => void
- onCollectionChanged((event) => {
- switch (event.action) {
- case 'add': {
- client.createSpeaker(event.label)
- break
- }
- case 'edit': {
- client.updateSpeaker(event.id, event.newLabel)
- break
- }
- case 'delete': {
- client.deleteSpeaker(event.id)
- break
- }
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement