aboutsummaryrefslogblamecommitdiffhomepage
path: root/client/src/app/shared/misc/utils.ts
blob: 5525e4efbd28b1b1de4c9374671f955d8d066c6f (plain) (tree)
1
2
3
4

                                                                                                     

                                             












                                                               



                                                                                 


















                                                                                    
        
                 

                                
 
// Thanks: https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript

import { AuthService } from '../../core/auth'

function getParameterByName (name: string, url: string) {
  if (!url) url = window.location.href
  name = name.replace(/[\[\]]/g, '\\$&')

  const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)')
  const results = regex.exec(url)

  if (!results) return null
  if (!results[2]) return ''

  return decodeURIComponent(results[2].replace(/\+/g, ' '))
}

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.name }))

          return res()
        }
      )
  })
}

export {
  viewportHeight,
  getParameterByName,
  populateAsyncUserVideoChannels
}