-import { first } from 'rxjs/operators'
+import { firstValueFrom } from 'rxjs'
import { ComponentRef, Injectable } from '@angular/core'
import { MarkdownService } from '@app/core'
import {
ContainerMarkupData,
EmbedMarkupData,
PlaylistMiniatureMarkupData,
- VideoFilter,
VideoMiniatureMarkupData,
VideosListMarkupData
} from '@shared/models'
VideosListMarkupComponent
} from './peertube-custom-tags'
import { CustomMarkupComponent } from './peertube-custom-tags/shared'
+import { logger } from '@root-helpers/logger'
type AngularBuilderFunction = (el: HTMLElement) => ComponentRef<CustomMarkupComponent>
type HTMLBuilderFunction = (el: HTMLElement) => HTMLElement
// Insert as first child
e.insertBefore(element, e.firstChild)
} catch (err) {
- console.error('Cannot inject component %s.', selector, err)
+ logger.error(`Cannot inject component ${selector}`, err)
}
})
}
const component = this.execAngularBuilder(selector, e)
if (component.instance.loaded) {
- const p = component.instance.loaded.pipe(first()).toPromise()
+ const p = firstValueFrom(component.instance.loaded)
loadedPromises.push(p)
}
this.dynamicElementService.injectElement(e, component)
} catch (err) {
- console.error('Cannot inject component %s.', selector, err)
+ logger.error(`Cannot inject component ${selector}`, err)
}
})
}
accountHandle: data.accountHandle || undefined,
channelHandle: data.channelHandle || undefined,
- filter: this.buildBoolean(data.onlyLocal) ? 'local' as VideoFilter : undefined
+ isLive: this.buildBoolean(data.isLive),
+
+ isLocal: this.buildBoolean(data.onlyLocal) ? true : undefined
}
this.dynamicElementService.setModel(component, model)
root.classList.add('peertube-container', layoutClass)
+ root.style.justifyContent = data.justifyContent || 'space-between'
+
if (data.width) {
root.setAttribute('width', data.width)
}