Skip to content

Commit f3c1e4d

Browse files
authored
Merge pull request #1223 from ita-social-projects/feature/issue-763
issue-763
2 parents 2e82f05 + a7b78ed commit f3c1e4d

File tree

2 files changed

+69
-61
lines changed

2 files changed

+69
-61
lines changed
Lines changed: 56 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,63 @@
1-
import './Sources.styles.scss';
1+
import "./Sources.styles.scss";
22

3-
import { observer } from 'mobx-react-lite';
4-
import { useEffect } from 'react';
5-
import BlockSlider from '@features/SlickSlider/SlickSlider.component';
6-
import useMobx, { useStreetcodeDataContext } from '@stores/root-store';
7-
import BlockHeading from '@streetcode/HeadingBlock/BlockHeading.component';
3+
import { observer } from "mobx-react-lite";
4+
import { useEffect } from "react";
5+
import BlockSlider from "@features/SlickSlider/SlickSlider.component";
6+
import useMobx, { useStreetcodeDataContext } from "@stores/root-store";
7+
import BlockHeading from "@streetcode/HeadingBlock/BlockHeading.component";
8+
import SlickSlider from "@features/SlickSlider/SlickSlider.component";
9+
import useWindowSize from "@/app/common/hooks/stateful/useWindowSize.hook";
810

9-
import useWindowSize from '@/app/common/hooks/stateful/useWindowSize.hook';
10-
11-
import SourceItem from './SourceItem/SourceItem.component';
11+
import SourceItem from "./SourceItem/SourceItem.component";
1212

1313
const SourcesComponent = () => {
14-
const { sourcesStore } = useMobx();
15-
const { streetcodeStore: { getStreetCodeId } } = useStreetcodeDataContext();
16-
const windowsize = useWindowSize();
17-
18-
useEffect(() => {
19-
const streetcodeId = getStreetCodeId;
20-
if (streetcodeId > 0) {
21-
sourcesStore.fetchSrcCategoriesByStreetcodeId(streetcodeId);
22-
}
23-
}, [getStreetCodeId]);
24-
25-
const sliderProps = {
26-
className: 'heightContainer',
27-
infinite: false,
28-
swipe: true,
29-
touchThreshold: 25,
30-
dots: windowsize.width <= 1024,
31-
variableWidth: true,
32-
swipeOnClick: false,
33-
slidesToShow: 1,
34-
slidesToScroll: 1,
35-
rows: 1,
36-
initialSlide: 1,
37-
centerMode: true,
38-
centerPadding: windowsize.width < 768 ? '10px' : '30px',
39-
};
40-
41-
return (sourcesStore.getSrcCategoriesArray.length > 0
42-
? (
43-
<div className="sourcesWrapper container">
44-
45-
<div className="sourcesContainer">
46-
<BlockHeading headingText="Для фанатів" />
47-
<div className="sourceContentContainer">
48-
<div className="sourcesSliderContainer">
49-
<BlockSlider
50-
{...sliderProps}
51-
>
52-
{sourcesStore.getSrcCategoriesArray.map((sc) => (
53-
<SourceItem
54-
key={`${sc.id}${sc.streetcodeId}`}
55-
srcCategory={sc}
56-
/>
57-
))}
58-
</BlockSlider>
59-
</div>
60-
</div>
61-
</div>
62-
</div>
63-
)
64-
: <></>);
14+
const { sourcesStore } = useMobx();
15+
const {
16+
streetcodeStore: { getStreetCodeId },
17+
} = useStreetcodeDataContext();
18+
const windowsize = useWindowSize();
19+
20+
useEffect(() => {
21+
const streetcodeId = getStreetCodeId;
22+
if (streetcodeId > 0) {
23+
sourcesStore.fetchSrcCategoriesByStreetcodeId(streetcodeId);
24+
}
25+
}, [getStreetCodeId]);
26+
27+
const sliderProps = {
28+
className: "heightContainer",
29+
infinite: false,
30+
swipe: true,
31+
touchThreshold: 25,
32+
dots: windowsize.width <= 1024,
33+
variableWidth: true,
34+
swipeOnClick: false,
35+
slidesToScroll: 1,
36+
rows: 1,
37+
initialSlide: 0,
38+
centerMode: false,
39+
centerPadding: windowsize.width < 768 ? "10px" : "30px",
40+
};
41+
const sliderItems = sourcesStore.getSrcCategoriesArray.map((sc) => (
42+
<SourceItem
43+
key={`${sc.id}${sc.streetcodeId}`}
44+
srcCategory={sc} />
45+
));
46+
47+
return sourcesStore.getSrcCategoriesArray.length > 0 ? (
48+
<div className="sourcesWrapper container">
49+
<div className="sourcesContainer">
50+
<BlockHeading headingText="Для фанатів" />
51+
<div className="sourceContentContainer">
52+
<div className= {sourcesStore.getSrcCategoriesArray.length > 3 ? "sourcesSliderContainerBig":"sourcesSliderContainerSmall"}>
53+
<SlickSlider {...sliderProps}>{sliderItems}</SlickSlider>
54+
</div>
55+
</div>
56+
</div>
57+
</div>
58+
) : (
59+
<></>
60+
);
6561
};
6662

6763
export default observer(SourcesComponent);

src/features/StreetcodePage/SourcesBlock/Sources.styles.scss

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,16 @@
2727
margin-top: pxToRem(0px);
2828
}
2929
}
30-
.sourcesSliderContainer {
30+
.sourcesSliderContainerBig {
31+
position: relative;
32+
@include mut.sized($width: 1065px);
33+
margin: 0 auto;
34+
.slick-arrow {
35+
position: absolute;
36+
transform: translateY(-1.8rem);
37+
}
38+
}
39+
.sourcesSliderContainerSmall {
3140
@include mut.sizedImportant(1230px, 100%);
3241
.slick-arrow {
3342
display: none;
@@ -37,6 +46,8 @@
3746
.sliderClass {
3847
.slick-list {
3948
@include mut.rem-padded($bottom: 23px);
49+
margin-left: -80px;
50+
margin-right: -60px;
4051
}
4152
.slick-track {
4253
@include mut.flex-centered($gap: 30px);
@@ -77,3 +88,4 @@
7788
left: f.pxToRem(1px);
7889
}
7990
}
91+

0 commit comments

Comments
 (0)