diff --git a/assets/js/app.js b/assets/js/app.js
index abf269c..599441d 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -17,10 +17,14 @@ import {Socket} from "phoenix"
import NProgress from "nprogress"
import {LiveSocket} from "phoenix_live_view"
+import '@babel/polyfill'
+import { copy_func } from './buttons'
+
let Hooks = {}
Hooks.SnippetInput = {
updated(){
this.el.value = this.el.dataset.updatedVal
+ copy_func()
}
}
@@ -38,13 +42,3 @@ liveSocket.connect()
// >> liveSocket.enableDebug()
// >> liveSocket.enableLatencySim(1000)
window.liveSocket = liveSocket
-
-document.querySelector("button[id='copy-button']").onclick = function(){
- var ta = document.querySelector("textarea[name='snippet']")
- var start = ta.selectionStart
- var end = ta.selectionEnd
- ta.select()
- document.execCommand("copy");
- ta.selectionStart = start
- ta.selectionEnd = end
-}
diff --git a/assets/js/buttons.js b/assets/js/buttons.js
new file mode 100644
index 0000000..3de0919
--- /dev/null
+++ b/assets/js/buttons.js
@@ -0,0 +1,25 @@
+
+var copy_on_update
+
+export async function copy_func(now){
+ console.info([document, copy_on_update, now, "copy_func() executed"])
+ if ( copy_on_update || now ){
+ var ta = document.querySelector("textarea[name='snippet']")
+ ta.focus()
+ try {
+ await navigator.clipboard.writeText(ta.value)
+ } catch (error) {
+ console.error(error)
+ }
+ copy_on_update = false
+ }
+}
+
+document.querySelector("button[id='normcop']").onclick = function(ev){
+ copy_func(true)
+ copy_on_update = true
+}
+
+document.querySelector("button[id='copy-button']").onclick = function(ev){
+ copy_func(true)
+}
diff --git a/assets/package-lock.json b/assets/package-lock.json
index d5498f9..4eb9cca 100644
--- a/assets/package-lock.json
+++ b/assets/package-lock.json
@@ -829,6 +829,16 @@
"@babel/helper-plugin-utils": "^7.10.4"
}
},
+ "@babel/polyfill": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz",
+ "integrity": "sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg==",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.6.5",
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
"@babel/preset-env": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz",
@@ -2244,6 +2254,12 @@
}
}
},
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "dev": true
+ },
"core-js-compat": {
"version": "3.6.5",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
diff --git a/assets/package.json b/assets/package.json
index 8f7026f..eb503d1 100644
--- a/assets/package.json
+++ b/assets/package.json
@@ -15,6 +15,7 @@
"devDependencies": {
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
+ "@babel/polyfill": "^7.10.1",
"babel-loader": "^8.0.0",
"copy-webpack-plugin": "^5.1.1",
"css-loader": "^3.4.2",
diff --git a/lib/clip_web/live/board_live.ex b/lib/clip_web/live/board_live.ex
index e6677ad..6fe8bc0 100644
--- a/lib/clip_web/live/board_live.ex
+++ b/lib/clip_web/live/board_live.ex
@@ -11,7 +11,7 @@ defmodule ClipWeb.BoardLive do
-
+
"""
end