-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: OPTIC-1125: Label config preview always showing a step behind when making updates #6417
base: develop
Are you sure you want to change the base?
Conversation
…en making updates
✅ Deploy Preview for label-studio-docs-new-theme canceled.
|
✅ Deploy Preview for heartex-docs canceled.
|
|
||
export const Preview = ({ config, data, error, loading, project }) => { | ||
loadDependencies(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this way of calling it doesn't feel correct... besides of the comment from ellipsis it's also called synchronously.
or I'm just lacking some knowledge of dynamic import()
. if you call it repeatedly and in parallel would the module be imported only once and the same instance will be returned in different places?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if you call it repeatedly and in parallel would the module be imported only once and the same instance will be returned in different places?
Technically there is no parallel capability but the dynamic import will happen only once, right on the first render cycle of the component. That starts the async load, which then is awaited in the useEffect to ensure it completes. It all references the same promise, and only assigns it once.
This is basically the loader pattern introduced with React 18, and Suspense, but without all that jazz.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As mentioned in DM, we can go with a different approach if you are feeling this is not resonating.
PR fulfills these requirements
[fix|feat|ci|chore|doc]: TICKET-ID: Short description of change made
ex.fix: DEV-XXXX: Removed inconsistent code usage causing intermittent errors
Change has impacts in these area(s)
(check all that apply)
Describe the reason for change
The change originally made to fix an issue with taxonomy loading after updating the Label Config made it such that the preview was always a step behind changes that were made by the user. This addresses this by moving all the associated logic of updating and initializing to the same useEffect.
The following now occurs:
Does this PR introduce a breaking change?
(check only one)
What level of testing was included in the change?
(check all that apply)
Which logical domain(s) does this change affect?
Label Config Preview