Skip to content

Commit c4cfb01

Browse files
committed
fix(segmented-button): adjusted code from comments and fixed snap
1 parent 52728a9 commit c4cfb01

File tree

2 files changed

+8
-18
lines changed

2 files changed

+8
-18
lines changed

packages/components/src/components/segmented-button/__snapshots__/segmented-button.spec.ts.snap

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ exports[`SegmentedButton should match selected button snapshot 1`] = `
77
<slot></slot>
88
</div>
99
</mock:shadow-root>
10-
<scale-segment adjacent-siblings="right" aria-description-translation="$position $selected" position="1" selected="true" selected-index="-1" size="small">
10+
<scale-segment adjacent-siblings="right" aria-description-translation="$position $selected" position="0" selected="true" selected-index="-1" size="small">
1111
Label
1212
</scale-segment>
13-
<scale-segment adjacent-siblings="left" aria-description-translation="$position $selected" position="2" selected="true" selected-index="-1" size="small">
13+
<scale-segment adjacent-siblings="left" aria-description-translation="$position $selected" position="1" selected="true" selected-index="-1" size="small">
1414
Label
1515
</scale-segment>
1616
</scale-segmented-button>
@@ -23,6 +23,9 @@ exports[`SegmentedButton should match standard snapshot 1`] = `
2323
<slot></slot>
2424
</div>
2525
</mock:shadow-root>
26+
<scale-segment adjacent-siblings="" aria-description-translation="$position $selected" position="0" selected="false" selected-index="-1" size="small">
27+
Label
28+
</scale-segment>
2629
<scale-segment adjacent-siblings="" aria-description-translation="$position $selected" position="1" selected="false" selected-index="-1" size="small">
2730
Label
2831
</scale-segment>
@@ -32,8 +35,5 @@ exports[`SegmentedButton should match standard snapshot 1`] = `
3235
<scale-segment adjacent-siblings="" aria-description-translation="$position $selected" position="3" selected="false" selected-index="-1" size="small">
3336
Label
3437
</scale-segment>
35-
<scale-segment adjacent-siblings="" aria-description-translation="$position $selected" position="4" selected="false" selected-index="-1" size="small">
36-
Label
37-
</scale-segment>
3838
</scale-segmented-button>
3939
`;

packages/components/src/components/segmented-button/segmented-button.tsx

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {
1515
h,
1616
Host,
1717
Element,
18-
State,
1918
Listen,
2019
Event,
2120
EventEmitter,
@@ -45,8 +44,6 @@ export class SegmentedButton {
4544
slottedSegments = 0;
4645

4746
@Element() hostElement: HTMLElement;
48-
/** state */
49-
@State() status: SegmentStatus[] = [];
5047
/** (optional) The size of the button */
5148
@Prop() size?: 'small' | 'medium' | 'large' = 'small';
5249
/** (optional) Allow more than one button to be selected */
@@ -79,9 +76,6 @@ export class SegmentedButton {
7976
showHelperText = false;
8077
@Listen('scaleClick')
8178
scaleClickHandler(ev: { detail: { id: string; selected: boolean } }) {
82-
if (this.status.length === 0) {
83-
return;
84-
}
8579
let tempState = this.getAllSegments().map((segment) => {
8680
return {
8781
id: segment.getAttribute('segment-id') || segment.segmentId,
@@ -158,15 +152,11 @@ export class SegmentedButton {
158152
}
159153

160154
componentWillUpdate() {
161-
this.selectedIndex = this.getSelectedIndex();
162155
this.showHelperText = this.shouldShowHelperText();
163156
}
164157
shouldShowHelperText() {
165158
let showHelperText = false;
166-
if (
167-
this.invalid &&
168-
this.status.filter((e) => e.selected === true).length <= 0
169-
) {
159+
if (this.invalid && this.selectedIndex < 0) {
170160
showHelperText = true;
171161
}
172162
return showHelperText;
@@ -246,9 +236,9 @@ export class SegmentedButton {
246236
tempState[i].selected ? 'true' : 'false'
247237
);
248238
});
249-
this.status = tempState;
239+
this.selectedIndex = this.getSelectedIndex();
250240
if (!isInitial) {
251-
emitEvent(this, 'scaleChange', { status: this.status, segments });
241+
emitEvent(this, 'scaleChange', { segments });
252242
}
253243
}
254244

0 commit comments

Comments
 (0)