@tivio/sdk-react 5.0.0 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +231 -0
- package/{changelog.md → README.md.bak} +332 -56
- package/dist/index.d.ts +10 -0
- package/dist/index.js +1 -1
- package/dist/sdk-react.d.ts +10 -0
- package/package.json +3 -3
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @tivio/sdk-react
|
|
2
|
+
|
|
3
|
+
@tivio/sdk-react provides everything which is necessary (components, data hooks etc.) to build a custom React application
|
|
4
|
+
above Tivio Studio. You can comfortably manage all you videos, settings such as application's screens and rows and also monetization
|
|
5
|
+
settings in the administration of Tivio Studio while having the freedom to build your own application.
|
|
6
|
+
|
|
7
|
+
## Changelog
|
|
8
|
+
|
|
9
|
+
* 5.0.2
|
|
10
|
+
* patch: export hook useChannelSource
|
|
11
|
+
|
|
12
|
+
* 5.0.1
|
|
13
|
+
* patch: move changelog
|
|
2
14
|
|
|
3
15
|
* 5.0.0
|
|
4
16
|
* major: upgrade to React 18, change react and react-dom peer dependencies to 17.x || 18.x
|
|
@@ -9,20 +21,20 @@
|
|
|
9
21
|
* minor: add uri property to tv channel type
|
|
10
22
|
* minor: add useChannelSource to hooks
|
|
11
23
|
|
|
12
|
-
*
|
|
24
|
+
* 4.5.0
|
|
13
25
|
* minor: extend PurchaseEndpointPayload type with purchase previousStatus and newStatus fields
|
|
14
26
|
|
|
15
|
-
*
|
|
27
|
+
* 4.4.1
|
|
16
28
|
* patch: added waitForTags param in useSearch hook for videos
|
|
17
29
|
|
|
18
|
-
*
|
|
30
|
+
* 4.4.0
|
|
19
31
|
* minor: PrimaryButton component props type set to any for now
|
|
20
32
|
* patch: isPurchasableAsVoucher added to PurchasableMonetization
|
|
21
33
|
* patch: voucherPurchase flag added to purchase overlays
|
|
22
34
|
* patch: item added to MonetizationsSelectOverlayData
|
|
23
35
|
* minor: added hungarian language to `LangCode` enum
|
|
24
36
|
|
|
25
|
-
*
|
|
37
|
+
* 4.3.0:
|
|
26
38
|
* minor: add GetPurchaseInfoResponse and PurchaseEndpointPayload to exported types
|
|
27
39
|
* minor: support for disabling purchase of specified subscriptions (new param in useOrganizationSubscriptions hook)
|
|
28
40
|
* minor: more specific PurchasableMonetization type usage instead of Monetization
|
|
@@ -30,22 +42,22 @@
|
|
|
30
42
|
* minor: monetization now has originalPrice and promotion properties available
|
|
31
43
|
* patch: remove not used OrganizationSubscriptionsContext, **this change requires bundle 3.20.0 or newer**
|
|
32
44
|
|
|
33
|
-
*
|
|
45
|
+
* 4.2.0:
|
|
34
46
|
* minor: fix useSearch loading type
|
|
35
47
|
* patch: added italian language to `LangCode` enum
|
|
36
48
|
|
|
37
|
-
*
|
|
49
|
+
* 4.1.0
|
|
38
50
|
* patch: added italian language to `LangCode` enum
|
|
39
51
|
* minor: fixed spanish language code in `LangCode` enum (`sp` -> `es`)
|
|
40
52
|
* minor: other misc type changes
|
|
41
53
|
|
|
42
|
-
*
|
|
54
|
+
* 4.0.1
|
|
43
55
|
* patch: added setBundleVersion setter to bundle type
|
|
44
56
|
* patch: added setStorageManager setter to bundle type
|
|
45
57
|
* patch: `Purchase.isPurchased` is deprecated
|
|
46
58
|
* patch: fill `useSearch` field `hasNextPage` with proper value
|
|
47
59
|
|
|
48
|
-
*
|
|
60
|
+
* 4.0.0
|
|
49
61
|
* minor: Types cleanup
|
|
50
62
|
* MAJOR: Remove deprecated and unused stuff
|
|
51
63
|
* auth
|
|
@@ -56,7 +68,7 @@
|
|
|
56
68
|
* initializeUser
|
|
57
69
|
* createFreePurchase
|
|
58
70
|
* components
|
|
59
|
-
*
|
|
71
|
+
* videoAdBanner
|
|
60
72
|
* getters
|
|
61
73
|
* getExportedConfig
|
|
62
74
|
* getChannelById
|
|
@@ -83,76 +95,76 @@
|
|
|
83
95
|
---
|
|
84
96
|
_Versions <= v3.7.0 requires core-react-dom bundle < v3.0.0 (because sdk-react used some sdk API deleted in core-react-dom@4.0.0)_
|
|
85
97
|
|
|
86
|
-
*
|
|
98
|
+
* 3.7.0
|
|
87
99
|
* minor: purchase contains created and updated
|
|
88
100
|
|
|
89
|
-
*
|
|
101
|
+
* 3.6.3
|
|
90
102
|
* patch: improve README.md
|
|
91
103
|
|
|
92
|
-
*
|
|
104
|
+
* 3.6.2
|
|
93
105
|
* patch: Fix types
|
|
94
106
|
|
|
95
|
-
*
|
|
107
|
+
* 3.6.1
|
|
96
108
|
* patch: Fix README
|
|
97
109
|
|
|
98
|
-
*
|
|
110
|
+
* 3.6.0
|
|
99
111
|
* minor: Update types
|
|
100
112
|
|
|
101
|
-
*
|
|
113
|
+
* 3.5.2
|
|
102
114
|
* patch: All types are available again.
|
|
103
115
|
|
|
104
|
-
*
|
|
116
|
+
* 3.5.1
|
|
105
117
|
* patch: remove incorrect dependency (@tivio/types)
|
|
106
118
|
|
|
107
|
-
*
|
|
119
|
+
* 3.5.0
|
|
108
120
|
* minor: Types change - Video.price and Video.detailedPrice can be null
|
|
109
121
|
* minor: Types change - Video.cover is marked as deprecated
|
|
110
122
|
|
|
111
|
-
*
|
|
123
|
+
* 3.4.0
|
|
112
124
|
* minor: more precise type for errors in usePurchaseRecovery and usePurchaseRecovery
|
|
113
125
|
* patch: jsdocs for usePurchaseRecovery and usePurchaseRecovery
|
|
114
126
|
* minor: inviteCodeReset in useApplyInviteCode
|
|
115
127
|
* minor: Reset forgotten password
|
|
116
128
|
* minor: Consolidating monetization logic
|
|
117
|
-
*
|
|
129
|
+
* 3.3.2
|
|
118
130
|
* patch: Adding new optional parameters (where, orderBy) to useTaggedVideos hook
|
|
119
|
-
*
|
|
131
|
+
* 3.3.1
|
|
120
132
|
* patch: Fixed types of `setUser`
|
|
121
|
-
*
|
|
133
|
+
* 3.3.0
|
|
122
134
|
* minor: Add getPlayerCapabilities to getters.
|
|
123
135
|
* patch: Added option to log out via `setUser(null)`, requires @tivio/core-react-dom@2.17.9
|
|
124
|
-
*
|
|
136
|
+
* 3.2.5
|
|
125
137
|
* patch: added recovery flag to QerkoPaymentInfo type
|
|
126
138
|
* patch: bundle.types changes - internal.components.WebVideoScreen
|
|
127
139
|
* patch: types changes - add new onBack prop to WebPlayerProps
|
|
128
140
|
* patch: Refactor useVideo hook, now uses hook from core-react
|
|
129
|
-
*
|
|
141
|
+
* 3.2.4
|
|
130
142
|
* minor: added useApplyInviteCode
|
|
131
143
|
* minor: better errors from useVoucher
|
|
132
|
-
*
|
|
144
|
+
* 3.2.3
|
|
133
145
|
* minor: added usePurchaseRecovery hook
|
|
134
146
|
* patch: deprecated `useLastVideoByWidgetId`
|
|
135
|
-
*
|
|
147
|
+
* 3.2.2
|
|
136
148
|
* minor: useRowsInScreen, useItemsInRow, useTaggedVideos - hasNextPage and loading added to pagination
|
|
137
149
|
* minor: useRowsInScreen, useItemsInRow, useTaggedVideos - implementation moved to remote bundle
|
|
138
150
|
* patch: Fixed Tivio startup on Tizen 6
|
|
139
151
|
* minor: Added `forceCloudFnResolver` option
|
|
140
|
-
*
|
|
152
|
+
* 3.2.1
|
|
141
153
|
* patch: fix of @tivio/common version
|
|
142
|
-
*
|
|
154
|
+
* 3.2.0
|
|
143
155
|
* minor: Added `capabilitiesOptions` for finer configuration of device capabilities
|
|
144
156
|
* minor: tag names are returned in correct language (the one from tivio config); language value should be one from enum "LangCode"
|
|
145
|
-
*
|
|
157
|
+
* 3.1.3
|
|
146
158
|
* patch: Hotfix made sure disabled Tivio does not break React Native
|
|
147
|
-
*
|
|
159
|
+
* 3.1.2
|
|
148
160
|
* patch: Allow `conf` prop of `TivioProvider` to be `null` or `undefined` in order to turn off Tivio
|
|
149
|
-
*
|
|
161
|
+
* 3.1.1
|
|
150
162
|
* patch: fixed `setUser()` crash when bundle fails to load
|
|
151
|
-
*
|
|
163
|
+
* 3.1.0
|
|
152
164
|
* patch: `useAdSegment()` now returns null if no monetization is configured, ad segments are not managed in that situation
|
|
153
165
|
* minor: enriched `AdSegment` type from `useAdSegment()`
|
|
154
166
|
* minor: Added `setUser()` function for login and logout
|
|
155
|
-
*
|
|
167
|
+
* 3.0.0
|
|
156
168
|
* minor: Added hook `useWatchWithoutAdsOffer` to trigger purchase dialog to "watch without ads", if available
|
|
157
169
|
* patch: fix peerDependency declaration for react, react-dom
|
|
158
170
|
* major: TivioProvider requires deviceCapabilities
|
|
@@ -163,62 +175,326 @@ _Versions <= v3.7.0 requires core-react-dom bundle < v3.0.0 (because sdk-react u
|
|
|
163
175
|
* minor: watermarking support
|
|
164
176
|
* minor: add useSearch hook
|
|
165
177
|
* patch: price on video is 0 when purchased
|
|
166
|
-
*
|
|
178
|
+
* 2.4.2
|
|
167
179
|
* patch: added back changelog
|
|
168
|
-
*
|
|
180
|
+
* 2.4.1
|
|
169
181
|
* patch: improved doc about player wrapper
|
|
170
|
-
*
|
|
182
|
+
* 2.4.0
|
|
171
183
|
* patch: improved Player wrapper types
|
|
172
184
|
* minor: added Tivio DOM events `tivio_key_input_handling_change`, `tivio_context_switch` and `tivio_request_goto`
|
|
173
185
|
* patch: added support for remote code on browsers that do not implement [indexedDB API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
|
|
174
186
|
* patch: added support for browsers that do not implement [indexedDB API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
|
|
175
|
-
*
|
|
187
|
+
* 2.3.4
|
|
176
188
|
* patch: fix of usePurchaseSubscription not reactive
|
|
177
|
-
*
|
|
189
|
+
* 2.3.3
|
|
178
190
|
* patch: fix of useUser not updating
|
|
179
|
-
*
|
|
191
|
+
* 2.3.2
|
|
180
192
|
* patch: next app doesn't fail anymore due to "self is not defined"
|
|
181
|
-
*
|
|
193
|
+
* 2.3.1
|
|
182
194
|
* patch: fix of @tivio/common dependency
|
|
183
|
-
*
|
|
195
|
+
* 2.3.0
|
|
184
196
|
* minor: add useTaggedVideos that allows to fetch videos with given tags
|
|
185
197
|
* minor: add option to fetch tags (on hook useItemsInRow), useVideo always fetching videos tags
|
|
186
|
-
*
|
|
198
|
+
* 2.2.1
|
|
187
199
|
* patch: disable Sentry when no config is supplied to `TivioProvider`
|
|
188
|
-
*
|
|
200
|
+
* 2.2.0
|
|
189
201
|
* patch: reduced bundle size
|
|
190
202
|
* minor: disable Sentry when no config is supplied to `TivioProvider` or when Tivio is disabled `{ enable: false }`, or when Sentry is disabled via config `{ enableSentry: false }`
|
|
191
|
-
*
|
|
203
|
+
* 2.1.5
|
|
192
204
|
* patch fix of `useVideosInSection` hook (fetching video's monetizations)
|
|
193
|
-
*
|
|
205
|
+
* 2.1.4
|
|
194
206
|
* patch: fix re-rendering of `useAd` during non-skippable ads (requires core-react-dom@2.1.9)
|
|
195
|
-
*
|
|
207
|
+
* 2.1.3
|
|
196
208
|
* patch: fix changelog
|
|
197
|
-
*
|
|
209
|
+
* 2.1.2
|
|
198
210
|
* patch: Fixed exported types
|
|
199
|
-
*
|
|
211
|
+
* 2.1.1
|
|
200
212
|
* patch: TivioWidget now correctly reports `false` via `onEnabled` callback when in invalid internal state
|
|
201
|
-
*
|
|
213
|
+
* 2.1.0
|
|
202
214
|
* patch: fix of useItemsInRow hook
|
|
203
215
|
* patch: fix of useScreen hook
|
|
204
216
|
* add: useRowsInScreen hook
|
|
205
|
-
*
|
|
217
|
+
* 2.0.3
|
|
206
218
|
* patch: fix of useItemsInRow hook
|
|
207
|
-
*
|
|
219
|
+
* 2.0.2
|
|
208
220
|
* patch: screen and row IDs fixed
|
|
209
221
|
* `TivioBundle.subscriptions.subscribeToItemsInRow` now accepts user-defined ID via studio.tiv.io
|
|
210
222
|
* `TivioBundle.subscriptions.subscribeToScreen` now accepts user-defined ID via studio.tiv.io
|
|
211
223
|
* `Screen` and `Row` types returned by `useScreen()` return their user-defined IDs (`.id`) correctly
|
|
212
|
-
*
|
|
224
|
+
* 2.0.1
|
|
213
225
|
* no changes
|
|
214
|
-
*
|
|
226
|
+
* 2.0.0
|
|
215
227
|
* major: video.channelId can now be `string | null` used to be `string`
|
|
216
228
|
* minor: added data API and hooks for screens (screens, rows of screen and row items)
|
|
217
229
|
* hooks: `useScreen()`, `useItemsInRow()`
|
|
218
230
|
* api: `TivioBundle.subscriptions.subscribeToScreen`, `TivioBundle.subscriptions.subscribeToItemsInRow`
|
|
219
|
-
*
|
|
231
|
+
* 1.3.6
|
|
220
232
|
* ?
|
|
221
|
-
*
|
|
233
|
+
* 1.3.5
|
|
222
234
|
* minor: added WebPlayer props (canReplay, showMarkers, customShortcuts, enableKeyboardShortcuts, source.poster)
|
|
223
|
-
*
|
|
235
|
+
* 1.3.4
|
|
224
236
|
* ...
|
|
237
|
+
|
|
238
|
+
## Installation
|
|
239
|
+
|
|
240
|
+
Install @tivio/sdk-react along with its peer dependencies
|
|
241
|
+
```sh
|
|
242
|
+
npm i react@17 react-dom@17 @tivio/sdk-react
|
|
243
|
+
# or
|
|
244
|
+
yarn add react@17 react-dom@17 @tivio/sdk-react
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Initialization
|
|
248
|
+
|
|
249
|
+
Put Tivio Provider at the top level of your application:
|
|
250
|
+
|
|
251
|
+
``` javascript
|
|
252
|
+
import { TivioProvider } from '@tivio/sdk-react'
|
|
253
|
+
|
|
254
|
+
const config = {
|
|
255
|
+
secret: 'XXXXXXXXXX',
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
function App({children}) {
|
|
259
|
+
return (
|
|
260
|
+
<TivioProvider conf={config}>
|
|
261
|
+
{children}
|
|
262
|
+
</TivioProvider>
|
|
263
|
+
)
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## Authentication
|
|
268
|
+
|
|
269
|
+
A logged-in user can access more features, such as making purchases. In order to authenticate a user with Tivio, use the `setUser()` method.
|
|
270
|
+
|
|
271
|
+
Verification of the user against 3rd party auth servers is implemented per customer.
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
import { setUser } from '@tivio/sdk-react'
|
|
275
|
+
|
|
276
|
+
// Log in
|
|
277
|
+
|
|
278
|
+
// Payload is specific per customer
|
|
279
|
+
// A common use-case is sending an auth token inside the payload, which Tivio can use to verify the user
|
|
280
|
+
await setUser('userId', { token: 'xxx'})
|
|
281
|
+
|
|
282
|
+
// Log out
|
|
283
|
+
await setUser(null)
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Player
|
|
287
|
+
|
|
288
|
+
You can choose whether you will use complete player component provided by Tivio or you will wrap your existing player
|
|
289
|
+
with the Tivio Player Wrapper.
|
|
290
|
+
|
|
291
|
+
### Tivio Player component
|
|
292
|
+
|
|
293
|
+
```javascript
|
|
294
|
+
import { useTivioData } from '@tivio/sdk-react'
|
|
295
|
+
|
|
296
|
+
const PlayerExample = () => {
|
|
297
|
+
const bundle = useTivioData()
|
|
298
|
+
|
|
299
|
+
if (!bundle?.components?.WebPlayer) {
|
|
300
|
+
return <p>Loading...</p>
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return (
|
|
304
|
+
<>
|
|
305
|
+
<div
|
|
306
|
+
style={{
|
|
307
|
+
height: 720,
|
|
308
|
+
width: 1280,
|
|
309
|
+
}}
|
|
310
|
+
>
|
|
311
|
+
<bundle.components.WebPlayer
|
|
312
|
+
id="player1"
|
|
313
|
+
className="web-player"
|
|
314
|
+
source="/videos/xxxxxxxxxxxxxxxxxxxx" // dynamically change this based on video you want to play
|
|
315
|
+
/>
|
|
316
|
+
</div>
|
|
317
|
+
</>
|
|
318
|
+
)
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Player wrapper
|
|
323
|
+
|
|
324
|
+
Player wrapper is the way how you can enhance your video player with Tivio features, such Tivio Ads. In order to start
|
|
325
|
+
using Tivio player wrapper, wrap your player methods with PlayerWrapper, start using PlayerWrapper's methods
|
|
326
|
+
instead of them to control your playback and start sending player events to Tivio PlayerWrapper.
|
|
327
|
+
|
|
328
|
+
#### Wrap your player methods with Tivio player wrapper
|
|
329
|
+
|
|
330
|
+
```javascript
|
|
331
|
+
import { useTivioReadyData } from '@tivio/sdk-react'
|
|
332
|
+
|
|
333
|
+
function CustomPlayer() {
|
|
334
|
+
const tivioData = useTivioReadyData()
|
|
335
|
+
|
|
336
|
+
useEffect(() => {
|
|
337
|
+
if (tivioData) {
|
|
338
|
+
// If your app uses multiple player instances, use different Tivio player wrapper for each
|
|
339
|
+
// distinguished by playerWrapperId
|
|
340
|
+
const playerWrapper = tivio.getPlayerWrapper({ playerWrapperId: 'PLAYER_1' })
|
|
341
|
+
|
|
342
|
+
// Pass your player methods to Tivio player wrapper
|
|
343
|
+
playerWrapper.register({
|
|
344
|
+
play: () => {
|
|
345
|
+
// Un-pause your player
|
|
346
|
+
},
|
|
347
|
+
pause: () => {
|
|
348
|
+
// Pause your player
|
|
349
|
+
},
|
|
350
|
+
seekTo: (ms: number) => {
|
|
351
|
+
// Seek to position in milliseconds using your player
|
|
352
|
+
},
|
|
353
|
+
setSource: (videoSource: InputSource) => {
|
|
354
|
+
// Send this video source to your player to load it
|
|
355
|
+
},
|
|
356
|
+
})
|
|
357
|
+
}
|
|
358
|
+
}, [tivioData])
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
#### Start using Tivio player wrapper methods to control playback
|
|
363
|
+
|
|
364
|
+
```javascript
|
|
365
|
+
// Channel source metadata, such as channel name, epg start and epg end are necessary
|
|
366
|
+
// for TV ad segment detection and application of ad strategies
|
|
367
|
+
const source = new ChannelSource(
|
|
368
|
+
'https://channel_prima_hd.m3u8',
|
|
369
|
+
{
|
|
370
|
+
// here put any additional metadata, for your use.
|
|
371
|
+
// This object will not be touched by Tivio
|
|
372
|
+
},
|
|
373
|
+
// channel name
|
|
374
|
+
// can also be prima hd, prima_hd, prima, Prima, PRIMA, etc.
|
|
375
|
+
// we will normalize it to snake case and add '_hd' if necessary
|
|
376
|
+
'Prima HD',
|
|
377
|
+
// program name
|
|
378
|
+
'Dr. House',
|
|
379
|
+
// description (optional)
|
|
380
|
+
'Episode about Dr. House being awesome',
|
|
381
|
+
// EPG start
|
|
382
|
+
new Date('2021-12-10T12:00:00'),
|
|
383
|
+
// EPG end
|
|
384
|
+
new Date('2021-12-10T13:40:00'),
|
|
385
|
+
)
|
|
386
|
+
|
|
387
|
+
// Send source to player
|
|
388
|
+
playerWrapper.onSourceChanged(source)
|
|
389
|
+
|
|
390
|
+
// Un-pause player
|
|
391
|
+
playerWrapper.play()
|
|
392
|
+
|
|
393
|
+
// Pause player
|
|
394
|
+
playerWrapper.pause()
|
|
395
|
+
}
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
#### Start reporting player events to Tivio
|
|
399
|
+
|
|
400
|
+
```javascript
|
|
401
|
+
// Report that source is playing
|
|
402
|
+
playerWrapper.onStateChanged('playing')
|
|
403
|
+
|
|
404
|
+
// Report that source is paused
|
|
405
|
+
playerWrapper.onStateChanged('paused')
|
|
406
|
+
|
|
407
|
+
// Report that source stopped playing
|
|
408
|
+
playerWrapper.onPlaybackEnded()
|
|
409
|
+
playerWrapper.onStateChanged('idle')
|
|
410
|
+
|
|
411
|
+
// Report video progress
|
|
412
|
+
playerWrapper.onTimeChanged(ms)
|
|
413
|
+
}
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
#### Start reporting playback-related errors to Tivio
|
|
417
|
+
|
|
418
|
+
```javascript
|
|
419
|
+
// Report that video failed to load (e.g. due to a wrong URI)
|
|
420
|
+
playerWrapper.onLoadError(new Error('video failed to load'))
|
|
421
|
+
|
|
422
|
+
// Report that video failed during playback (e.g. due to bad connection, corrupted chunks of stream video etc.)
|
|
423
|
+
// This type of error may be auto-recoverable
|
|
424
|
+
playerWrapper.onError(new Error('playback error'))
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
## Data hooks
|
|
429
|
+
|
|
430
|
+
### useUser hook
|
|
431
|
+
Gets information about current user.
|
|
432
|
+
|
|
433
|
+
```ts
|
|
434
|
+
useUser: () => {
|
|
435
|
+
user: User | null
|
|
436
|
+
error: string | null
|
|
437
|
+
isInitialized: boolean
|
|
438
|
+
}
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### useRowsInScreen hook
|
|
442
|
+
Gets array of Rows objects of specific screen and subscribes to its changes.
|
|
443
|
+
|
|
444
|
+
```ts
|
|
445
|
+
/**
|
|
446
|
+
* Use rows in screen
|
|
447
|
+
* @param screenId - screen id (from studio.tiv.io)
|
|
448
|
+
* @param options - subscription options
|
|
449
|
+
*/
|
|
450
|
+
useRowsInScreen: (screenId: string, options?: PaginationOptions) => {
|
|
451
|
+
pagination: PaginationInterface<Row> | null
|
|
452
|
+
error: Error | null
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
### useItemsInRow hook
|
|
457
|
+
Gets array of row items objects of specific row and subscribes to its changes.
|
|
458
|
+
|
|
459
|
+
```ts
|
|
460
|
+
/**
|
|
461
|
+
* Use row items
|
|
462
|
+
* @param rowId - row ID
|
|
463
|
+
* @param options - subscription options
|
|
464
|
+
*/
|
|
465
|
+
useItemsInRow: (rowId: string, options?: SubscribeToItemsInRowOptions) => {
|
|
466
|
+
pagination: PaginationInterface<ItemsInRow> | null
|
|
467
|
+
error: Error | null
|
|
468
|
+
}
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### useVideo hook
|
|
472
|
+
|
|
473
|
+
Gets Video object and subscribes to its changes.
|
|
474
|
+
|
|
475
|
+
```ts
|
|
476
|
+
/**
|
|
477
|
+
* Use video
|
|
478
|
+
* @param videoId - video id
|
|
479
|
+
*/
|
|
480
|
+
useVideo: (videoId: string) => {
|
|
481
|
+
error: string | null;
|
|
482
|
+
data: Video | null;
|
|
483
|
+
}
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### useTaggedVideos hook
|
|
487
|
+
Gets videos with given tag IDs.
|
|
488
|
+
|
|
489
|
+
```ts
|
|
490
|
+
/**
|
|
491
|
+
* Use tagged videos
|
|
492
|
+
* @param tagIds - tag ids
|
|
493
|
+
* @param options - subscription options
|
|
494
|
+
* @public
|
|
495
|
+
*/
|
|
496
|
+
useTaggedVideos: (tagIds: string[], options?: SubscribeToItemsInRowOptions) => {
|
|
497
|
+
pagination: PaginationInterface<Video> | null
|
|
498
|
+
error: Error | null
|
|
499
|
+
}
|
|
500
|
+
```
|
package/dist/index.d.ts
CHANGED
|
@@ -2899,6 +2899,16 @@ export declare type UseChannelSource = (tvChannelId: string) => {
|
|
|
2899
2899
|
error: Error | null;
|
|
2900
2900
|
};
|
|
2901
2901
|
|
|
2902
|
+
/**
|
|
2903
|
+
* Use channel source
|
|
2904
|
+
* @param tvChannelId
|
|
2905
|
+
* @public
|
|
2906
|
+
*/
|
|
2907
|
+
export declare const useChannelSource: (tvChannelId: string) => {
|
|
2908
|
+
source: ChannelSourcePojo | null;
|
|
2909
|
+
error: Error | null;
|
|
2910
|
+
};
|
|
2911
|
+
|
|
2902
2912
|
/**
|
|
2903
2913
|
* @public
|
|
2904
2914
|
*/
|