X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fapp%2Fshared%2Fmisc%2Fscreen.service.ts;h=220d41d59b732736644afb5efff6c41de7dbb0cd;hb=240458d0c95133bfb03a3f695a1b4e5cb63e20ef;hp=2e01839b2c28c9dd6646c5d1cedaf2fd16fab642;hpb=fc11a44ec9d12af915ac72d8106cb934cfcdcbcd;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/shared/misc/screen.service.ts b/client/src/app/shared/misc/screen.service.ts index 2e01839b2..220d41d59 100644 --- a/client/src/app/shared/misc/screen.service.ts +++ b/client/src/app/shared/misc/screen.service.ts @@ -11,15 +11,33 @@ export class ScreenService { } isInSmallView () { - return this.getWindowInnerWidth() < 600 + return this.getWindowInnerWidth() < 800 } isInMobileView () { return this.getWindowInnerWidth() < 500 } + isInTouchScreen () { + return 'ontouchstart' in window || navigator.msMaxTouchPoints + } + + getNumberOfAvailableMiniatures () { + const screenWidth = this.getWindowInnerWidth() + + let numberOfVideos = 1 + + if (screenWidth > 1850) numberOfVideos = 6 + else if (screenWidth > 1600) numberOfVideos = 5 + else if (screenWidth > 1370) numberOfVideos = 4 + else if (screenWidth > 1100) numberOfVideos = 3 + else if (screenWidth > 850) numberOfVideos = 2 + + return numberOfVideos + } + // Cache window inner width, because it's an expensive call - private getWindowInnerWidth () { + getWindowInnerWidth () { if (this.cacheWindowInnerWidthExpired()) this.refreshWindowInnerWidth() return this.windowInnerWidth @@ -32,6 +50,8 @@ export class ScreenService { } private cacheWindowInnerWidthExpired () { + if (!this.lastFunctionCallTime) return true + return new Date().getTime() > (this.lastFunctionCallTime + this.cacheForMs) } }