koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
3 lines (2 loc) • 2.18 kB
JavaScript
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),e=require("react"),w=require("classnames"),F=require("../../internal/inputs/ValidationProps.cjs"),P=require("../../internal/inputs/useValidation.cjs"),M=require("../../internal/inputs/useRevalidateOnFormChange.cjs"),$=require("../../internal/inputs/useExternalValidation.cjs"),B=require("../../internal/hooks/useInternalRef.cjs");;/* empty css */const h=require("./InputDateTime.module.css.cjs"),L=require("../InputDate/InputDate.cjs"),_=require("../InputTime/InputTime.cjs"),z=()=>{},I=e.forwardRef(({prefix:A,className:q,placeholder:g="",disabled:v,value:a,onChange:p=()=>{},onFocus:b=()=>{},onBlur:D=()=>{},onKeyDown:E=()=>{},onKeyUp:C=()=>{},validation:r,errorMessage:R,revalidateOnFormChange:S,...V},j)=>{const n=B.useInternalRef(j),y=!!r,{validateTextual:u,validity:f,setValidity:o}=P.useValidation({validation:r,hasValidators:y});M.useRevalidateOnFormChange(n,u,S),$.useExternalValidation({errorMessage:R,inputRef:n,setValidity:o,validation:r});const N=e.useCallback(()=>{o(F.ValidationState.error)},[o]),[l,c]=e.useState(""),[d,m]=e.useState("00:00"),[T,x]=e.useState(a||"T00:00");e.useEffect(()=>{if(x(a||"T00:00"),a!==void 0&&a!=="T00:00"){const[t,i]=a.split("T");c(t),m(i)}else c(""),m("00:00")},[a]);const O=e.useCallback(t=>{c(t.target.value)},[]),k=e.useCallback(t=>{m(t.target.value)},[]);return e.useEffect(()=>{x(`${l}T${d}`)},[l,d]),e.useEffect(()=>{var t;(t=n.current)==null||t.dispatchEvent(new Event("change",{bubbles:!0}))},[T,n]),e.useEffect(()=>{var t;(t=n.current)==null||t.addEventListener("change",i=>{u(i),p(i)})},[n,p,u]),s.jsx(e.Fragment,{children:s.jsxs("div",{className:w(h.default.wrapper,q),children:[s.jsx("input",{...V,type:"text",placeholder:g,className:h.default.inputMarionette,ref:n,disabled:v,value:T,onChange:z,onBlur:D,onFocus:b,onKeyUp:C,onKeyDown:E,onInvalid:N}),s.jsx(L.InputDate,{value:l,onChange:O,validation:f,displayIcon:!1}),s.jsx(_.InputTime,{value:d,onChange:k,validation:f})]})})});I.displayName="InputDateTime";exports.InputDateTime=I;
//# sourceMappingURL=InputDateTime.cjs.map