Skip to content

Commit

Permalink
assert no additional children, see phetsims/sun#860
Browse files Browse the repository at this point in the history
  • Loading branch information
jessegreenberg committed Aug 19, 2024
1 parent fa1b7d5 commit 5f2ca96
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
5 changes: 4 additions & 1 deletion js/layout/nodes/AlignBox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import Multilink from '../../../../axon/js/Multilink.js';
import StrictOmit from '../../../../phet-core/js/types/StrictOmit.js';
import Bounds2 from '../../../../dot/js/Bounds2.js';
import optionize, { EmptySelfOptions } from '../../../../phet-core/js/optionize.js';
import { AlignGroup, extendsHeightSizable, extendsWidthSizable, HeightSizableNode, isHeightSizable, isWidthSizable, LayoutConstraint, Node, NodeOptions, scenery, Sizable, SizableOptions, WidthSizableNode } from '../../imports.js';
import { AlignGroup, assertNoAdditionalChildren, extendsHeightSizable, extendsWidthSizable, HeightSizableNode, isHeightSizable, isWidthSizable, LayoutConstraint, Node, NodeOptions, scenery, Sizable, SizableOptions, WidthSizableNode } from '../../imports.js';
import TReadOnlyProperty from '../../../../axon/js/TReadOnlyProperty.js';
import assertMutuallyExclusiveOptions from '../../../../phet-core/js/assertMutuallyExclusiveOptions.js';

Expand Down Expand Up @@ -208,6 +208,9 @@ export default class AlignBox extends SuperType {
this.constraint.updateLayout();
}
} );

// Decorating with additional content is an anti-pattern, see https://github.com/phetsims/sun/issues/860
assert && assertNoAdditionalChildren( this );
}

/**
Expand Down
5 changes: 4 additions & 1 deletion js/nodes/RichText.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ import TinyForwardingProperty from '../../../axon/js/TinyForwardingProperty.js';
import Range from '../../../dot/js/Range.js';
import Tandem from '../../../tandem/js/Tandem.js';
import IOType from '../../../tandem/js/types/IOType.js';
import { allowLinksProperty, Color, Font, getLineBreakRanges, HimalayaNode, isHimalayaElementNode, isHimalayaTextNode, Line, Node, NodeOptions, RichTextCleanableNode, RichTextElement, RichTextLeaf, RichTextLink, RichTextNode, RichTextUtils, RichTextVerticalSpacer, scenery, Text, TextBoundsMethod, TPaint, WidthSizable } from '../imports.js';
import { allowLinksProperty, assertNoAdditionalChildren, Color, Font, getLineBreakRanges, HimalayaNode, isHimalayaElementNode, isHimalayaTextNode, Line, Node, NodeOptions, RichTextCleanableNode, RichTextElement, RichTextLeaf, RichTextLink, RichTextNode, RichTextUtils, RichTextVerticalSpacer, scenery, Text, TextBoundsMethod, TPaint, WidthSizable } from '../imports.js';
import optionize, { combineOptions, EmptySelfOptions } from '../../../phet-core/js/optionize.js';
import PhetioObject, { PhetioObjectOptions } from '../../../tandem/js/PhetioObject.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
Expand Down Expand Up @@ -382,6 +382,9 @@ export default class RichText extends WidthSizable( Node ) {
this.localPreferredWidthProperty.lazyLink( () => this.rebuildRichText() );

this.mutate( options );

// Decorating with additional content is an anti-pattern, see https://github.com/phetsims/sun/issues/860
assert && assertNoAdditionalChildren( this );
}

/**
Expand Down

0 comments on commit 5f2ca96

Please sign in to comment.