Skip to content

Commit 648d21a

Browse files
committed
Update "JS code" when input changes
1 parent bf6f050 commit 648d21a

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

ux.symfony.com/assets/controllers/translator-demo-block-controller.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,19 @@ export default class extends Controller {
2323
this.parametersTargets.forEach((target) => {
2424
if (target.name.includes('date')) {
2525
parameters.set(target.name, new Date(target.value));
26-
return;
26+
} else if (target.name.includes('progress')) {
27+
parameters.set(target.name, Number(target.value) / 100);
28+
} else {
29+
parameters.set(target.name, target.value);
30+
}
31+
});
32+
parameters.forEach((value, name) => {
33+
const code = this.codeTarget.querySelector(`span[data-code-parameter="${name}"]`);
34+
if (value instanceof Date) {
35+
code.innerText = value.toLocaleString();
36+
} else {
37+
code.innerText = value.toString();
2738
}
28-
parameters.set(target.name, target.value);
2939
});
3040

3141
this.outputsTargets.forEach((target) => {

ux.symfony.com/templates/ux_packages/translator.html.twig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,14 @@
140140
{% embed 'ux_packages/translator/_translator_demo_block.html.twig' with {
141141
message: 'PROGRESS',
142142
parameters: {
143-
progress: 0.5
143+
progress: 42
144144
},
145145
} %}
146146
{% block parameters %}
147147
<div>
148148
<label for="PROGRESS-progress" class="small opacity-50">Place</label>
149149
<input id="PROGRESS-progress" class="form-range"
150-
name="progress" type="range" min="0" max="100" value="50"
150+
name="progress" type="range" min="0" max="100" value="42"
151151
data-translator-demo-block-target="parameters"
152152
data-action="translator-demo-block#render"
153153
>
@@ -165,7 +165,7 @@
165165
<div>
166166
<label for="VALUE_OF_OBJECT-value" class="small opacity-50">Value</label>
167167
<input id="VALUE_OF_OBJECT-value" class="form-control"
168-
name="value" type="number" min="1" value="30"
168+
name="value" type="number" min="1" value="30" step="0.1"
169169
data-translator-demo-block-target="parameters"
170170
data-action="translator-demo-block#render"
171171
>

ux.symfony.com/templates/ux_packages/translator/_translator_demo_block.html.twig

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% set parameters = parameters ?? {} %}
22

3-
<div class="row mb-4 align-items-center"
3+
<div class="row mt-4 mb-4 align-items-center"
44
data-controller="translator-demo-block"
55
data-translator-demo-block-message-value="{{ message }}"
66
>
@@ -11,9 +11,9 @@
1111
<small><span class="hljs-keyword">import</span> { trans, <span class="hljs-variable constant_">{{ message }}</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'../translator'</span>;</small>
1212

1313
<span class="hljs-title function_">trans</span>(<span class="hljs-variable constant_">{{ message }}</span>{% if parameters %}, {
14-
{% for name, value in parameters %}
15-
<span class="hljs-attr" data-parameter-name="{{ name }}">{{ name }}</span>:&nbsp;
16-
{{- name ends with 'date' ? '<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>(' }}{{- value|length > 1 ? "'" }}<span class="hljs-string" data-parameter-value="{{ name }}">{{ value }}</span>{{ value|length > 1 ? "'" }}{{ name ends with 'date' ? ')' }},
14+
{% for name, value in parameters %} {% set isString = not (value matches '/^[\\d\\.]+$/') %}
15+
<span class="hljs-attr">{{ name }}</span>:&nbsp;
16+
{{- name ends with 'date' ? '<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>(' }}{{- isString ? "'" }}<span class="hljs-string" data-code-parameter="{{ name }}">{{ value }}</span>{{ isString ? "'" }}{{ name ends with 'date' ? ')' }},
1717
{% endfor %}
1818
}}{% endif %})</pre>
1919
</div>

0 commit comments

Comments
 (0)