Skip to content

Commit e599d99

Browse files
committed
feat(sbb-seat-reservation-refact-navigation): use arrays instead of strings for travelclasses
1 parent 4e0c207 commit e599d99

File tree

3 files changed

+14
-26
lines changed

3 files changed

+14
-26
lines changed

src/elements-experimental/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.stories.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,17 @@ const defaultArgs: Args = {
7777
export const Default: StoryObj = {
7878
render: Template,
7979
argTypes: defaultArgsTypes,
80-
args: { ...defaultArgs, 'travel-class': 'SECOND' },
80+
args: { ...defaultArgs, 'travel-class': JSON.stringify(['SECOND']) },
8181
};
8282

8383
export const NavigationCoachFirstClassSelected: StoryObj = {
8484
render: Template,
85-
args: { ...defaultArgs, index: 0, selected: true, 'travel-class': 'FIRST' },
85+
args: { ...defaultArgs, index: 0, selected: true, 'travel-class': JSON.stringify(['FIRST']) },
8686
};
8787

8888
export const NavigationCoachSecondClassNotSelected: StoryObj = {
8989
render: Template,
90-
args: { ...defaultArgs, index: 0, selected: false, 'travel-class': 'SECOND' },
90+
args: { ...defaultArgs, index: 0, selected: false, 'travel-class': JSON.stringify(['SECOND']) },
9191
};
9292

9393
export const DriverArea: StoryObj = {
@@ -100,7 +100,7 @@ export const FirstCoachInTrainFirstClass: StoryObj = {
100100
args: {
101101
...defaultArgs,
102102
first: true,
103-
'travel-class': 'FIRST',
103+
'travel-class': JSON.stringify(['FIRST']),
104104
},
105105
};
106106

src/elements-experimental/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.ts

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { EventEmitter } from '@sbb-esta/lyne-elements/core/eventing/event-emitte
44
import { type CSSResultGroup, nothing, type TemplateResult } from 'lit';
55
import { html, LitElement } from 'lit';
66
import { customElement, property } from 'lit/decorators.js';
7-
import { choose } from 'lit/directives/choose.js';
87

98
import style from './seat-reservation-navigation-coach.scss?lit&inline';
109

@@ -42,8 +41,8 @@ class SbbSeatReservationNavigationCoachElement extends LitElement {
4241
@property({ type: Number })
4342
public accessor index: number = 0;
4443

45-
@property({ attribute: 'travel-class', type: String })
46-
public accessor travelClass: PlaceTravelClass = 'ANY_CLASS';
44+
@property({ attribute: 'travel-class', type: Array })
45+
public accessor travelClass: PlaceTravelClass[] = ['ANY_CLASS'];
4746

4847
@forceType()
4948
@property({ attribute: 'driver-area', type: Boolean })
@@ -107,32 +106,21 @@ class SbbSeatReservationNavigationCoachElement extends LitElement {
107106

108107
private _getBtnInformation(): TemplateResult | null {
109108
return html`
110-
${this.travelClass === 'FIRST'
109+
${this.travelClass?.includes('FIRST')
111110
? html`<span class="sbb-seat-reservation-navigation--first-class"></span>`
112111
: nothing}
113-
${this.travelClass || this.coachId
112+
${this.travelClass?.length > 0 || this.coachId
114113
? html`<div class="sbb-seat-reservation-navigation__additional-information">
115114
${this.coachId
116115
? html`<div class="sbb-seat-reservation-navigation__item-coach-number">
117116
${this.coachId}
118117
</div>`
119118
: nothing}
120-
${choose(this.travelClass, [
121-
[
122-
'FIRST',
123-
() =>
124-
html`<div class="sbb-seat-reservation-navigation__item-coach-travelclass">
125-
1
126-
</div>`,
127-
],
128-
[
129-
'SECOND',
130-
() =>
131-
html`<div class="sbb-seat-reservation-navigation__item-coach-travelclass">
132-
2
133-
</div>`,
134-
],
135-
])}
119+
${this.travelClass?.includes('FIRST')
120+
? html`<div class="sbb-seat-reservation-navigation__item-coach-travelclass">1</div>`
121+
: this.travelClass?.includes('SECOND')
122+
? html`<div class="sbb-seat-reservation-navigation__item-coach-travelclass">2</div>`
123+
: nothing}
136124
</div>`
137125
: nothing}
138126
`;

src/elements-experimental/seat-reservation/seat-reservation-navigation/seat-reservation-navigation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class SbbSeatReservationNavigationElement extends LitElement {
4949
?selected="${this.selectedCoachIndex === index}"
5050
coach-id="${coachItem.id}"
5151
.propertyIds="${coachItem.propertyIds}"
52-
travel-class="${coachItem.travelClass}"
52+
.travelClass="${coachItem.travelClass}"
5353
?driver-area="${!coachItem.places?.length}"
5454
?first="${index === 0}"
5555
?last="${index === this.seatReservation?.coachItems.length - 1}"

0 commit comments

Comments
 (0)