Skip to content

Conversation

@Varixo
Copy link
Member

@Varixo Varixo commented Jan 15, 2026

The part2 of #8240

@changeset-bot
Copy link

changeset-bot bot commented Jan 15, 2026

⚠️ No Changeset found

Latest commit: d736225

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@Varixo Varixo moved this from Backlog to In progress in Qwik Development Jan 15, 2026
@Varixo Varixo marked this pull request as ready for review January 15, 2026 15:19
@Varixo Varixo requested a review from a team as a code owner January 15, 2026 15:19
@Varixo Varixo marked this pull request as draft January 15, 2026 15:19
@github-actions
Copy link
Contributor

github-actions bot commented Jan 15, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
qwik-docs ✅ Ready (View Log) Visit Preview d736225

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 15, 2026

Open in StackBlitz

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/core@8245
npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/router@8245
npm i https://pkg.pr.new/QwikDev/qwik/eslint-plugin-qwik@8245
npm i https://pkg.pr.new/QwikDev/qwik/create-qwik@8245

commit: d736225

# Conflicts:
#	packages/qwik/src/optimizer/core/src/test.rs
#	packages/qwik/src/optimizer/core/src/transform.rs
@Varixo Varixo force-pushed the v2-fix-bind-input branch from fe77b1e to ab40948 Compare January 16, 2026 21:27
Copy link
Member

@wmertens wmertens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need a different approach

key?: string | number | null,
dev?: DevJSX
): JSXNodeInternal<T> => {
return untrack(() => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't we decide we don't need the untrack?

@Varixo Varixo force-pushed the v2-fix-bind-input branch from 41e8906 to beefac1 Compare January 17, 2026 08:15
@Varixo Varixo force-pushed the v2-fix-bind-input branch from 33fc2fe to 9823fc7 Compare January 18, 2026 18:28
Copy link
Member

@wmertens wmertens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually the bind: processing should happen 100% at runtime because they merge and regular handlers don't.


Maybe: All handlers could be in a const object per element, updated by reference. No need for comparisons. The qwikloader uses that directly, but there's still issues with merging vs overriding, or removing a merged bind: when it's removed.

If we do that, then upon vnode instantiation, handlers should be read from props so that both const and var are populated in the handlers object. We still need the window and document handler attributes for queryselectors though, unless we attach those individually.


I must say I'm still unclear on what the correct behavior is :-/ Things would be a lot simpler if bind:x doesn't merge. We can output warnings when onInput and bind exist together.

constProps.checked = value;
constProps['on:input'] = createQRL(null, '_chk', _chk, null, null, [value]);

// Handle bind:* - only in varProps (constProps are transformed by Rust)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, bind: should not be transformed in Rust, because it needs to merge with on:input after all props are processed

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we currently need to be backward compatible, so the logic must stay as is for now - until changes in the future

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

3 participants