Adding frontend peertubeHelpers.getBaseRouterRoute. (#4153)

* Adding frontend peertubeHelpers.getBaseRouterRoute.

* Fix doctoc.
This commit is contained in:
John Livingston 2021-06-03 12:28:26 +02:00 committed by GitHub
parent 63da15eb18
commit 9777fe9eeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 0 deletions

View File

@ -250,6 +250,11 @@ export class PluginService implements ClientHook {
return environment.apiUrl + `${pathPrefix}/${plugin.name}/${plugin.version}/static`
},
getBaseRouterRoute: () => {
const pathPrefix = this.getPluginPathPrefix(pluginInfo.isTheme)
return environment.apiUrl + `${pathPrefix}/${plugin.name}/${plugin.version}/router`
},
getSettings: () => {
const path = PluginService.BASE_PLUGIN_API_URL + '/' + npmName + '/public-settings'

View File

@ -781,6 +781,8 @@ export class PeerTubeEmbed {
return {
getBaseStaticRoute: unimplemented,
getBaseRouterRoute: unimplemented,
getSettings: unimplemented,
isLoggedIn: unimplemented,

View File

@ -19,6 +19,8 @@ export type RegisterClientOptions = {
export type RegisterClientHelpers = {
getBaseStaticRoute: () => string
getBaseRouterRoute: () => string
isLoggedIn: () => boolean
getAuthHeader: () => { 'Authorization': string } | undefined

View File

@ -21,6 +21,7 @@
- [Notifier](#notifier)
- [Markdown Renderer](#markdown-renderer)
- [Auth header](#auth-header)
- [Plugin router route](#plugin-router-route)
- [Custom Modal](#custom-modal)
- [Translate](#translate)
- [Get public settings](#get-public-settings)
@ -561,6 +562,27 @@ function register (...) {
}
```
#### Plugin router route
**PeerTube >= 3.3**
To get your plugin router route, you can use `peertubeHelpers.getBaseRouterRoute()`:
```js
function register (...) {
registerHook({
target: 'action:video-watch.video.loaded',
handler: ({ video }) => {
fetch(peertubeHelpers.getBaseRouterRoute() + '/my/plugin/api', {
method: 'GET',
headers: peertubeHelpers.getAuthHeader()
}).then(res => res.json())
.then(data => console.log('Hi %s.', data))
}
})
}
```
#### Custom Modal
To show a custom modal: