window dimension bindings

pull/1864/head
Rich Harris 7 years ago
parent 4231c62dbc
commit 83318b6bf5

@ -199,7 +199,7 @@ export default function dom(
}
`);
if (component.writable_declarations.has(x.as)) {
if (component.writable_declarations.has(x.as) && !renderer.readonly.has(x.as)) {
body.push(deindent`
set ${x.as}(value) {
this.$set({ ${x.name}: value });

@ -109,30 +109,25 @@ export default class WindowWrapper extends Wrapper {
});
}
const handler_body = deindent`
component.declarations.push(handler_name);
component.partly_hoisted.push(deindent`
function ${handler_name}() {
${event === 'scroll' && deindent`
if (${lock}) return;
${lock} = true;
`}
${component.options.dev && `component._updatingReadonlyProperty = true;`}
#component.set({
${props.map(prop => `${prop.name}: this.${prop.value}`)}
});
${component.options.dev && `component._updatingReadonlyProperty = false;`}
${props.map(prop => `${prop.name} = window.${prop.value}; $$make_dirty('${prop.name}');`)}
${event === 'scroll' && `${lock} = false;`}
`;
}
`);
block.builders.init.addBlock(deindent`
function ${handler_name}(event) {
${handler_body}
}
window.addEventListener("${event}", ${handler_name});
window.addEventListener("${event}", ctx.${handler_name});
@after_render(ctx.${handler_name});
`);
block.builders.destroy.addBlock(deindent`
window.removeEventListener("${event}", ${handler_name});
window.removeEventListener("${event}", ctx.${handler_name});
`);
});

@ -1,4 +1,6 @@
export default {
solo: 1,
compileOptions: {
dev: true
},

Loading…
Cancel
Save