export const useVercelParams = () => {
  let query = new URLSearchParams(window.location.search)
  let rawRedirectUri: string | null = null

  let fromVercel = false
  let vercelRedirectUri = ''

  while (query.get('redirect_uri')) {
    rawRedirectUri = query.get('redirect_uri') ?? ''
    const params = rawRedirectUri.split('?')
    query = new URLSearchParams(params.length > 1 ? params[1] : '')
  }

  if (rawRedirectUri) {
    const search = rawRedirectUri.indexOf('?')
    if (search !== -1) {
      const url = rawRedirectUri.substring(rawRedirectUri.indexOf('?') + 1)
      const redirectUri = new URLSearchParams(url.replace('?', '&'))
      const prev = redirectUri.get('prev')
      const configurationId = redirectUri.get('configurationId')
      const next = redirectUri.get('next')
      const teamId = redirectUri.get('teamId')
      const code = redirectUri.get('code')

      if (prev?.includes('/ecosystem/vercel/') && configurationId && next) {
        fromVercel = true
        vercelRedirectUri = `?prev=/console/ecosystem/vercel/redirect?code=${code}&teamId=${teamId}&configurationId=${configurationId}&next=${next}`
      }
    }
  }
  return {
    fromVercel,
    redirectUri: vercelRedirectUri
  }
}
