azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 1.07 kB
JavaScript
import*as React from"react";import{ObservableValue}from"../../Core/Observable";var ScreenBreakpoints,ScreenSize;!function(e){e[e.xsmall=1]="xsmall",e[e.small=600]="small",e[e.medium=1024]="medium",e[e.large=1366]="large",e[e.xlarge=1920]="xlarge"}(ScreenBreakpoints=ScreenBreakpoints||{}),function(e){e[e.xsmall=0]="xsmall",e[e.small=1]="small",e[e.medium=2]="medium",e[e.large=3]="large",e[e.xlarge=4]="xlarge"}(ScreenSize=ScreenSize||{});class ScreenContextImp{constructor(){this.onResize=()=>{var e=this.getCurrentSize();this.size.value!==e&&(this.size.value=e)},this.size=new ObservableValue(this.getCurrentSize()),window.addEventListener("resize",this.onResize)}getCurrentSize(){return window.innerWidth>=ScreenBreakpoints.xlarge?ScreenSize.xlarge:window.innerWidth>=ScreenBreakpoints.large?ScreenSize.large:window.innerWidth>=ScreenBreakpoints.medium?ScreenSize.medium:window.innerWidth>=ScreenBreakpoints.small?ScreenSize.small:ScreenSize.xsmall}}const ScreenContext=React.createContext(new ScreenContextImp);export{ScreenBreakpoints,ScreenSize,ScreenContext};