This repository has been archived by the owner on Jan 20, 2022. It is now read-only.
AR-2148 Fix repeated rendering of global styles for tooltip-like components #330
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves issue AR-2148
We are rendering
<Global>
styles for all instances ofAbstractTooltip
, of which there can be thousands lying in wait on a single page. I incorrectly believed that these would be rendered just once to the DOM, but I was wrong; they are rendered once per instance rendered. This resulted in thousands of duplicated<style>
tags being added.Release Notes
SingletonComponent
(the name is poor and can be changed whenever we want because it's internal) that will take a stringidentity
and only allow a single instance in the DOM regardless of how many times it's rendered. This requires us to useSpaceKitProvider
. Tooltips can be used withoutSpaceKitProvider
and will warn the user in the console.<Global>
styles with theSingletonComponent
to remove all excess DOM<style />
s📦 Published PR as canary version:
8.17.4-canary.330.8834.0
✨ Test out this PR locally via:
npm install @apollo/space-kit@8.17.4-canary.330.8834.0 # or yarn add @apollo/space-kit@8.17.4-canary.330.8834.0