X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fshared%2Fmisc%2Futils.ts;h=6620ac9737f5fe5678c125d32cd6d36d26b4811f;hb=3290f37c76784f1b96cefb5d389e48db56033b0a;hp=df9e0381a32c7ab2a1254104d2421b84ffd925c6;hpb=fada8d75550dc7365f7e18ee1569b9406251d660;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/misc/utils.ts b/client/src/app/shared/misc/utils.ts index df9e0381a..6620ac973 100644 --- a/client/src/app/shared/misc/utils.ts +++ b/client/src/app/shared/misc/utils.ts @@ -1,5 +1,9 @@ // Thanks: https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript +import { DatePipe } from '@angular/common' +import { environment } from '../../../environments/environment' +import { AuthService } from '../../core/auth' + function getParameterByName (name: string, url: string) { if (!url) url = window.location.href name = name.replace(/[\[\]]/g, '\\$&') @@ -17,7 +21,54 @@ function viewportHeight () { return Math.max(document.documentElement.clientHeight, window.innerHeight || 0) } +function populateAsyncUserVideoChannels (authService: AuthService, channel: any[]) { + return new Promise(res => { + authService.userInformationLoaded + .subscribe( + () => { + const user = authService.getUser() + if (!user) return + + const videoChannels = user.videoChannels + if (Array.isArray(videoChannels) === false) return + + videoChannels.forEach(c => channel.push({ id: c.id, label: c.displayName })) + + return res() + } + ) + }) +} + +function getAbsoluteAPIUrl () { + let absoluteAPIUrl = environment.apiUrl + if (!absoluteAPIUrl) { + // The API is on the same domain + absoluteAPIUrl = window.location.origin + } + + return absoluteAPIUrl +} + +const datePipe = new DatePipe('en') +function dateToHuman (date: string) { + return datePipe.transform(date, 'medium') +} + +function isInSmallView () { + return window.innerWidth < 600 +} + +function isInMobileView () { + return window.innerWidth < 500 +} + export { viewportHeight, - getParameterByName + getParameterByName, + populateAsyncUserVideoChannels, + getAbsoluteAPIUrl, + dateToHuman, + isInSmallView, + isInMobileView }