Skip to content

Commit 025312b

Browse files
committed
add RadioLeading example
1 parent a5a7535 commit 025312b

File tree

3 files changed

+120
-0
lines changed

3 files changed

+120
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { component$, useSignal } from '@builder.io/qwik';
2+
import { SfRadio } from 'qwik-storefront-ui';
3+
4+
const radioOptions = [
5+
{
6+
label: 'Label',
7+
value: 'value-1',
8+
name: 'radio-1',
9+
},
10+
{
11+
label: 'Label 2',
12+
value: 'value-2',
13+
name: 'radio-1',
14+
},
15+
];
16+
17+
export default component$(() => {
18+
const checkedStateSignal = useSignal('');
19+
return (
20+
<>
21+
<div class="-mt-4">
22+
{radioOptions.map(({ label, value, name }) => (
23+
<label key={value} class="flex items-center mt-4 cursor-pointer">
24+
<SfRadio
25+
name={name}
26+
value={value}
27+
checked={checkedStateSignal.value === value}
28+
onChange$={(event) => {
29+
checkedStateSignal.value = event.target.value;
30+
}}
31+
/>
32+
<span class="ml-2 text-base font-normal leading-6 font-body">
33+
{label}
34+
</span>
35+
</label>
36+
))}
37+
</div>
38+
<div class="flex justify-between mt-2">
39+
<p class="text-xs text-neutral-500">Help text</p>
40+
</div>
41+
</>
42+
);
43+
});
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { component$, useSignal } from '@builder.io/qwik';
2+
import { SfRadio } from 'qwik-storefront-ui';
3+
4+
const radioOptions = [
5+
{
6+
label: 'Label',
7+
value: 'value-1',
8+
name: 'radio-1',
9+
},
10+
{
11+
label: 'Label 2',
12+
value: 'value-2',
13+
name: 'radio-1',
14+
},
15+
];
16+
export default component$(() => {
17+
const checkedStateSignal = useSignal('');
18+
return (
19+
<>
20+
<div class="-mt-4">
21+
{radioOptions.map(({ label, value, name }) => (
22+
<label
23+
key={value}
24+
class="flex flex-row-reverse items-center justify-between mt-4 cursor-pointer"
25+
>
26+
<SfRadio
27+
name={name}
28+
value={value}
29+
checked={checkedStateSignal.value === value}
30+
onChange$={(event) => {
31+
checkedStateSignal.value = event.target.value;
32+
}}
33+
/>
34+
<span class="ml-2 text-base font-normal leading-5 font-body">
35+
{label}
36+
</span>
37+
</label>
38+
))}
39+
</div>
40+
<div class="flex justify-between mt-2 ml-2">
41+
<p class="text-xs text-neutral-500">Help text</p>
42+
</div>
43+
</>
44+
);
45+
});
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { component$, useSignal } from '@builder.io/qwik';
2+
import { SfRadio } from 'qwik-storefront-ui';
3+
4+
const radioOptions = [
5+
{
6+
value: 'value-1',
7+
name: 'radio-1',
8+
},
9+
{
10+
value: 'value-2',
11+
name: 'radio-2',
12+
},
13+
];
14+
export default component$(() => {
15+
const checkedStateSignal = useSignal('');
16+
return (
17+
<>
18+
{radioOptions.map(({ name, value }, index) => (
19+
<SfRadio
20+
key={index}
21+
name={name}
22+
value={value}
23+
class="block mb-4"
24+
checked={checkedStateSignal.value === value}
25+
onChange$={(event) => {
26+
checkedStateSignal.value = event.target.value;
27+
}}
28+
/>
29+
))}
30+
</>
31+
);
32+
});

0 commit comments

Comments
 (0)