Skip to content

Commit 2d4db3f

Browse files
committed
feat(searchableSelect): add showError prop to searchableSelect and expose blur and change events
1 parent 6b2ffd1 commit 2d4db3f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

components/custom/SearchableSelect/SearchableSelect.svelte

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ export let maxlength = 255
1818
export let disabled = false
1919
/** @type {boolean} if the input is required or not */
2020
export let required = false
21+
/** @type {boolean} applies the showError using error themes*/
22+
export let showError = false
2123
2224
let element = {}
2325
let randomId = generateRandomID('dataList-')
@@ -74,6 +76,10 @@ const onChange = (e) => {
7476
font-size: 10px;
7577
color: #222;
7678
}
79+
.showError {
80+
border-color: var(--mdc-theme-status-error, var(--mdc-theme-error));
81+
color: var(--mdc-theme-status-error, var(--mdc-theme-error));
82+
}
7783
</style>
7884

7985
<label class="custom-field" style="--field-padding: {padding}; {$$props.class || ''}">
@@ -82,14 +88,17 @@ const onChange = (e) => {
8288
{disabled}
8389
{maxlength}
8490
class="fs-14 {$$props.class || ''}"
91+
class:showError
8592
style="width: {width}"
8693
{required}
8794
list={randomId}
8895
placeholder="&nbsp;"
8996
bind:this={element}
9097
value={choice}
9198
on:change={onChange}
99+
on:change
92100
on:blur={(e) => dispatch('check', e.target.value)}
101+
on:blur
93102
on:focus
94103
/>
95104
<span class="placeholder">{placeholder}</span>

stories/SearchableSelect.stories.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const args = {
1919
required: false,
2020
width: '232px',
2121
maxlength: 255,
22+
showError: false,
2223
'on:chosen': (e) => setNotice(e.detail + ' chosen (accessed by event.detail)'),
2324
'on:check': (e) => {
2425
!args.options[e.detail] && setNotice(e.detail + ' not available')
@@ -57,3 +58,4 @@ setTimeout(() => {
5758
name="required"
5859
args={copyAndModifyArgs(args, { required: true, 'on:check': () => console.log('this is required') })}
5960
/>
61+
<Story name="showError" args={copyAndModifyArgs(args, { showError: true })} />

0 commit comments

Comments
 (0)