function register ({ registerHook, registerVideoField }) {
  console.log('loading video edit stuff')

  {
    const commonOptions1 = {
      name: 'hello-world-field',
      label: 'Super field',
      type: 'input',
      default: 'hello'
    }

    const commonOptions2 = {
      name: 'hello-world-field-2',
      label: 'Super field 2',
      type: 'input',
      hidden: ({ liveVideo, videoToUpdate, formValues }) => {
        console.log('check hidden field', { videoToUpdate, liveVideo, formValues })

        return formValues.pluginData['hello-world-field'] === 'toto'
      }
    }

    const commonOptions3 = {
      name: 'hello-world-field-3',
      label: 'Super field 3',
      type: 'input-checkbox'
    }

    const commonOptions4 = {
      name: 'hello-world-field-4',
      label: 'Super field 4 in main tab',
      type: 'input-checkbox',
      hidden: ({ formValues }) => {
        return formValues['privacy'] !== 1 && formValues['privacy'] !== 2
      },
      error: ({ formValues, value }) => {
        if (formValues['privacy'] !== 1 && formValues['privacy'] !== 2) return { error: false }
        if (value === true) return { error: false }

        return { error: true, text: 'Should be enabled' }
      }
    }

    for (const type of [ 'upload', 'import-url', 'update' ]) {
      registerVideoField(commonOptions1, { type })
      registerVideoField(commonOptions2, { type })
      registerVideoField(commonOptions3, { type })
      registerVideoField(commonOptions4, { type, tab: 'main' })
    }
  }

  {
    const hooks = [
      'action:video-upload.init',
      'action:video-url-import.init',
      'action:video-torrent-import.init',
      'action:go-live.init'
    ]

    for (const h of hooks) {
      registerHook({
        target: h,
        handler: () => {
          const event = new Event('change', {
              bubbles: true,
              cancelable: true,
          });
          const selects = document.querySelectorAll('label[for=first-step-privacy] + my-select-options')

          console.log(selects)

          selects.forEach(s => {
            s.value = 2 // Unlisted
            s.dispatchEvent(event)
          })
        }
      })
    }
  }
}

export {
  register
}