Skip to content

Commit fb156d1

Browse files
committed
refactor: use contstant event names prefixes
1 parent ebfe2f4 commit fb156d1

File tree

5 files changed

+18
-14
lines changed

5 files changed

+18
-14
lines changed

packages/qwik/src/core/client/vnode.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ import {
168168
import { mergeMaps } from '../shared/utils/maps';
169169
import { _EFFECT_BACK_REF } from '../reactive-primitives/types';
170170
import { ElementVNode, TextVNode, VirtualVNode, VNode } from './vnode-impl';
171+
import { EventNameHtmlScope } from '../shared/utils/event-names';
171172

172173
//////////////////////////////////////////////////////////////////////////////////////////////////////
173174

@@ -399,7 +400,7 @@ export const vnode_ensureElementInflated = (vnode: VNode) => {
399400
} else if (attr.value === QContainerValue.TEXT && 'value' in element) {
400401
mapArray_set(props, 'value', element.value, 0);
401402
}
402-
} else if (!key.startsWith('on:')) {
403+
} else if (!key.startsWith(EventNameHtmlScope.on)) {
403404
const value = attr.value;
404405
const props = vnode_getProps(elementVNode);
405406
mapArray_set(props, key, value, 0);

packages/qwik/src/core/shared/utils/event-names.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export const enum EventNameJSXScope {
1515
document = 'document:on',
1616
}
1717

18-
const enum EventNameHtmlScope {
18+
export const enum EventNameHtmlScope {
1919
on = 'on:',
2020
window = 'on-window:',
2121
document = 'on-document:',
@@ -34,7 +34,11 @@ export const isJsxPropertyAnEventName = (name: string): boolean => {
3434
};
3535

3636
export const isHtmlAttributeAnEventName = (name: string): boolean => {
37-
return /^on(|-(window|document)):/.test(name);
37+
return (
38+
name.startsWith(EventNameHtmlScope.on) ||
39+
name.startsWith(EventNameHtmlScope.window) ||
40+
name.startsWith(EventNameHtmlScope.document)
41+
);
3842
};
3943

4044
/**

packages/qwik/src/core/ssr/ssr-render-jsx.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -439,12 +439,6 @@ function addQwikEventToSerializationContext(
439439
if (match) {
440440
const eventName = match[3];
441441
serializationCtx.$eventNames$.add(eventName);
442-
console.log(
443-
'addQwikEventToSerializationContext',
444-
key,
445-
eventName,
446-
serializationCtx.$eventNames$
447-
);
448442
serializationCtx.$eventQrls$.add(qrl);
449443
}
450444
}

packages/qwik/src/core/use/use-on.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import type {
88
} from '../shared/jsx/types/jsx-qwik-attributes';
99
import type { HostElement } from '../shared/types';
1010
import { USE_ON_LOCAL, USE_ON_LOCAL_FLAGS, USE_ON_LOCAL_SEQ_IDX } from '../shared/utils/markers';
11+
import { EventNameHtmlScope } from '../shared/utils/event-names';
1112

1213
export type EventQRL<T extends string = AllEventKeys> =
1314
| QRL<EventHandler<EventFromName<T>, Element>>
@@ -27,7 +28,7 @@ export type EventQRL<T extends string = AllEventKeys> =
2728
*/
2829
// </docs>
2930
export const useOn = <T extends KnownEventNames>(event: T | T[], eventQrl: EventQRL<T>) => {
30-
_useOn('on:', event, eventQrl);
31+
_useOn(EventNameHtmlScope.on, event, eventQrl);
3132
};
3233

3334
// <docs markdown="../readme.md#useOnDocument">
@@ -60,7 +61,7 @@ export const useOn = <T extends KnownEventNames>(event: T | T[], eventQrl: Event
6061
*/
6162
// </docs>
6263
export const useOnDocument = <T extends KnownEventNames>(event: T | T[], eventQrl: EventQRL<T>) => {
63-
_useOn('on-document:', event, eventQrl);
64+
_useOn(EventNameHtmlScope.document, event, eventQrl);
6465
};
6566

6667
// <docs markdown="../readme.md#useOnWindow">
@@ -94,7 +95,7 @@ export const useOnDocument = <T extends KnownEventNames>(event: T | T[], eventQr
9495
*/
9596
// </docs>
9697
export const useOnWindow = <T extends KnownEventNames>(event: T | T[], eventQrl: EventQRL<T>) => {
97-
_useOn('on-window:', event, eventQrl);
98+
_useOn(EventNameHtmlScope.window, event, eventQrl);
9899
};
99100

100101
const _useOn = (prefix: string, eventName: string | string[], eventQrl: EventQRL) => {

packages/qwik/src/testing/element-fixture.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ import type { ClientContainer } from '@qwik.dev/core/internal';
33
import { vi } from 'vitest';
44
import { assertDefined } from '../core/shared/error/assert';
55
import type { Container, QElement, QwikLoaderEventScope } from '../core/shared/types';
6-
import { fromCamelToKebabCase } from '../core/shared/utils/event-names';
6+
import {
7+
EventNameHtmlScope,
8+
EventNameJSXScope,
9+
fromCamelToKebabCase,
10+
} from '../core/shared/utils/event-names';
711
import { QFuncsPrefix, QInstanceAttr } from '../core/shared/utils/markers';
812
import { delay } from '../core/shared/utils/promises';
913
import { invokeApply, newInvokeContextFromTuple } from '../core/use/use-core';
@@ -116,7 +120,7 @@ export async function trigger(
116120
cancelable: true,
117121
});
118122
Object.assign(event, eventPayload);
119-
const prefix = scope ? 'on' + scope + ':' : 'on:';
123+
const prefix = scope ? EventNameJSXScope.on + scope + ':' : EventNameHtmlScope.on;
120124
const attrName = prefix + fromCamelToKebabCase(eventName);
121125
await dispatch(element, attrName, event, scope);
122126
}

0 commit comments

Comments
 (0)