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