From 76e6c5a8720e7630708ea96c5ca8dae0dbe5f7f1 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Sat, 17 Feb 2024 08:53:06 -0800 Subject: [PATCH] fix: avoid calling getRootNode --- src/picker/components/Picker/Picker.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/picker/components/Picker/Picker.js b/src/picker/components/Picker/Picker.js index 00531f4..ed24830 100644 --- a/src/picker/components/Picker/Picker.js +++ b/src/picker/components/Picker/Picker.js @@ -29,7 +29,7 @@ const EMPTY_ARRAY = [] const { assign } = Object -export function createRoot (target, props) { +export function createRoot (shadowRoot, props) { const refs = {} const abortController = new AbortController() const abortSignal = abortController.signal @@ -91,9 +91,11 @@ export function createRoot (target, props) { // const focus = id => { - refs.rootElement.getRootNode().getElementById(id).focus() + shadowRoot.getElementById(id).focus() } + const emojiToDomNode = emoji => shadowRoot.getElementById(`emo-${emoji.id}`) + // fire a custom event that crosses the shadow boundary const fireEvent = (name, detail) => { refs.rootElement.dispatchEvent(new CustomEvent(name, { @@ -184,7 +186,7 @@ export function createRoot (target, props) { let firstRender = true createEffect(() => { - render(target, state, helpers, events, actions, refs, abortSignal, firstRender) + render(shadowRoot, state, helpers, events, actions, refs, abortSignal, firstRender) firstRender = false }) @@ -431,8 +433,6 @@ export function createRoot (target, props) { }) function checkZwjSupportAndUpdate (zwjEmojisToCheck) { - const shadowRootNode = refs.rootElement.getRootNode() - const emojiToDomNode = emoji => shadowRootNode.getElementById(`emo-${emoji.id}`) checkZwjSupport(zwjEmojisToCheck, refs.baselineEmoji, emojiToDomNode) // force update // eslint-disable-next-line no-self-assign