Files
console/src/lib/actions/selectionStart.ts
T
2022-12-14 22:41:44 +00:00

29 lines
794 B
TypeScript

import type { Action } from 'svelte/action';
type Props = {
onChange: (selectionStart: number) => void;
};
export const selectionStart: Action<HTMLInputElement, Props> = (node, { onChange }) => {
const handler = () => {
onChange(node.selectionStart);
};
node.addEventListener('click', handler);
node.addEventListener('keydown', handler);
node.addEventListener('keyup', handler);
return {
update({ onChange }) {
const handler = () => {
onChange(node.selectionStart);
};
node.addEventListener('click', handler);
node.addEventListener('keydown', handler);
node.addEventListener('keyup', handler);
},
destroy() {
onChange(-1);
}
};
};