-
Notifications
You must be signed in to change notification settings - Fork 795
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(runtime): nested multiple default slot relocation #5403
fix(runtime): nested multiple default slot relocation #5403
Conversation
expected hostname is added to the getHostSlotNode method to retrieve the correct host's slot node since it was getting the first found slot node. However, same slot name or even another custom component's default slot can be placed before the searching host element's slot node fixes one of the issues raised in ionic-team#5335
|
Path | Error Count |
---|---|
src/dev-server/index.ts | 37 |
src/dev-server/server-process.ts | 32 |
src/compiler/prerender/prerender-main.ts | 22 |
src/testing/puppeteer/puppeteer-element.ts | 21 |
src/runtime/client-hydrate.ts | 20 |
src/screenshot/connector-base.ts | 19 |
src/runtime/vdom/vdom-render.ts | 17 |
src/dev-server/request-handler.ts | 15 |
src/compiler/prerender/prerender-optimize.ts | 14 |
src/compiler/sys/stencil-sys.ts | 14 |
src/sys/node/node-sys.ts | 14 |
src/compiler/prerender/prerender-queue.ts | 13 |
src/compiler/sys/in-memory-fs.ts | 13 |
src/runtime/connected-callback.ts | 13 |
src/runtime/set-value.ts | 13 |
src/compiler/output-targets/output-www.ts | 12 |
src/compiler/transformers/test/parse-vdom.spec.ts | 12 |
src/compiler/transformers/transform-utils.ts | 12 |
src/compiler/transpile/transpile-module.ts | 12 |
src/mock-doc/test/attribute.spec.ts | 12 |
Our most common errors
Typescript Error Code | Count |
---|---|
TS2322 | 361 |
TS2345 | 345 |
TS18048 | 204 |
TS18047 | 82 |
TS2722 | 37 |
TS2532 | 24 |
TS2531 | 21 |
TS2454 | 14 |
TS2790 | 11 |
TS2352 | 9 |
TS2769 | 8 |
TS2538 | 8 |
TS2416 | 7 |
TS2493 | 3 |
TS18046 | 2 |
TS2684 | 1 |
TS2430 | 1 |
Unused exports report
There are 14 unused exports on this PR. That's the same number of errors on main, so at least we're not creating new ones!
Unused exports
File | Line | Identifier |
---|---|---|
src/runtime/bootstrap-lazy.ts | 21 | setNonce |
src/screenshot/screenshot-fs.ts | 18 | readScreenshotData |
src/testing/testing-utils.ts | 198 | withSilentWarn |
src/utils/index.ts | 145 | CUSTOM |
src/utils/index.ts | 269 | normalize |
src/utils/index.ts | 7 | escapeRegExpSpecialCharacters |
src/compiler/app-core/app-data.ts | 25 | BUILD |
src/compiler/app-core/app-data.ts | 115 | Env |
src/compiler/app-core/app-data.ts | 117 | NAMESPACE |
src/compiler/fs-watch/fs-watch-rebuild.ts | 123 | updateCacheFromRebuild |
src/compiler/types/validate-primary-package-output-target.ts | 61 | satisfies |
src/compiler/types/validate-primary-package-output-target.ts | 61 | Record |
src/testing/puppeteer/puppeteer-declarations.ts | 485 | WaitForEventOptions |
src/compiler/sys/fetch/write-fetch-success.ts | 7 | writeFetchSuccessSync |
PR built and packed!Download the tarball here: https://github.com/ionic-team/stencil/actions/runs/8513010369/artifacts/1375372983 If your browser saves files to
|
@yigityuce it seems like the end-to-end tests are failing due to this patch. The order of element fails when a component is conditionally rendered, e.g.: the following Stencil component: @Component({
tag: 'conditional-rerender-root',
})
export class ConditionalRerenderRoot {
@State() showContent = false;
@State() showFooter = false;
componentDidLoad() {
this.showFooter = true;
setTimeout(() => (this.showContent = true), 20);
}
render() {
return (
<conditional-rerender>
<header>Header</header>
{this.showContent ? <section>Content</section> : null}
{this.showFooter ? <footer>Footer</footer> : null}
</conditional-rerender>
);
}
} Results in the following: Mind taking a look? |
another check is added to avoid changing already relocated nodes order by updating the anchor node which is used by insertBefore fixes one of the issues raised in ionic-team#5335
5e4e780
to
f2d7cdd
Compare
…nested-multiple-default-slot-relocation
hey @christian-bromann & @rwaskiewicz I just pushed the fix for the regression issue that we were facing with the first implementation. Also, added the e2e tests. Please let me know if you want me to add anything else |
did you have a chance to check this out? @christian-bromann @rwaskiewicz |
@yigityuce thanks for updating the PR and adding tests. Unfortunately since the PR was raised we started a migration process away from Karma to WebdriverIO. Can you do me a favor and migrate the tests you've written in Karma to WebdriverIO? It should be straightforward (copy&paste) and you can find a step by step description in our migration trackker issue. Please let me know if you have any questions along the way and apology for throwing this at you 😝 |
hahah no worries @christian-bromann if this helps you in a way, I would do it right away. It will be ready at most 30 mins 🕺 |
@christian-bromann done for this fix and also migrated the previous two PR's tests:
|
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 a lot, I think this PR is good to 🚢
I will let the @ionic-team/stencil team to have a another look at it
anything I can do? @christian-bromann @rwaskiewicz |
I'll make sure we get some time allocated to this next sprint. At the moment, we have our hands full with other initiatives |
…nested-multiple-default-slot-relocation
@yigityuce Can you do me a favor and rebase this when you get a chance? We landed the migration of the |
sure will be ready in 10 mins! |
…nested-multiple-default-slot-relocation
@rwaskiewicz done 🚀 |
…nested-multiple-default-slot-relocation
hey @rwaskiewicz it's been a month since this PR was created and did what you asked for. Could you pls prioritize this one since we are blocked? Please feel free to reach me for any additional requests or questions. I will get back to you ASAP. |
@yigityuce Thanks for your patience over the last couple weeks as the team's been tied up with other initiatives! Code changes look good so I went ahead and rebased this so all of CI could run. Everything passed so gonna hit that magic green button and get this landed. It'll be included in our next Stencil release (slated for 4/8)! Thanks for your contribution! |
What is the current behavior?
getHostSlotNode
method was getting the first found slot node. However, the same slot name or even another custom component's default slot can be placed before the searching host element's slot node.GitHub Issue Number: #5335
What is the new behavior?
Documentation
Does this introduce a breaking change?
Testing
Other information