+ // Filter the options to create our player
+ 'filter:internal.video-watch.player.build-options.params': true,
+ 'filter:internal.video-watch.player.build-options.result': true,
+
+ // Filter our SVG icons content
+ 'filter:internal.common.svg-icons.get-content.params': true,
+ 'filter:internal.common.svg-icons.get-content.result': true
+}
+
+export type ClientFilterHookName = keyof typeof clientFilterHookObject
+
+export const clientActionHookObject = {
+ // Fired when the application is being initialized
+ 'action:application.init': true,
+
+ // Fired when the video watch page is being initialized
+ 'action:video-watch.init': true,
+ // Fired when the video watch page loaded the video
+ 'action:video-watch.video.loaded': true,
+ // Fired when the player finished loading
+ 'action:video-watch.player.loaded': true,
+ // Fired when the video watch page comments(threads) are loaded and load more comments on scroll
+ 'action:video-watch.video-threads.loaded': true,
+ // Fired when a user click on 'View x replies' and they're loaded
+ 'action:video-watch.video-thread-replies.loaded': true,
+
+ // Fired when the video edit page (upload, URL/torrent import, update) is being initialized
+ 'action:video-edit.init': true,
+
+ // Fired when the login page is being initialized
+ 'action:login.init': true,
+
+ // Fired when the search page is being initialized
+ 'action:search.init': true,
+
+ // Fired every time Angular URL changes
+ 'action:router.navigation-end': true,
+
+ // Fired when the registration page is being initialized
+ 'action:signup.register.init': true,
+
+ // ####### Embed hooks #######
+ // In embed scope, peertube helpers are not available
+
+ // Fired when the embed loaded the player
+ 'action:embed.player.loaded': true
+}
+
+export type ClientActionHookName = keyof typeof clientActionHookObject
+
+export const clientHookObject = Object.assign({}, clientFilterHookObject, clientActionHookObject)
+export type ClientHookName = keyof typeof clientHookObject