Repository navigation
Bind classes and host listeners the current way; drop a redundant zone - #418
Merged
Merged
Conversation
Part of #322's remaining migrations: - [ngClass] to [class] / [class.x]: Angular's ngclass-to-class migration for most, and the seven it left (a class named by an expression, a function or an async pipe, and the NgModule libraries' templates) by hand. NgClass imports that became unused are removed. - @HostListener to the component's host metadata, in all eight places. - The DeltaSignal logic graph's NgZone.run around a signal set did nothing in a zoneless app; removed. The full e2e run caught disease-compare's "a second click while it slides out" reading the button's label the instant the click returned -- before change detection, under load. It now waits up to 200ms, well inside the 0.5s slide, so a label that waited for the slide would still fail it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Part of #322: the remaining mechanical migrations from its table.
*ngIf/*ngFor/@Input()/@ViewChild[ngClass]ngclass-to-class-migrationfor most, and the 7 it left by hand. Those were a class named by an expression (connector?.type,side.key, a ternary), a function (innerClasses()), anasyncpipe, and the NgModule libraries' templates.[ngStyle]@HostListenerhost: {}metadata, same events and argumentsNgZone.runsetin it, which does nothing without zone.js[class]with an object or a string merges with a staticclassattribute, as[ngClass]did.NgClassimports that became unused are removed; the NgModule components get it fromCommonModuleand are unchanged.Left: the NgModule libraries (
reactome-table,reactome-gsa-form,reactome-table-wc) and theirstandalone: falsecomponents. They're a separate, larger conversion.A test made honest
The full e2e run caught
disease-compare"a second click while it slides out brings it back" failing once under load. It read the button's label the instant the click returned, before change detection had run. It passes 4/4 alone and passes on main, so it was timing-sensitive, not broken. It now waits up to 200ms, well inside the 0.5s slide (transition: 0.5sin the scss), so a label that waited for the slide would still fail it.Tests
build:libs,npm run buildandbuild:embedall succeed.disease-comparethen passed 14/14 (--repeat-each=2).check:lintandcheck:deadunchanged at their baselines.🤖 Generated with Claude Code