fix event modifiers

pull/3539/head
Richard Harris 6 years ago
parent a5a729c04e
commit 5ece428a09

@ -1,6 +1,9 @@
import Block from '../../Block';
import EventHandler from '../../../nodes/EventHandler';
import { x } from 'code-red';
import { x, p } from 'code-red';
const TRUE = x`true`;
const FALSE = x`false`;
export default function add_event_handlers(
block: Block,
@ -13,33 +16,24 @@ export default function add_event_handlers(
if (handler.modifiers.has('stopPropagation')) snippet = x`@stop_propagation(${snippet})`;
if (handler.modifiers.has('self')) snippet = x`@self(${snippet})`;
// let opts_string = '';
// if (block.renderer.options.dev) {
// if (handler.modifiers.has('stopPropagation')) {
// opts_string = ', true';
// }
// if (handler.modifiers.has('preventDefault')) {
// opts_string = ', true' + opts_string;
// } else if (opts_string) {
// opts_string = ', false' + opts_string;
// }
// }
const args = [];
// const opts = ['passive', 'once', 'capture'].filter(mod => handler.modifiers.has(mod));
// if (opts.length) {
// opts_string = (opts.length === 1 && opts[0] === 'capture')
// ? ', true'
// : `, { ${opts.map(opt => `${opt}: true`).join(', ')} }`;
// } else if (opts_string) {
// opts_string = ', false' + opts_string;
// }
const opts = ['passive', 'once', 'capture'].filter(mod => handler.modifiers.has(mod));
if (opts.length) {
args.push((opts.length === 1 && opts[0] === 'capture')
? TRUE
: x`{ ${opts.map(opt => p`${opt}: true`)} }`);
} else if (block.renderer.options.dev) {
args.push(FALSE);
}
// TODO modifiers
if (block.renderer.options.dev) {
args.push(handler.modifiers.has('stopPropagation') ? TRUE : FALSE);
args.push(handler.modifiers.has('preventDefault') ? TRUE : FALSE);
}
block.event_listeners.push(
x`@listen(${target}, "${handler.name}", ${snippet})`
x`@listen(${target}, "${handler.name}", ${snippet}, ${args})`
);
});
}

Loading…
Cancel
Save