diy-template-components 2.0.66 → 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
 
@@ -10118,7 +10274,7 @@ const useTimerCallPageStyles = createUseStyles(theme => ({
10118
10274
  },
10119
10275
  timerAndCallContainer: {
10120
10276
  padding: '72px',
10121
- background: theme?.colors?.background3,
10277
+ background: '#F4F9FF',
10122
10278
  borderRadius: '8px',
10123
10279
  boxShadow: '0px 4px 10px rgba(0, 0, 0, 0.16)'
10124
10280
  },
@@ -10132,7 +10288,8 @@ const useTimerCallPageStyles = createUseStyles(theme => ({
10132
10288
  title: {
10133
10289
  fontWeight: '700',
10134
10290
  fontSize: '40px',
10135
- textAlign: 'center'
10291
+ textAlign: 'center',
10292
+ lineHeight: '45px'
10136
10293
  },
10137
10294
  offerWrapper: {
10138
10295
  display: 'flex',
@@ -10221,28 +10378,35 @@ const TimerAndCall = ({
10221
10378
  text: "Secs"
10222
10379
  }));
10223
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
+ };
10224
10396
  return /*#__PURE__*/React__default["default"].createElement("section", {
10225
10397
  className: classes.timerAndCallSection
10226
10398
  }, /*#__PURE__*/React__default["default"].createElement("div", {
10227
10399
  className: classes.timerAndCallContainer
10228
10400
  }, /*#__PURE__*/React__default["default"].createElement("div", {
10229
10401
  className: classes.timerAndCallBox
10230
- }, nodeData?.showOffer?.metadata?.value && nodeData.offerCounter?.metadata?.isOfferActive ? /*#__PURE__*/React__default["default"].createElement("div", {
10231
- className: classes.offerWrapper
10232
- }, /*#__PURE__*/React__default["default"].createElement("div", {
10233
- className: classes.offerEndsTitle
10234
- }, "Offer ends in"), /*#__PURE__*/React__default["default"].createElement(Countdown__default["default"], {
10235
- renderer: renderer,
10236
- date: nodeData.offerCounter?.metadata?.endDate,
10237
- daysInHours: true
10238
- })) : 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", {
10239
10403
  className: classes.title
10240
10404
  }, /*#__PURE__*/React__default["default"].createElement("span", {
10241
10405
  ref: nodeData?.heading?.refSetter,
10242
10406
  dangerouslySetInnerHTML: {
10243
10407
  __html: nodeData?.title?.metadata?.value
10244
10408
  }
10245
- })) : null, /*#__PURE__*/React__default["default"].createElement(Button, {
10409
+ })) : null, nodeData?.timerButton?.metadata?.value ? /*#__PURE__*/React__default["default"].createElement(Button, {
10246
10410
  style: {
10247
10411
  width: '100%',
10248
10412
  fontWeight: '700',
@@ -10251,18 +10415,18 @@ const TimerAndCall = ({
10251
10415
  data: {
10252
10416
  // link: 'headerData?.loginCtaLink',
10253
10417
  // isLink: 1,
10254
- value: 'Buy Now today for ₹1,000'
10418
+ value: nodeData.timerButton.metadata.value
10255
10419
  // isExternal: 1
10256
10420
  },
10257
10421
 
10258
- onClick: () => {},
10422
+ onClick: extraProps?.courseBuyNow,
10259
10423
  type: 'primary',
10260
10424
  size: 'medium',
10261
10425
  target: null,
10262
10426
  name: "button",
10263
10427
  rel: null
10264
10428
  // styling={isMobile ? { margin: '0 40px' } : {}}
10265
- }))));
10429
+ }) : null)));
10266
10430
  };
10267
10431
 
10268
10432
  var index = /*#__PURE__*/Object.freeze({