diy-template-components 2.0.67 → 2.0.68

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/build/index.js CHANGED
@@ -242,6 +242,51 @@ const useSectionStyles$a = createUseStyles(theme => ({
242
242
  justifyContent: 'center',
243
243
  width: '10%'
244
244
  },
245
+ offerPrice: {
246
+ fontSize: theme.typography.fontSize.h4,
247
+ fontWeight: '700'
248
+ },
249
+ originalPrice: {
250
+ textDecoration: 'line-through',
251
+ color: 'rgba(51, 51, 51, 0.6)'
252
+ },
253
+ offerDiscount: {
254
+ color: '#08BD80',
255
+ fontWeight: '600'
256
+ },
257
+ rightNav: {
258
+ marginRight: '120px',
259
+ display: 'flex'
260
+ },
261
+ priceBox: {
262
+ marginRight: '16px'
263
+ },
264
+ offerBox: {
265
+ marginRight: '24px',
266
+ display: 'flex',
267
+ flexDirection: 'column',
268
+ backgroundColor: 'rgba(244, 249, 253, 1)',
269
+ justifyContent: 'space-between',
270
+ borderRadius: '8px'
271
+ },
272
+ offerBoxText: {
273
+ color: 'rgba(51, 51, 51, 0.6)',
274
+ fontWeight: '600',
275
+ fontSize: '10px',
276
+ padding: '3px 12px 3px, 12px',
277
+ padding: '4px',
278
+ textAlign: 'center',
279
+ marginTop: '4px'
280
+ },
281
+ offerBoxCountDown: {
282
+ backgroundColor: 'rgba(235, 87, 87, 0.1)',
283
+ border: '0px 1px 1px 1px',
284
+ borderRadius: '8px',
285
+ color: '#EB5757',
286
+ fontSize: '16px',
287
+ fontWeight: '700',
288
+ padding: '6px 16px'
289
+ },
245
290
  '@media screen and (max-width: 767px)': {
246
291
  optionsContainer: {
247
292
  flexDirection: 'column',
@@ -1321,8 +1366,17 @@ function DesktopHeader({
1321
1366
  navData,
1322
1367
  isTutorWebsite,
1323
1368
  isLandingPage = false,
1324
- onDownloadAppTriggered
1369
+ onDownloadAppTriggered,
1370
+ extraProps
1325
1371
  }) {
1372
+ let mockHeader = {
1373
+ isOfferActive: true,
1374
+ effectivePrice: 0.51,
1375
+ price: 1,
1376
+ discount: 0.5,
1377
+ endDate: Date.now() + 24 * 60 * 60 * 1000,
1378
+ offerPriceValidFor: 20
1379
+ };
1326
1380
  const {
1327
1381
  isFixed = true
1328
1382
  } = header;
@@ -1358,13 +1412,113 @@ function DesktopHeader({
1358
1412
 
1359
1413
  // console.log(header, 'sakshat header desktop');
1360
1414
 
1415
+ const renderer = ({
1416
+ days,
1417
+ hours,
1418
+ minutes,
1419
+ seconds
1420
+ }) => {
1421
+ if (days === 0 && hours < 24) {
1422
+ return /*#__PURE__*/React__default["default"].createElement("span", null, hours, "h : ", minutes, "m : ", seconds, "s");
1423
+ } else {
1424
+ let given = moment__default["default"](mockHeader.endDate);
1425
+ let current = moment__default["default"]().startOf('day');
1426
+ return /*#__PURE__*/React__default["default"].createElement("span", null, Math.floor(moment__default["default"].duration(given.diff(current)).asDays()), " ", 'Days');
1427
+ }
1428
+ };
1429
+ const checkIfOfferIsValid = (endDate = null) => moment__default["default"]().diff(moment__default["default"](endDate || 0)) < 0;
1430
+ const checkForShowDiscount = (endDate = null, offerPriceValidFor = null, discount = 0) => {
1431
+ let conversions = extraProps?.conversions || 0;
1432
+ if (endDate === null || checkIfOfferIsValid()) {
1433
+ if (discount > 0 && offerPriceValidFor === null) {
1434
+ return true;
1435
+ } else if (discount > 0 && offerPriceValidFor !== null && offerPriceValidFor - conversions <= 0) {
1436
+ return false;
1437
+ }
1438
+ } else if (offerPriceValidFor >= null && discount) {
1439
+ if (offerPriceValidFor <= conversions) {
1440
+ return false;
1441
+ }
1442
+ if (offerPriceValidFor - conversions < 0) {
1443
+ return false;
1444
+ } else {
1445
+ return true;
1446
+ }
1447
+ }
1448
+ if (discount > 0) {
1449
+ return true;
1450
+ }
1451
+ };
1452
+ const getDiscount = (price, discount) => {
1453
+ return (discount / price * 100).toFixed(2);
1454
+ };
1455
+ const OfferDetailsJSX = () => {
1456
+ let conversions = extraProps?.conversions || 0;
1457
+ if (checkForShowDiscount(mockHeader?.endDate, mockHeader?.offerPriceValidFor, mockHeader?.discount) && mockHeader?.endDate ? checkIfOfferIsValid(mockHeader?.endDate) : true) {
1458
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1459
+ className: classes.rightNav
1460
+ }, mockHeader?.isOfferActive && (mockHeader?.offerPriceValidFor ? mockHeader.offerPriceValidFor - conversions > 0 : true) ? /*#__PURE__*/React__default["default"].createElement("div", {
1461
+ className: classes.offerBox
1462
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
1463
+ className: classes.offerBoxText
1464
+ }, "Offer Ends In"), /*#__PURE__*/React__default["default"].createElement("div", {
1465
+ className: classes.offerBoxCountDown
1466
+ }, /*#__PURE__*/React__default["default"].createElement(Countdown__default["default"], {
1467
+ renderer: renderer,
1468
+ date: mockHeader?.endDate
1469
+ }))) : null, /*#__PURE__*/React__default["default"].createElement("div", {
1470
+ className: classes.priceBox
1471
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("span", {
1472
+ className: classes.offerDiscount
1473
+ }, `${getDiscount(mockHeader?.price, mockHeader?.discount)}%`, "\xA0OFF"), "\xA0\xA0", /*#__PURE__*/React__default["default"].createElement("span", {
1474
+ className: classes.originalPrice
1475
+ }, mockHeader?.price), ' '), /*#__PURE__*/React__default["default"].createElement("div", {
1476
+ style: {
1477
+ textAlign: 'end'
1478
+ }
1479
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
1480
+ className: classes.offerPrice
1481
+ }, mockHeader?.effectivePrice), ' ')), /*#__PURE__*/React__default["default"].createElement(Button, {
1482
+ data: {
1483
+ // link: 'headerData?.loginCtaLink',
1484
+ // isLink: 1,
1485
+ value: 'BUY NOW'
1486
+ // isExternal: 1
1487
+ },
1488
+
1489
+ onClick: extraProps?.courseBuyNow,
1490
+ type: 'primary',
1491
+ size: 'small',
1492
+ target: null,
1493
+ name: "button",
1494
+ rel: null
1495
+ // styling={isMobile ? { margin: '0 40px' } : {}}
1496
+ }));
1497
+ } else return /*#__PURE__*/React__default["default"].createElement(Button, {
1498
+ data: {
1499
+ // link: 'headerData?.loginCtaLink',
1500
+ // isLink: 1,
1501
+ value: 'BUY NOW'
1502
+ // isExternal: 1
1503
+ },
1504
+
1505
+ onClick: extraProps?.courseBuyNow,
1506
+ type: 'primary',
1507
+ size: 'medium',
1508
+ target: null,
1509
+ name: "button",
1510
+ rel: null
1511
+ // styling={isMobile ? { margin: '0 40px' } : {}}
1512
+ });
1513
+ };
1514
+
1361
1515
  return /*#__PURE__*/React__default["default"].createElement("nav", {
1362
1516
  className: classes.section
1363
1517
  }, !(header?.websiteLogo === DEFAULT_HEADER_IMAGE_LP && isCustomWebsite) ? /*#__PURE__*/React__default["default"].createElement("div", {
1364
1518
  className: classes.headerSection
1365
1519
  }, /*#__PURE__*/React__default["default"].createElement("div", {
1366
1520
  className: classes.headerContainer
1367
- }, /*#__PURE__*/React__default["default"].createElement("div", {
1521
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
1368
1522
  className: classes.imageDiv
1369
1523
  }, header?.websiteLogo ? /*#__PURE__*/React__default["default"].createElement("a", {
1370
1524
  href: logoUrl,
@@ -1392,7 +1546,7 @@ function DesktopHeader({
1392
1546
  moreContent: moreContentFn(),
1393
1547
  isTutorWebsite: isTutorWebsite,
1394
1548
  onDownloadAppTriggered: onDownloadAppTriggered
1395
- }))) : /*#__PURE__*/React__default["default"].createElement("div", {
1549
+ })), OfferDetailsJSX())) : /*#__PURE__*/React__default["default"].createElement("div", {
1396
1550
  style: {
1397
1551
  paddingTop: '30px'
1398
1552
  }
@@ -1586,13 +1740,15 @@ function Header({
1586
1740
  header: data,
1587
1741
  isTutorWebsite: isTutorWebsite,
1588
1742
  isLandingPage: isLandingPage,
1589
- onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered
1743
+ onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered,
1744
+ extraProps: extraProps
1590
1745
  }) : /*#__PURE__*/React__default["default"].createElement(DesktopHeader, {
1591
1746
  navData: filterHiddenNavs(),
1592
1747
  header: data,
1593
1748
  isTutorWebsite: isTutorWebsite,
1594
1749
  isLandingPage: isLandingPage,
1595
- onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered
1750
+ onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered,
1751
+ extraProps: extraProps
1596
1752
  });
1597
1753
  }
1598
1754
 
@@ -10222,21 +10378,28 @@ const TimerAndCall = ({
10222
10378
  text: "Secs"
10223
10379
  }));
10224
10380
  };
10381
+ const CountDownJSX = offerPriceValidFor => {
10382
+ let conversions = extraProps?.conversions || 0;
10383
+ if (offerPriceValidFor && offerPriceValidFor - conversions <= 0) {
10384
+ return null;
10385
+ }
10386
+ return /*#__PURE__*/React__default["default"].createElement("div", {
10387
+ className: classes.offerWrapper
10388
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
10389
+ className: classes.offerEndsTitle
10390
+ }, "Offer ends in"), /*#__PURE__*/React__default["default"].createElement(Countdown__default["default"], {
10391
+ renderer: renderer,
10392
+ date: nodeData.offerCounter?.metadata?.endDate,
10393
+ daysInHours: true
10394
+ }));
10395
+ };
10225
10396
  return /*#__PURE__*/React__default["default"].createElement("section", {
10226
10397
  className: classes.timerAndCallSection
10227
10398
  }, /*#__PURE__*/React__default["default"].createElement("div", {
10228
10399
  className: classes.timerAndCallContainer
10229
10400
  }, /*#__PURE__*/React__default["default"].createElement("div", {
10230
10401
  className: classes.timerAndCallBox
10231
- }, nodeData?.showOffer?.metadata?.value && nodeData.offerCounter?.metadata?.isOfferActive ? /*#__PURE__*/React__default["default"].createElement("div", {
10232
- className: classes.offerWrapper
10233
- }, /*#__PURE__*/React__default["default"].createElement("div", {
10234
- className: classes.offerEndsTitle
10235
- }, "Offer ends in"), /*#__PURE__*/React__default["default"].createElement(Countdown__default["default"], {
10236
- renderer: renderer,
10237
- date: nodeData.offerCounter?.metadata?.endDate,
10238
- daysInHours: true
10239
- })) : null, nodeData?.title?.metadata?.value ? /*#__PURE__*/React__default["default"].createElement("div", {
10402
+ }, nodeData?.showOffer?.metadata?.value && nodeData.offerCounter?.metadata?.isOfferActive ? CountDownJSX(nodeData.offerCounter?.metadata?.offerPriceValidFor) : null, nodeData?.title?.metadata?.value ? /*#__PURE__*/React__default["default"].createElement("div", {
10240
10403
  className: classes.title
10241
10404
  }, /*#__PURE__*/React__default["default"].createElement("span", {
10242
10405
  ref: nodeData?.heading?.refSetter,