-
Notifications
You must be signed in to change notification settings - Fork 8.9k
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
feat(editor): Implement loading and error states for dynamically loaded components in node parameter list #8477
feat(editor): Implement loading and error states for dynamically loaded components in node parameter list #8477
Conversation
…ed components in node parameter list
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.
Seems to works as expected 🎉 Added just two minor comments, also there's some linting issues we should fix
|
||
// This will catch errors in async components | ||
onErrorCaptured((e) => { | ||
console.error(e); |
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.
Do we need this? It seems to me like it's duplicate-logging the error.
console.error(e); | ||
asyncLoadingError.value = true; | ||
// Don't propagate the error further | ||
return true; |
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.
To stop the propagation the return should be false
as per Vue docs:
The hook can return false to stop the error from propagating further. See error propagation details below.
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.
Ah, true. Thanks for catching this, it should also prevent double logging
…error-states * master: fix(editor): Send template id as a number in telemetry events (#8484) refactor(core): Replace promisify-d node calls with native promises (no-changelog) (#8464) fix(core): Fix stopping and retrying failed executions (#8480) feat: Add model parameter to OpenAI embeddings (#8481) fix(editor): Disable expression editor modal opening on readonly field (#8457) fix(core): Prevent calling internal hook email event if emailing is disabled (#8462)
…ction in error captured hook
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.
Thanks for addressing my points, LGTM 🎉
2 flaky tests on run #3962 ↗︎
Details:
5-ndv.cy.ts • 1 flaky test
2-credentials.cy.ts • 1 flaky test
Review all test suite changes for PR #8477 ↗︎ |
✅ All Cypress E2E specs passed |
Got released with |
* refactor(core): Replace promisify-d node calls with native promises (no-changelog) (n8n-io#8464) * fix(editor): Send template id as a number in telemetry events (n8n-io#8484) * refactor(editor): Prevent router.replace from computed property (no-changelog) (n8n-io#8489) Signed-off-by: Oleg Ivaniv <[email protected]> * feat(core): Remove `own` execution-process mode (n8n-io#8490) * feat(editor): Implement loading and error states for dynamically loaded components in node parameter list (n8n-io#8477) * fix(AwsS3 Node): Fix handling of bucket with dot in name (n8n-io#8475) * refactor(core): Modernize credentials controllers and services (no-changelog) (n8n-io#8488) Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> * fix(core): Don't report executions that have been paused as failed to rudderstack and log streams (n8n-io#8501) * fix: Properly iterate over credentials with expressions (n8n-io#8502) * refactor(core): Move all code related to `onServerStarted` into `InternalHooks` (no-changelog) (n8n-io#8500) * feat(editor): Send template id as string in all telemetry events (n8n-io#8498) * fix(core): Handle possibly invalid `updatedAt` timestamps in source-control (n8n-io#8485) * fix(core): Forward authorization header when on same domain (n8n-io#8507) * fix(core): Improve handling of wrapped errors (n8n-io#8510) * 🚀 Release 1.27.0 (n8n-io#8512) Co-authored-by: ivov <[email protected]> * ci: Skip running `postInstall` scripts for all packages except sqlite3 (no-changelog) (n8n-io#8514) * ci: Fix DB tests (no-changelog) (n8n-io#8513) * fix(core): Fix new graceful shutdown env being always overridden by deprecated env (n8n-io#8503) * fix(HTTP Request Node): Support form data when using pagination (n8n-io#8497) * fix(HTTP Request Node): Require parameter with filled name and value to avoid infinite loop (n8n-io#8454) Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Elias Meire <[email protected]> * fix(Microsoft Excel 365 Node): Upsert append new rows at the end of used range, option to append at the end of selected range (n8n-io#8461) * fix(Slack Node): Attachments fix (n8n-io#8471) Co-authored-by: Elias Meire <[email protected]> * feat: Azure Open AI chat model & embeddings (n8n-io#8522) Signed-off-by: Oleg Ivaniv <[email protected]> * fix(core): Fix test runs of triggers that rely on static data (n8n-io#8524) * ci: Replace `pnpm/action-setup` action with corepack (no-changelog) (n8n-io#8504) * fix(MongoDB Node): Fix "Maximum call stack size exceeded" error on too many rows (n8n-io#8530) * fix: Allow Date/Luxon objects and additional formats in DateTime validation (n8n-io#8525) * fix(editor): Prune values that are not in the schema in the ResourceMapper component (n8n-io#8478) * fix(core): Fix PermissionChecker.check, and add additional unit tests (n8n-io#8528) * fix(core): Fix DropRoleMapping migration (n8n-io#8521) * fix(core): Ensure AxiosError status always gets copied over to NodeApiError (n8n-io#8509) * fix(Embeddings OpenAI Node): Fix dynamic models fetching (n8n-io#8533) Signed-off-by: Oleg Ivaniv <[email protected]> * fix(core): Fix workflow tagging failure due to unique constraint check (n8n-io#8505) * ci: Fix release-create-pr.yml (no-changelog) * fix(core): Upgrade nodemailer to address an exploit (n8n-io#8535) * feat(RabbitMQ Trigger Node): Add options to configure assert of exchanges and queues (n8n-io#8430) * feat(editor): Add delete and disable button to nodes on hover (n8n-io#8482) * feat(Email Trigger (IMAP) Node): Upgrade mailparser (n8n-io#8539) * refactor(core): Streamline flows in multi-main mode (no-changelog) (n8n-io#8446) * fix: Remove ts-node from overrides and typeorm script (no-changelog) (n8n-io#8547) * fix: Update BaseChatModel import checks for MistralAI compatibility (n8n-io#8527) Signed-off-by: Oleg Ivaniv <[email protected]> * docs: Add encryption key check to breaking changes list (n8n-io#8551) * refactor(core): Lock `webhook` process out of multi-main setup (no-changelog) (n8n-io#8549) * refactor(core): Continue breaking dependency cycles (no-changelog) (n8n-io#8545) * fix(core): Use trx manager instead of repository for tags overwrite (n8n-io#8557) * build: Fix outdated import to fix build (no-changelog) (n8n-io#8558) * refactor(core): Couple of refactors on WorkflowRunner and ActiveExecutions (no-changelog) (n8n-io#8487) * feat: Add assignment component with drag and drop to Set node (n8n-io#8283) Co-authored-by: Giulio Andreini <[email protected]> * ci: Update validate-n8n-pull-request-title action (no-changelog) (n8n-io#8553) * fix(core): Use hostname from URL instead of Host header for SNI (n8n-io#8562) * fix(Microsoft Outlook Node): Download executes more than once per incoming item (n8n-io#8566) * 🚀 Release 1.28.0 (n8n-io#8569) Co-authored-by: ivov <[email protected]> * ci(core): Avoid slow bcrypt calls in tests (no-changelog) (n8n-io#8570) * fix(core): Upgrade rudderstack sdk to address npm postInstall issues (n8n-io#8568) * feat: Upgrade typeorm, sqlite3, and pg/pg-promise (n8n-io#8579) * build: Add GitHub issue form for reporting bugs (n8n-io#8585) * fix(Google Sheets Trigger Node): First non-header row is ignored when using on row added event (n8n-io#8580) * fix(RSS Feed Trigger Node): Save last item's date instead of last execution date (n8n-io#8572) * feat(core): Migrate to n8n's typeorm fork (n8n-io#8590) * refactor: Add lint rule for unsafe property access with lodash get/set (no-changelog) (n8n-io#8587) * fix(HTTP Request Node): Errorneous binary object without content-disposition response header (n8n-io#8583) Co-authored-by: Marcus <[email protected]> * fix(core): Custom workflow tool tweaks (n8n-io#8561) * Fixes imports and enables workers view --------- Signed-off-by: Oleg Ivaniv <[email protected]> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Milorad FIlipović <[email protected]> Co-authored-by: oleg <[email protected]> Co-authored-by: Iván Ovejero <[email protected]> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Danny Martini <[email protected]> Co-authored-by: Omar Ajoue <[email protected]> Co-authored-by: Elias Meire <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ivov <[email protected]> Co-authored-by: Michael Kret <[email protected]> Co-authored-by: Andrea Ascari <[email protected]> Co-authored-by: Giulio Andreini <[email protected]> Co-authored-by: Cornelius Suermann <[email protected]> Co-authored-by: Bruno Inec <[email protected]> Co-authored-by: Marcus <[email protected]>
* Andy/joy 277 mergeupdate n8n 128 (#54) * refactor(core): Replace promisify-d node calls with native promises (no-changelog) (n8n-io#8464) * fix(editor): Send template id as a number in telemetry events (n8n-io#8484) * refactor(editor): Prevent router.replace from computed property (no-changelog) (n8n-io#8489) Signed-off-by: Oleg Ivaniv <[email protected]> * feat(core): Remove `own` execution-process mode (n8n-io#8490) * feat(editor): Implement loading and error states for dynamically loaded components in node parameter list (n8n-io#8477) * fix(AwsS3 Node): Fix handling of bucket with dot in name (n8n-io#8475) * refactor(core): Modernize credentials controllers and services (no-changelog) (n8n-io#8488) Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> * fix(core): Don't report executions that have been paused as failed to rudderstack and log streams (n8n-io#8501) * fix: Properly iterate over credentials with expressions (n8n-io#8502) * refactor(core): Move all code related to `onServerStarted` into `InternalHooks` (no-changelog) (n8n-io#8500) * feat(editor): Send template id as string in all telemetry events (n8n-io#8498) * fix(core): Handle possibly invalid `updatedAt` timestamps in source-control (n8n-io#8485) * fix(core): Forward authorization header when on same domain (n8n-io#8507) * fix(core): Improve handling of wrapped errors (n8n-io#8510) * 🚀 Release 1.27.0 (n8n-io#8512) Co-authored-by: ivov <[email protected]> * ci: Skip running `postInstall` scripts for all packages except sqlite3 (no-changelog) (n8n-io#8514) * ci: Fix DB tests (no-changelog) (n8n-io#8513) * fix(core): Fix new graceful shutdown env being always overridden by deprecated env (n8n-io#8503) * fix(HTTP Request Node): Support form data when using pagination (n8n-io#8497) * fix(HTTP Request Node): Require parameter with filled name and value to avoid infinite loop (n8n-io#8454) Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Elias Meire <[email protected]> * fix(Microsoft Excel 365 Node): Upsert append new rows at the end of used range, option to append at the end of selected range (n8n-io#8461) * fix(Slack Node): Attachments fix (n8n-io#8471) Co-authored-by: Elias Meire <[email protected]> * feat: Azure Open AI chat model & embeddings (n8n-io#8522) Signed-off-by: Oleg Ivaniv <[email protected]> * fix(core): Fix test runs of triggers that rely on static data (n8n-io#8524) * ci: Replace `pnpm/action-setup` action with corepack (no-changelog) (n8n-io#8504) * fix(MongoDB Node): Fix "Maximum call stack size exceeded" error on too many rows (n8n-io#8530) * fix: Allow Date/Luxon objects and additional formats in DateTime validation (n8n-io#8525) * fix(editor): Prune values that are not in the schema in the ResourceMapper component (n8n-io#8478) * fix(core): Fix PermissionChecker.check, and add additional unit tests (n8n-io#8528) * fix(core): Fix DropRoleMapping migration (n8n-io#8521) * fix(core): Ensure AxiosError status always gets copied over to NodeApiError (n8n-io#8509) * fix(Embeddings OpenAI Node): Fix dynamic models fetching (n8n-io#8533) Signed-off-by: Oleg Ivaniv <[email protected]> * fix(core): Fix workflow tagging failure due to unique constraint check (n8n-io#8505) * ci: Fix release-create-pr.yml (no-changelog) * fix(core): Upgrade nodemailer to address an exploit (n8n-io#8535) * feat(RabbitMQ Trigger Node): Add options to configure assert of exchanges and queues (n8n-io#8430) * feat(editor): Add delete and disable button to nodes on hover (n8n-io#8482) * feat(Email Trigger (IMAP) Node): Upgrade mailparser (n8n-io#8539) * refactor(core): Streamline flows in multi-main mode (no-changelog) (n8n-io#8446) * fix: Remove ts-node from overrides and typeorm script (no-changelog) (n8n-io#8547) * fix: Update BaseChatModel import checks for MistralAI compatibility (n8n-io#8527) Signed-off-by: Oleg Ivaniv <[email protected]> * docs: Add encryption key check to breaking changes list (n8n-io#8551) * refactor(core): Lock `webhook` process out of multi-main setup (no-changelog) (n8n-io#8549) * refactor(core): Continue breaking dependency cycles (no-changelog) (n8n-io#8545) * fix(core): Use trx manager instead of repository for tags overwrite (n8n-io#8557) * build: Fix outdated import to fix build (no-changelog) (n8n-io#8558) * refactor(core): Couple of refactors on WorkflowRunner and ActiveExecutions (no-changelog) (n8n-io#8487) * feat: Add assignment component with drag and drop to Set node (n8n-io#8283) Co-authored-by: Giulio Andreini <[email protected]> * ci: Update validate-n8n-pull-request-title action (no-changelog) (n8n-io#8553) * fix(core): Use hostname from URL instead of Host header for SNI (n8n-io#8562) * fix(Microsoft Outlook Node): Download executes more than once per incoming item (n8n-io#8566) * 🚀 Release 1.28.0 (n8n-io#8569) Co-authored-by: ivov <[email protected]> * ci(core): Avoid slow bcrypt calls in tests (no-changelog) (n8n-io#8570) * fix(core): Upgrade rudderstack sdk to address npm postInstall issues (n8n-io#8568) * feat: Upgrade typeorm, sqlite3, and pg/pg-promise (n8n-io#8579) * build: Add GitHub issue form for reporting bugs (n8n-io#8585) * fix(Google Sheets Trigger Node): First non-header row is ignored when using on row added event (n8n-io#8580) * fix(RSS Feed Trigger Node): Save last item's date instead of last execution date (n8n-io#8572) * feat(core): Migrate to n8n's typeorm fork (n8n-io#8590) * refactor: Add lint rule for unsafe property access with lodash get/set (no-changelog) (n8n-io#8587) * fix(HTTP Request Node): Errorneous binary object without content-disposition response header (n8n-io#8583) Co-authored-by: Marcus <[email protected]> * fix(core): Custom workflow tool tweaks (n8n-io#8561) * Fixes imports and enables workers view --------- Signed-off-by: Oleg Ivaniv <[email protected]> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Milorad FIlipović <[email protected]> Co-authored-by: oleg <[email protected]> Co-authored-by: Iván Ovejero <[email protected]> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Danny Martini <[email protected]> Co-authored-by: Omar Ajoue <[email protected]> Co-authored-by: Elias Meire <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ivov <[email protected]> Co-authored-by: Michael Kret <[email protected]> Co-authored-by: Andrea Ascari <[email protected]> Co-authored-by: Giulio Andreini <[email protected]> Co-authored-by: Cornelius Suermann <[email protected]> Co-authored-by: Bruno Inec <[email protected]> Co-authored-by: Marcus <[email protected]> * Enables advanced permissions * Fixes workflow statistics update errors --------- Signed-off-by: Oleg Ivaniv <[email protected]> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Milorad FIlipović <[email protected]> Co-authored-by: oleg <[email protected]> Co-authored-by: Iván Ovejero <[email protected]> Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <[email protected]> Co-authored-by: Danny Martini <[email protected]> Co-authored-by: Omar Ajoue <[email protected]> Co-authored-by: Elias Meire <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ivov <[email protected]> Co-authored-by: Michael Kret <[email protected]> Co-authored-by: Andrea Ascari <[email protected]> Co-authored-by: Giulio Andreini <[email protected]> Co-authored-by: Cornelius Suermann <[email protected]> Co-authored-by: Bruno Inec <[email protected]> Co-authored-by: Marcus <[email protected]>
Summary
Adds
#fallback
slot and error state for dynamically loaded components rendered usingSuspense
in node parameter list. This improves UX but should also should help us catch errors with these components more easily in the future.NOTE: Decided to go without tests with this one since I couldn't figure out how to mock failed async component loading in Cypress. We should definitely add tests once we figure out and fix the root problem of this.
To test loading state
Merge
nodeMerge
node's NDVTo test error state:
FixedCollectionParameter
component'screated
hook (here)Merge
nodeMerge
node NDVRelated tickets and issues
Cosses ADO-1756
Review / Merge checklist
(no-changelog)
otherwise. (conventions)