mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-21 12:49:20 +00:00
breaking(text-input): dispatch instead of forward input, change events
This commit is contained in:
parent
2bba3df453
commit
a15c1f5471
1 changed files with 25 additions and 6 deletions
|
@ -1,4 +1,9 @@
|
|||
<script>
|
||||
/**
|
||||
* @event {null | number | string} change
|
||||
* @event {null | number | string} input
|
||||
*/
|
||||
|
||||
/**
|
||||
* Set the size of the input
|
||||
* @type {"sm" | "xl"}
|
||||
|
@ -65,19 +70,33 @@
|
|||
/** Set to `true` to use the read-only variant */
|
||||
export let readonly = false;
|
||||
|
||||
import { getContext } from "svelte";
|
||||
import { createEventDispatcher, getContext } from "svelte";
|
||||
import WarningFilled16 from "../icons/WarningFilled16.svelte";
|
||||
import WarningAltFilled16 from "../icons/WarningAltFilled16.svelte";
|
||||
import EditOff16 from "../icons/EditOff16.svelte";
|
||||
|
||||
const ctx = getContext("Form");
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
function parse(raw) {
|
||||
if ($$restProps.type !== "number") return raw;
|
||||
return raw != "" ? Number(raw) : null;
|
||||
}
|
||||
|
||||
/** @type {(e: Event) => void} */
|
||||
const onInput = (e) => {
|
||||
value = parse(e.target.value);
|
||||
dispatch("input", value);
|
||||
};
|
||||
|
||||
/** @type {(e: Event) => void} */
|
||||
const onChange = (e) => {
|
||||
dispatch("change", parse(e.target.value));
|
||||
};
|
||||
|
||||
$: isFluid = !!ctx && ctx.isFluid;
|
||||
$: errorId = `error-${id}`;
|
||||
$: warnId = `warn-${id}`;
|
||||
$: if ($$restProps.type === "number") {
|
||||
value = value !== "" && value !== null ? Number(value) : null;
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- svelte-ignore a11y-mouse-events-have-key-events -->
|
||||
|
@ -174,8 +193,8 @@
|
|||
class:bx--text-input--warn="{warn}"
|
||||
{...$$restProps}
|
||||
class="{size && `bx--text-input--${size}`}"
|
||||
on:change
|
||||
on:input
|
||||
on:change="{onChange}"
|
||||
on:input="{onInput}"
|
||||
on:keydown
|
||||
on:keyup
|
||||
on:focus
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue