Skip to content

Commit 86649f7

Browse files
committed
fix(types): refactored carousel types
HCRC-178
1 parent f12bd40 commit 86649f7

1 file changed

Lines changed: 23 additions & 6 deletions

File tree

src/core/carousel/components/CarouselSliderPage.tsx

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,30 @@ import { getItemSetItemKey, getItemSetKey } from '../utils/utils';
66
import { MOBILE_WIDTH } from '../constants';
77
import { useCarouselContext } from '../context/CarouselContext';
88

9-
export function CarouselSliderPage({ itemSet, itemSetIndex }) {
9+
export function CarouselSliderPage({
10+
itemSet,
11+
itemSetIndex,
12+
}: {
13+
itemSet: React.ReactElement[];
14+
itemSetIndex: number;
15+
}) {
1016
const { currentSlide, width, itemsShownOnDesktop, itemsShownOnMobile } =
1117
useCarouselContext();
12-
const styleWidth = `${
13-
100 / (width > MOBILE_WIDTH ? itemsShownOnDesktop : itemsShownOnMobile)
14-
}%`;
18+
const itemsPerSlide =
19+
(width > MOBILE_WIDTH ? itemsShownOnDesktop : itemsShownOnMobile) ?? 1;
20+
const styleWidth = `${100 / itemsPerSlide}%`;
1521
return (
1622
<li
1723
ref={(node) =>
1824
node && node.toggleAttribute('inert', itemSetIndex !== currentSlide)
1925
}
2026
aria-hidden={itemSetIndex !== currentSlide}
21-
key={getItemSetKey(itemSet, itemSetIndex)}
27+
key={getItemSetKey(
28+
itemSetIndex,
29+
'id' in itemSet && typeof itemSet.id === 'string'
30+
? itemSet.id
31+
: undefined,
32+
)}
2233
className={classNames(
2334
styles.slide,
2435
itemSetIndex === currentSlide && styles.slideSelected,
@@ -27,7 +38,13 @@ export function CarouselSliderPage({ itemSet, itemSetIndex }) {
2738
<div className={styles.slideItems}>
2839
{itemSet.map((item, itemIndex) => (
2940
<div
30-
key={getItemSetItemKey(item, itemSetIndex, itemIndex)}
41+
key={getItemSetItemKey(
42+
itemIndex,
43+
'id' in itemSet && typeof itemSet.id === 'string'
44+
? itemSet.id
45+
: undefined,
46+
String(itemSetIndex),
47+
)}
3148
className={styles.slideItem}
3249
style={{
3350
width: styleWidth,

0 commit comments

Comments
 (0)