Sha256: 1c9f463b937b2ddb41f6de951ec23bf7199773215c269c46b6ae6640d4ce051a

Contents?: true

Size: 679 Bytes

Versions: 9

Compression:

Stored size: 679 Bytes

Contents

import { Controller } from "@hotwired/stimulus"

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

  connect() {
    if (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

9 entries across 9 versions & 1 rubygems

Version Path
css-zero-0.0.44 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.43 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.42 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.41 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.40 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.39 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.38 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.37 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
css-zero-0.0.36 lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js