From 03d41ec8b143da957dca306c74f4ef2f3c6d4e8c Mon Sep 17 00:00:00 2001 From: Ahmed Ejaz Date: Sun, 12 Nov 2023 16:03:59 +0500 Subject: [PATCH] 1448, add clipboard controller --- .../controllers/clipboard_controller.ts | 14 ++++++++++++++ .../retrospring/initializers/stimulus.ts | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 app/javascript/retrospring/controllers/clipboard_controller.ts diff --git a/app/javascript/retrospring/controllers/clipboard_controller.ts b/app/javascript/retrospring/controllers/clipboard_controller.ts new file mode 100644 index 00000000..63ee136e --- /dev/null +++ b/app/javascript/retrospring/controllers/clipboard_controller.ts @@ -0,0 +1,14 @@ +import { Controller } from "@hotwired/stimulus"; + +export default class extends Controller { + + static values = { + copy: String + } + + declare readonly copyValue: string; + + async copy(){ + await navigator.clipboard.writeText(this.copyValue) + } +} diff --git a/app/javascript/retrospring/initializers/stimulus.ts b/app/javascript/retrospring/initializers/stimulus.ts index 79116e3e..862b7fb9 100644 --- a/app/javascript/retrospring/initializers/stimulus.ts +++ b/app/javascript/retrospring/initializers/stimulus.ts @@ -14,6 +14,7 @@ import ToastController from "retrospring/controllers/toast_controller"; import PwaBadgeController from "retrospring/controllers/pwa_badge_controller"; import NavigationController from "retrospring/controllers/navigation_controller"; import ShareController from "retrospring/controllers/share_controller"; +import ClipboardController from "retrospring/controllers/clipboard_controller"; /** * This module sets up Stimulus and our controllers @@ -39,4 +40,5 @@ export default function (): void { window['Stimulus'].register('theme', ThemeController); window['Stimulus'].register('toast', ToastController); window['Stimulus'].register('share', ShareController); + window['Stimulus'].register('clipboard', ClipboardController) }