@clyrex-digital/clyrex-controls-dev 0.8.1-dev.20260902111021 → 0.8.1-dev.20260903053106

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.
@@ -18,6 +18,11 @@ var TimeUntilStartsClient = (props) => {
18
18
  const diffMinutes = Math.floor(
19
19
  absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
20
20
  );
21
+ if (!isPast && absoluteDiffMs < 1e3 * 60 * 60 * 24) {
22
+ const diffSeconds = Math.floor(absoluteDiffMs % (1e3 * 60) / 1e3);
23
+ const padTimePart = (value) => value.toString().padStart(2, "0");
24
+ return `Starting in ${padTimePart(diffHours)}:${padTimePart(diffMinutes)}:${padTimePart(diffSeconds)}`;
25
+ }
21
26
  if (absoluteDiffMs < 6e4) {
22
27
  return "Just now";
23
28
  }
@@ -56,14 +61,24 @@ var TimeUntilStartsClient = (props) => {
56
61
  });
57
62
  useEffect(() => {
58
63
  if (props.value && isValidDate(props.value)) {
64
+ const getRemainingMilliseconds = () => {
65
+ const now = /* @__PURE__ */ new Date();
66
+ const nowUtc = new Date(
67
+ now.getTime() + now.getTimezoneOffset() * 6e4
68
+ );
69
+ return new Date(props.value).getTime() - nowUtc.getTime();
70
+ };
71
+ const shouldRefreshOnExpiry = getRemainingMilliseconds() > 0;
59
72
  setTimeUntilStart(calculateTimeDifference(props.value));
60
- const initialTimeout = setTimeout(() => {
61
- const interval = setInterval(() => {
62
- setTimeUntilStart(calculateTimeDifference(props.value));
63
- }, 6e4);
64
- return () => clearInterval(interval);
65
- }, 5e3);
66
- return () => clearTimeout(initialTimeout);
73
+ const interval = setInterval(() => {
74
+ if (shouldRefreshOnExpiry && getRemainingMilliseconds() <= 0) {
75
+ clearInterval(interval);
76
+ window.location.reload();
77
+ return;
78
+ }
79
+ setTimeUntilStart(calculateTimeDifference(props.value));
80
+ }, 1e3);
81
+ return () => clearInterval(interval);
67
82
  } else {
68
83
  setTimeUntilStart("");
69
84
  }
@@ -20,6 +20,11 @@ var TimeUntilStartsClient = (props) => {
20
20
  const diffMinutes = Math.floor(
21
21
  absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
22
22
  );
23
+ if (!isPast && absoluteDiffMs < 1e3 * 60 * 60 * 24) {
24
+ const diffSeconds = Math.floor(absoluteDiffMs % (1e3 * 60) / 1e3);
25
+ const padTimePart = (value) => value.toString().padStart(2, "0");
26
+ return `Starting in ${padTimePart(diffHours)}:${padTimePart(diffMinutes)}:${padTimePart(diffSeconds)}`;
27
+ }
23
28
  if (absoluteDiffMs < 6e4) {
24
29
  return "Just now";
25
30
  }
@@ -58,14 +63,24 @@ var TimeUntilStartsClient = (props) => {
58
63
  });
59
64
  useEffect(() => {
60
65
  if (props.value && isValidDate(props.value)) {
66
+ const getRemainingMilliseconds = () => {
67
+ const now = /* @__PURE__ */ new Date();
68
+ const nowUtc = new Date(
69
+ now.getTime() + now.getTimezoneOffset() * 6e4
70
+ );
71
+ return new Date(props.value).getTime() - nowUtc.getTime();
72
+ };
73
+ const shouldRefreshOnExpiry = getRemainingMilliseconds() > 0;
61
74
  setTimeUntilStart(calculateTimeDifference(props.value));
62
- const initialTimeout = setTimeout(() => {
63
- const interval = setInterval(() => {
64
- setTimeUntilStart(calculateTimeDifference(props.value));
65
- }, 6e4);
66
- return () => clearInterval(interval);
67
- }, 5e3);
68
- return () => clearTimeout(initialTimeout);
75
+ const interval = setInterval(() => {
76
+ if (shouldRefreshOnExpiry && getRemainingMilliseconds() <= 0) {
77
+ clearInterval(interval);
78
+ window.location.reload();
79
+ return;
80
+ }
81
+ setTimeUntilStart(calculateTimeDifference(props.value));
82
+ }, 1e3);
83
+ return () => clearInterval(interval);
69
84
  } else {
70
85
  setTimeUntilStart("");
71
86
  }
package/dist/index.js CHANGED
@@ -850,6 +850,11 @@ var init_TimeUntilStartsClient = __esm({
850
850
  const diffMinutes = Math.floor(
851
851
  absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
852
852
  );
853
+ if (!isPast && absoluteDiffMs < 1e3 * 60 * 60 * 24) {
854
+ const diffSeconds = Math.floor(absoluteDiffMs % (1e3 * 60) / 1e3);
855
+ const padTimePart = (value) => value.toString().padStart(2, "0");
856
+ return `Starting in ${padTimePart(diffHours)}:${padTimePart(diffMinutes)}:${padTimePart(diffSeconds)}`;
857
+ }
853
858
  if (absoluteDiffMs < 6e4) {
854
859
  return "Just now";
855
860
  }
@@ -888,14 +893,24 @@ var init_TimeUntilStartsClient = __esm({
888
893
  });
889
894
  (0, import_react16.useEffect)(() => {
890
895
  if (props.value && isValidDate(props.value)) {
896
+ const getRemainingMilliseconds = () => {
897
+ const now = /* @__PURE__ */ new Date();
898
+ const nowUtc = new Date(
899
+ now.getTime() + now.getTimezoneOffset() * 6e4
900
+ );
901
+ return new Date(props.value).getTime() - nowUtc.getTime();
902
+ };
903
+ const shouldRefreshOnExpiry = getRemainingMilliseconds() > 0;
891
904
  setTimeUntilStart(calculateTimeDifference(props.value));
892
- const initialTimeout = setTimeout(() => {
893
- const interval = setInterval(() => {
894
- setTimeUntilStart(calculateTimeDifference(props.value));
895
- }, 6e4);
896
- return () => clearInterval(interval);
897
- }, 5e3);
898
- return () => clearTimeout(initialTimeout);
905
+ const interval = setInterval(() => {
906
+ if (shouldRefreshOnExpiry && getRemainingMilliseconds() <= 0) {
907
+ clearInterval(interval);
908
+ window.location.reload();
909
+ return;
910
+ }
911
+ setTimeUntilStart(calculateTimeDifference(props.value));
912
+ }, 1e3);
913
+ return () => clearInterval(interval);
899
914
  } else {
900
915
  setTimeUntilStart("");
901
916
  }
@@ -8789,6 +8804,11 @@ var DivContainer = async (props) => {
8789
8804
  const renderLink = result && props.node.dataBinding?.responseType === "array" ? true : false;
8790
8805
  const renderContainerChildren = () => {
8791
8806
  if (!hasReplicatedChildren) {
8807
+ if (Array.isArray(arrayResult)) {
8808
+ return props.node.children.flatMap(
8809
+ (node, childIndex) => node?.type === "div-container" ? [] : [renderNode(node, props, props.dataitem, `static-${childIndex}`)]
8810
+ );
8811
+ }
8792
8812
  return dataToRender.map(
8793
8813
  (item, idx) => item?.links?.view && renderLink ? renderChildren2(
8794
8814
  props.node.children,
package/dist/index.mjs CHANGED
@@ -403,7 +403,7 @@ var DateTimeVew_default = DateTimeView;
403
403
 
404
404
  // src/components/controls/view/TimeUntilStarts.tsx
405
405
  import dynamic4 from "next/dynamic";
406
- var TimeUntilStarts = dynamic4(() => import("./TimeUntilStartsClient-5HGQ5JKM.mjs"), {
406
+ var TimeUntilStarts = dynamic4(() => import("./TimeUntilStartsClient-ZKTMV247.mjs"), {
407
407
  ssr: false
408
408
  });
409
409
  var TimeUntilStarts_default = TimeUntilStarts;
@@ -2753,6 +2753,11 @@ var DivContainer = async (props) => {
2753
2753
  const renderLink = result && props.node.dataBinding?.responseType === "array" ? true : false;
2754
2754
  const renderContainerChildren = () => {
2755
2755
  if (!hasReplicatedChildren) {
2756
+ if (Array.isArray(arrayResult)) {
2757
+ return props.node.children.flatMap(
2758
+ (node, childIndex) => node?.type === "div-container" ? [] : [renderNode(node, props, props.dataitem, `static-${childIndex}`)]
2759
+ );
2760
+ }
2756
2761
  return dataToRender.map(
2757
2762
  (item, idx) => item?.links?.view && renderLink ? renderChildren(
2758
2763
  props.node.children,
package/dist/server.js CHANGED
@@ -1637,6 +1637,11 @@ var init_TimeUntilStartsClient = __esm({
1637
1637
  const diffMinutes = Math.floor(
1638
1638
  absoluteDiffMs % (1e3 * 60 * 60) / (1e3 * 60)
1639
1639
  );
1640
+ if (!isPast && absoluteDiffMs < 1e3 * 60 * 60 * 24) {
1641
+ const diffSeconds = Math.floor(absoluteDiffMs % (1e3 * 60) / 1e3);
1642
+ const padTimePart = (value) => value.toString().padStart(2, "0");
1643
+ return `Starting in ${padTimePart(diffHours)}:${padTimePart(diffMinutes)}:${padTimePart(diffSeconds)}`;
1644
+ }
1640
1645
  if (absoluteDiffMs < 6e4) {
1641
1646
  return "Just now";
1642
1647
  }
@@ -1675,14 +1680,24 @@ var init_TimeUntilStartsClient = __esm({
1675
1680
  });
1676
1681
  (0, import_react21.useEffect)(() => {
1677
1682
  if (props.value && isValidDate(props.value)) {
1683
+ const getRemainingMilliseconds = () => {
1684
+ const now = /* @__PURE__ */ new Date();
1685
+ const nowUtc = new Date(
1686
+ now.getTime() + now.getTimezoneOffset() * 6e4
1687
+ );
1688
+ return new Date(props.value).getTime() - nowUtc.getTime();
1689
+ };
1690
+ const shouldRefreshOnExpiry = getRemainingMilliseconds() > 0;
1678
1691
  setTimeUntilStart(calculateTimeDifference(props.value));
1679
- const initialTimeout = setTimeout(() => {
1680
- const interval = setInterval(() => {
1681
- setTimeUntilStart(calculateTimeDifference(props.value));
1682
- }, 6e4);
1683
- return () => clearInterval(interval);
1684
- }, 5e3);
1685
- return () => clearTimeout(initialTimeout);
1692
+ const interval = setInterval(() => {
1693
+ if (shouldRefreshOnExpiry && getRemainingMilliseconds() <= 0) {
1694
+ clearInterval(interval);
1695
+ window.location.reload();
1696
+ return;
1697
+ }
1698
+ setTimeUntilStart(calculateTimeDifference(props.value));
1699
+ }, 1e3);
1700
+ return () => clearInterval(interval);
1686
1701
  } else {
1687
1702
  setTimeUntilStart("");
1688
1703
  }
@@ -8758,6 +8773,11 @@ var DivContainer = async (props) => {
8758
8773
  const renderLink = result && props.node.dataBinding?.responseType === "array" ? true : false;
8759
8774
  const renderContainerChildren = () => {
8760
8775
  if (!hasReplicatedChildren) {
8776
+ if (Array.isArray(arrayResult)) {
8777
+ return props.node.children.flatMap(
8778
+ (node, childIndex) => node?.type === "div-container" ? [] : [renderNode(node, props, props.dataitem, `static-${childIndex}`)]
8779
+ );
8780
+ }
8761
8781
  return dataToRender.map(
8762
8782
  (item, idx) => item?.links?.view && renderLink ? renderChildren2(
8763
8783
  props.node.children,
package/dist/server.mjs CHANGED
@@ -736,7 +736,7 @@ var DateTimeVew_default = DateTimeView;
736
736
 
737
737
  // src/components/controls/view/TimeUntilStarts.tsx
738
738
  import dynamic6 from "next/dynamic";
739
- var TimeUntilStarts = dynamic6(() => import("./TimeUntilStartsClient-4C7NDEAD.mjs"), {
739
+ var TimeUntilStarts = dynamic6(() => import("./TimeUntilStartsClient-P4VJIOJJ.mjs"), {
740
740
  ssr: false
741
741
  });
742
742
  var TimeUntilStarts_default = TimeUntilStarts;
@@ -2721,6 +2721,11 @@ var DivContainer = async (props) => {
2721
2721
  const renderLink = result && props.node.dataBinding?.responseType === "array" ? true : false;
2722
2722
  const renderContainerChildren = () => {
2723
2723
  if (!hasReplicatedChildren) {
2724
+ if (Array.isArray(arrayResult)) {
2725
+ return props.node.children.flatMap(
2726
+ (node, childIndex) => node?.type === "div-container" ? [] : [renderNode(node, props, props.dataitem, `static-${childIndex}`)]
2727
+ );
2728
+ }
2724
2729
  return dataToRender.map(
2725
2730
  (item, idx) => item?.links?.view && renderLink ? renderChildren(
2726
2731
  props.node.children,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clyrex-digital/clyrex-controls-dev",
3
- "version": "0.8.1-dev.20260902111021",
3
+ "version": "0.8.1-dev.20260903053106",
4
4
  "description": "Reusable React components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",