Skip to content

Commit 9f81181

Browse files
committed
support currentTime attr of audio/video elements
1 parent 9494bc0 commit 9f81181

3 files changed

Lines changed: 223 additions & 8 deletions

File tree

src/idom/client/app/packages/idom-client-react/package-lock.json

Lines changed: 195 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/idom/client/app/packages/idom-client-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"src/**/*.js"
1414
],
1515
"scripts": {
16-
"format": "prettier --print-width 88 --write ./src",
16+
"format": "prettier --write ./src",
1717
"test": "echo \"Error: no test specified\" && exit 1"
1818
},
1919
"devDependencies": {

src/idom/client/app/packages/idom-client-react/src/event-to-object.js

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,37 @@
11
function serializeEvent(event) {
22
const data = {};
3-
if ("value" in event.target) {
4-
data.value = event.target.value;
5-
}
63
if (event.type in eventTransforms) {
74
Object.assign(data, eventTransforms[event.type](event));
85
}
6+
if (event.target.tagName in targetTransforms) {
7+
Object.assign(data, targetTransforms[event.target.tagName]);
8+
}
99
return data;
1010
}
1111

12-
const eventCategoryTransforms = {
12+
const targetTransformCategories = {
13+
hasValue: (target) => ({
14+
value: target.value,
15+
}),
16+
hasCurrentTime: (target) => ({
17+
currentTime: target.currentTime,
18+
}),
19+
};
20+
21+
const targetTagCategories = {
22+
hasValue: ["BUTTON", "INPUT", "OPTION", "LI", "METER", "PROGRESS", "PARAM"],
23+
hasCurrentTime: ["AUDIO", "VIDEO"],
24+
};
25+
26+
const targetTransforms = {};
27+
28+
Object.keys(targetTagCategories).forEach((category) => {
29+
targetTagCategories[category].forEach((type) => {
30+
targetTransforms[type] = targetTransformCategories[category];
31+
});
32+
});
33+
34+
const eventTransformCategories = {
1335
clipboard: (event) => ({
1436
clipboardData: event.clipboardData,
1537
}),
@@ -128,7 +150,7 @@ const eventTransforms = {};
128150

129151
Object.keys(eventTypeCategories).forEach((category) => {
130152
eventTypeCategories[category].forEach((type) => {
131-
eventTransforms[type] = eventCategoryTransforms[category];
153+
eventTransforms[type] = eventTransformCategories[category];
132154
});
133155
});
134156

0 commit comments

Comments
 (0)