Sha256: 9f778f3cddabbff3da95edc41986ac4c53576e0d9183812a9d7db8a5f97744be

Contents?: true

Size: 677 Bytes

Versions: 61

Compression:

Stored size: 677 Bytes

Contents

import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
  static targets = [ "button" ]

  connect() {
    this.hasButtonTarget && this.#hideButtonIfNotSupported()
  }

  toggle() {
    this.#fullScreenMode ? this.#exitFullscreen() : this.#requestFullscreen()
  }

  #hideButtonIfNotSupported() {
    this.buttonTarget.hidden = !this.#supportsFullScreen
  }

  #exitFullscreen() {
    document.exitFullscreen()
  }

  #requestFullscreen() {
    document.documentElement.requestFullscreen()
  }

  get #supportsFullScreen() {
    return this.element.requestFullscreen
  }

  get #fullScreenMode() {
    return document.fullscreenElement
  }
}

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
css-zero-1.0.6 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-1.0.5 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-1.0.4 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-1.0.3 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-1.0.2 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-1.0.1 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-1.0.0 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.98 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.97 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.96 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.95 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.94 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.93 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.92 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.91 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.90 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.89 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.88 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.87 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.86 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js