Fix: copy button was storing literal template string
HEEX doesn't interpolate {} inside quoted attribute values.
Use data-token attribute + .dataset.token instead.
This commit is contained in:
@@ -38,10 +38,11 @@
|
||||
|
||||
<div class="mt-4" x-data="{ revealed: false, copied: false }">
|
||||
<%= if Settings.get!(:api_token) do %>
|
||||
<% token = Settings.get!(:api_token) %>
|
||||
<div class="flex items-center gap-3 flex-wrap">
|
||||
<code class="font-mono text-sm bg-meta-2 dark:bg-meta-4 px-3 py-2 rounded break-all">
|
||||
<span x-show="!revealed">{String.slice(Settings.get!(:api_token), 0, 12)}••••••••</span>
|
||||
<span x-show="revealed" x-cloak>{Settings.get!(:api_token)}</span>
|
||||
<span x-show="!revealed">{String.slice(token, 0, 12)}••••••••</span>
|
||||
<span x-show="revealed" x-cloak>{token}</span>
|
||||
</code>
|
||||
<button type="button" class="text-sm underline" @click="revealed = !revealed">
|
||||
<span x-show="!revealed">Show</span>
|
||||
@@ -50,7 +51,8 @@
|
||||
<button
|
||||
type="button"
|
||||
class="text-sm underline"
|
||||
@click="navigator.clipboard.writeText('{Settings.get!(:api_token)}').then(() => { copied = true; setTimeout(() => copied = false, 2000) })"
|
||||
data-token={token}
|
||||
@click="navigator.clipboard.writeText($el.dataset.token).then(() => { copied = true; setTimeout(() => copied = false, 2000) })"
|
||||
>
|
||||
<span x-show="!copied">Copy</span>
|
||||
<span x-show="copied" x-cloak>Copied!</span>
|
||||
|
||||
Reference in New Issue
Block a user