@@ -19,14 +19,13 @@ export default function FinderFileSelect(props) {
19
19
link.media = 'all';
20
20
link.rel = 'stylesheet';
21
21
shadowRoot.insertBefore(link, shadowRoot.firstChild);
22
- const observer = new MutationObserver(attributesChanged);
23
22
const inputElement = slotRef.current.assignedElements()[0];
24
23
if (inputElement instanceof HTMLInputElement) {
25
24
setSelectedFile(JSON.parse(inputElement.getAttribute('data-selected_file')));
26
- observer.observe(inputElement, {attributes: true} );
25
+ inputElement.addEventListener('change', valueChanged );
27
26
}
28
27
return () => {
29
- observer.disconnect( );
28
+ inputElement.removeEventListener('change', valueChanged );
30
29
};
31
30
}, []);
32
31
@@ -52,18 +51,13 @@ export default function FinderFileSelect(props) {
52
51
}
53
52
}, []);
54
53
55
- async function attributesChanged(mutationList) {
56
- for (const mutation of mutationList) {
57
- if (mutation.type === 'attributes' && mutation.attributeName === 'data-file_id') {
58
- const fileId = mutation.target.dataset.file_id;
59
- const response = await fetch(`${baseUrl}${fileId}/fetch`);
60
- if (response.ok) {
61
- setSelectedFile(await response.json());
62
- } else {
63
- console.error(`Failed to fetch file info for ID ${fileId}:`, response.statusText);
64
- }
65
-
66
- }
54
+ async function valueChanged(event) {
55
+ const fileId = event.target.value;
56
+ const response = await fetch(`${baseUrl}${fileId}/fetch`);
57
+ if (response.ok) {
58
+ setSelectedFile(await response.json());
59
+ } else {
60
+ console.error(`Failed to fetch file info for ID ${fileId}:`, response.statusText);
67
61
}
68
62
}
69
63
0 commit comments