@treely/strapi-slices 7.1.0 → 7.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -39,9 +39,12 @@ npm run build
39
39
  npm pack
40
40
  ```
41
41
 
42
- Go to the project which uses the strapi-slices package and install the package there:
42
+ Go to the project which uses the strapi-slices package and remove the `node_modules` and the `.next` folder before installing the package there:
43
43
 
44
44
  ```bash
45
+ rm -r node_modules
46
+ rm -r .next
47
+ npm install
45
48
  cd ../path/to/your/project
46
49
  npm install ../path/to/strapi-slices-package.tgz
47
50
  ```
@@ -3,10 +3,7 @@ import StrapiImage from '../../models/strapi/StrapiImage';
3
3
  export interface CarouselMarqueeBannerProps {
4
4
  slice: {
5
5
  title?: string;
6
- logos: {
7
- id: number;
8
- img: StrapiImage;
9
- }[];
6
+ logos: StrapiImage[];
10
7
  };
11
8
  }
12
9
  export declare const CarouselMarqueeBanner: React.FC<CarouselMarqueeBannerProps>;
@@ -5393,35 +5393,39 @@ var CarouselInnerContainer = /*#__PURE__*/styled__default.default(framerMotion.m
5393
5393
  });
5394
5394
  var LogoGrid = /*#__PURE__*/styled__default.default(framerMotion.motion.div)(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--boemly-space-6);\n\n @media screen and (max-width: ", ") {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: var(--boemly-space-6);\n }\n"])), BREAKPOINT_MD);
5395
5395
 
5396
- var CarouselMarqueeBanner = function CarouselMarqueeBanner(_ref) {
5396
+ // Separate component containing the actual logic
5397
+ var CarouselMarqueeBannerContent = function CarouselMarqueeBannerContent(_ref) {
5397
5398
  var slice = _ref.slice;
5399
+ var _useToken = boemly.useToken('colors', ['primary.50']),
5400
+ primary50 = _useToken[0];
5398
5401
  var _useWindowSize = reactUse.useWindowSize(),
5399
5402
  windowWidth = _useWindowSize.width;
5400
- var shouldDuplicateLogos = slice.logos.length < 5;
5403
+ var hasEnoughLogosForLoop = slice.logos.length >= 5;
5401
5404
  var LOOP_ARRAY_LENGTH = windowWidth > 2000 ? 5 : 4;
5402
5405
  // Duplicate Logos to create a full loop
5403
- var logosToRender = shouldDuplicateLogos ? slice.logos : Array.from({
5406
+ var logosToRender = hasEnoughLogosForLoop ? Array.from({
5404
5407
  length: LOOP_ARRAY_LENGTH
5405
5408
  }, function () {
5406
5409
  return slice.logos;
5407
- }).flat();
5410
+ }).flat() : slice.logos;
5408
5411
  var _useMediaQuery = boemly.useMediaQuery(BREAKPOINT_MD_QUERY),
5409
5412
  isMobile = _useMediaQuery[0];
5413
+ // Carousel setup
5410
5414
  var _useEmblaCarousel = useEmblaCarousel__default.default({
5411
- loop: shouldDuplicateLogos ? false : true,
5415
+ loop: hasEnoughLogosForLoop,
5412
5416
  align: 'start',
5413
5417
  containScroll: 'trimSnaps',
5414
5418
  dragFree: true
5415
- }, shouldDuplicateLogos ? [] : [AutoScroll__default.default({
5419
+ }, hasEnoughLogosForLoop ? [AutoScroll__default.default({
5416
5420
  playOnInit: true,
5417
5421
  speed: isMobile ? 0.5 : 1,
5418
5422
  stopOnInteraction: false,
5419
5423
  stopOnMouseEnter: false,
5420
5424
  stopOnFocusIn: false
5421
- })]),
5425
+ })] : []),
5422
5426
  emblaRef = _useEmblaCarousel[0];
5423
5427
  var renderLogos = function renderLogos() {
5424
- if (slice.logos.length < 5) {
5428
+ if (!hasEnoughLogosForLoop) {
5425
5429
  return React__default.default.createElement(LogoGrid, null, slice.logos.map(function (logo, index) {
5426
5430
  return React__default.default.createElement(boemly.Box, {
5427
5431
  key: logo.id + "-" + index,
@@ -5436,15 +5440,15 @@ var CarouselMarqueeBanner = function CarouselMarqueeBanner(_ref) {
5436
5440
  }, React__default.default.createElement(boemly.Box, {
5437
5441
  position: "relative",
5438
5442
  maxHeight: "xl",
5439
- height: "calc(" + (isMobile ? 'var(--boemly-sizes-16)' : 'var(--boemly-sizes-36)') + " / " + getClosestRatio(logo.img.img.data.attributes.width, logo.img.img.data.attributes.height) + ")",
5443
+ height: "calc(" + (isMobile ? 'var(--boemly-sizes-16)' : 'var(--boemly-sizes-36)') + " / " + getClosestRatio(logo.img.data.attributes.width, logo.img.data.attributes.height) + ")",
5440
5444
  width: isMobile ? '16' : '36',
5441
5445
  borderRadius: "xl"
5442
5446
  }, React__default.default.createElement(Image__default.default, {
5443
- src: strapiMediaUrl(logo.img.img, 'large'),
5444
- alt: logo.img.alt,
5447
+ src: strapiMediaUrl(logo.img, 'large'),
5448
+ alt: logo.alt,
5445
5449
  fill: true,
5446
5450
  style: {
5447
- objectFit: logo.img.objectFit || 'contain',
5451
+ objectFit: logo.objectFit || 'contain',
5448
5452
  borderRadius: 'var(--boemly-radii-xl)'
5449
5453
  }
5450
5454
  }))));
@@ -5471,40 +5475,49 @@ var CarouselMarqueeBanner = function CarouselMarqueeBanner(_ref) {
5471
5475
  }, React__default.default.createElement(boemly.Box, {
5472
5476
  position: "relative",
5473
5477
  maxHeight: "xl",
5474
- height: "calc(" + (isMobile ? 'var(--boemly-sizes-16)' : 'var(--boemly-sizes-36)') + " / " + getClosestRatio(logo.img.img.data.attributes.width, logo.img.img.data.attributes.height) + ")",
5478
+ height: "calc(" + (isMobile ? 'var(--boemly-sizes-16)' : 'var(--boemly-sizes-36)') + " / " + getClosestRatio(logo.img.data.attributes.width, logo.img.data.attributes.height) + ")",
5475
5479
  width: isMobile ? '16' : '36',
5476
5480
  borderRadius: "xl"
5477
5481
  }, React__default.default.createElement(Image__default.default, {
5478
- src: strapiMediaUrl(logo.img.img, 'large'),
5479
- alt: logo.img.alt,
5482
+ src: strapiMediaUrl(logo.img, 'large'),
5483
+ alt: logo.alt,
5480
5484
  fill: true,
5481
5485
  style: {
5482
- objectFit: logo.img.objectFit || 'contain',
5486
+ objectFit: logo.objectFit || 'contain',
5483
5487
  borderRadius: 'var(--boemly-radii-xl)'
5484
5488
  }
5485
5489
  }))));
5486
5490
  })));
5487
5491
  };
5488
- return React__default.default.createElement(boemly.DefaultSectionContainer, null, React__default.default.createElement(boemly.Box, {
5489
- maxWidth: "full",
5490
- margin: "auto",
5491
- display: "flex",
5492
- flexDirection: "column",
5493
- justifyContent: "center",
5494
- alignItems: "center",
5495
- height: "2xs",
5496
- backgroundColor: "gray.50",
5497
- padding: "42px 0 56px"
5498
- }, slice.title ? React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(boemly.Flex, {
5492
+ return React__default.default.createElement(boemly.DefaultSectionContainer, {
5493
+ backgroundColor: primary50
5494
+ }, React__default.default.createElement(React__default.default.Fragment, null, slice.title ? React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(boemly.Flex, {
5499
5495
  alignItems: "center",
5500
5496
  flexDirection: "column"
5501
5497
  }, React__default.default.createElement(boemly.Heading, {
5502
5498
  size: "md",
5503
5499
  fontWeight: "500"
5504
5500
  }, slice.title)), React__default.default.createElement(boemly.Spacer, {
5505
- height: "12"
5501
+ height: "12",
5502
+ minHeight: "12"
5506
5503
  })) : null, renderLogos()));
5507
5504
  };
5505
+ // Lazy-rendering the child component after client-side hydration
5506
+ var CarouselMarqueeBanner = function CarouselMarqueeBanner(_ref2) {
5507
+ var slice = _ref2.slice;
5508
+ var _useState = React.useState(false),
5509
+ showChild = _useState[0],
5510
+ setShowChild = _useState[1];
5511
+ React.useEffect(function () {
5512
+ setShowChild(true); // Hydrate the component after the client-side is ready
5513
+ }, []);
5514
+ if (!showChild) {
5515
+ return React__default.default.createElement("div", null);
5516
+ }
5517
+ return React__default.default.createElement(CarouselMarqueeBannerContent, {
5518
+ slice: slice
5519
+ });
5520
+ };
5508
5521
 
5509
5522
  var Timeline = function Timeline(_ref) {
5510
5523
  var slice = _ref.slice;