@hoddy-ui/next 2.5.79 → 2.5.81

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/dist/index.js CHANGED
@@ -1403,6 +1403,7 @@ var import_vector_icons8 = require("@expo/vector-icons");
1403
1403
  var import_react16 = __toESM(require("react"));
1404
1404
  var import_react_native16 = require("react-native");
1405
1405
  var import_react_native_size_matters13 = require("react-native-size-matters");
1406
+ var import_react_native_modal_datetime_picker = __toESM(require("react-native-modal-datetime-picker"));
1406
1407
 
1407
1408
  // ../src/Components/SelectMenu.tsx
1408
1409
  var import_vector_icons7 = require("@expo/vector-icons");
@@ -1561,6 +1562,7 @@ var TextField = ({
1561
1562
  }) => {
1562
1563
  const colors2 = useColors();
1563
1564
  const [focused, setFocused] = (0, import_react16.useState)(false);
1565
+ const [datePickerVisible, setDatePickerVisible] = (0, import_react16.useState)(false);
1564
1566
  const isDate = type === "date";
1565
1567
  const height2 = (0, import_react_native_size_matters13.moderateScale)(variant === "text" ? 50 : 45) * (size === "large" ? 1.2 : size === "small" ? 0.8 : 1);
1566
1568
  const labelAnim = (0, import_react16.useRef)(
@@ -1678,13 +1680,40 @@ var TextField = ({
1678
1680
  autoCapitalize: "none",
1679
1681
  textContentType: "password"
1680
1682
  } : {};
1683
+ const parseDateValue = () => {
1684
+ if (!value)
1685
+ return /* @__PURE__ */ new Date();
1686
+ if (value instanceof Date)
1687
+ return value;
1688
+ const parts = `${value}`.split("/");
1689
+ if (parts.length === 3) {
1690
+ const [day, month, year] = parts;
1691
+ const parsed = new Date(
1692
+ parseInt(year, 10),
1693
+ parseInt(month, 10) - 1,
1694
+ parseInt(day, 10)
1695
+ );
1696
+ if (!isNaN(parsed.getTime()))
1697
+ return parsed;
1698
+ }
1699
+ const fallback = new Date(value);
1700
+ return isNaN(fallback.getTime()) ? /* @__PURE__ */ new Date() : fallback;
1701
+ };
1702
+ const handleDateConfirm = (date) => {
1703
+ const day = date.getDate();
1704
+ const month = date.getMonth() + 1;
1705
+ const year = date.getFullYear();
1706
+ const dateString = `${day}/${month}/${year}`;
1707
+ onChangeText?.(dateString);
1708
+ setDatePickerVisible(false);
1709
+ };
1681
1710
  const handleContainerPress = () => {
1682
1711
  if (disabled)
1683
1712
  return;
1684
1713
  setFocused(true);
1685
1714
  if (isDate) {
1686
1715
  onFocus();
1687
- setTimeout(() => setFocused(false), 150);
1716
+ setDatePickerVisible(true);
1688
1717
  }
1689
1718
  };
1690
1719
  return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: styles.root }, /* @__PURE__ */ import_react16.default.createElement(
@@ -1798,6 +1827,18 @@ var TextField = ({
1798
1827
  onChange: onChangeText,
1799
1828
  ...selectMenuProps
1800
1829
  }
1830
+ ), isDate && /* @__PURE__ */ import_react16.default.createElement(
1831
+ import_react_native_modal_datetime_picker.default,
1832
+ {
1833
+ isVisible: datePickerVisible,
1834
+ mode: "date",
1835
+ date: parseDateValue(),
1836
+ onConfirm: handleDateConfirm,
1837
+ onCancel: () => {
1838
+ setDatePickerVisible(false);
1839
+ setFocused(false);
1840
+ }
1841
+ }
1801
1842
  ));
1802
1843
  };
1803
1844
  var TextField2 = import_react16.default.forwardRef(
@@ -1833,6 +1874,7 @@ var TextField2 = import_react16.default.forwardRef(
1833
1874
  const colors2 = useColors();
1834
1875
  const [focused, _setFocused] = (0, import_react16.useState)(false);
1835
1876
  const [showPassword, setShowPassword] = (0, import_react16.useState)(false);
1877
+ const [datePickerVisible, setDatePickerVisible] = (0, import_react16.useState)(false);
1836
1878
  const isDate = type === "date";
1837
1879
  const height2 = (0, import_react_native_size_matters13.moderateScale)(
1838
1880
  multiline ? 50 + (props.numberOfLines || 1) * 18 : 50
@@ -1936,13 +1978,40 @@ var TextField2 = import_react16.default.forwardRef(
1936
1978
  autoCapitalize: "none",
1937
1979
  textContentType: "password"
1938
1980
  } : {};
1981
+ const parseDateValue = () => {
1982
+ if (!value)
1983
+ return /* @__PURE__ */ new Date();
1984
+ if (value instanceof Date)
1985
+ return value;
1986
+ const parts = `${value}`.split("/");
1987
+ if (parts.length === 3) {
1988
+ const [day, month, year] = parts;
1989
+ const parsed = new Date(
1990
+ parseInt(year, 10),
1991
+ parseInt(month, 10) - 1,
1992
+ parseInt(day, 10)
1993
+ );
1994
+ if (!isNaN(parsed.getTime()))
1995
+ return parsed;
1996
+ }
1997
+ const fallback = new Date(value);
1998
+ return isNaN(fallback.getTime()) ? /* @__PURE__ */ new Date() : fallback;
1999
+ };
2000
+ const handleDateConfirm = (date) => {
2001
+ const day = date.getDate();
2002
+ const month = date.getMonth() + 1;
2003
+ const year = date.getFullYear();
2004
+ const dateString = `${day}/${month}/${year}`;
2005
+ onChangeText?.(dateString);
2006
+ setDatePickerVisible(false);
2007
+ };
1939
2008
  const handleContainerPress = () => {
1940
2009
  if (disabled)
1941
2010
  return;
1942
2011
  setFocused(true);
1943
2012
  if (isDate) {
1944
2013
  onFocus();
1945
- setTimeout(() => setFocused(false), 150);
2014
+ setDatePickerVisible(true);
1946
2015
  }
1947
2016
  };
1948
2017
  return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_react_native16.View, { style: styles.root }, label && /* @__PURE__ */ import_react16.default.createElement(