58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
import { jsx as D } from "react/jsx-runtime";
|
|
import { useState as n, useEffect as y, useCallback as L } from "react";
|
|
import { I as i, F as R } from "./FormInputIcon.D-QBOOZ2.js";
|
|
const T = {
|
|
value: "",
|
|
helper: "",
|
|
isError: !1,
|
|
withIcon: !1
|
|
};
|
|
function j(...u) {
|
|
let t, f, e, s, p, r;
|
|
u[0] instanceof Function ? [r, s = T] = u : [t = "", r] = u, typeof s == "object" && ({
|
|
value: t = "",
|
|
helper: e,
|
|
isError: f,
|
|
readOnly: p
|
|
} = s);
|
|
const [c, I] = n(t || ""), [O, v] = n(f), [C, E] = n(e), [h, m] = n(i.IDLE), [S, d] = n(!1);
|
|
y(() => {
|
|
let a = !1;
|
|
return async function() {
|
|
if (r && S) {
|
|
let l, o;
|
|
m(i.LOADING);
|
|
try {
|
|
l = await r(c) || "", o = !!l;
|
|
} catch (x) {
|
|
l = x?.message, o = !0;
|
|
}
|
|
if (a)
|
|
return;
|
|
v(o), E(!o && e ? e : l);
|
|
const w = o ? i.ERROR : i.SUCCESS;
|
|
m(w);
|
|
}
|
|
}(), () => {
|
|
a = !0;
|
|
};
|
|
}, [c, S, r, e]), y(() => {
|
|
t && (d(!0), I(t));
|
|
}, [t]);
|
|
const F = L(async (a) => {
|
|
d(!0), I(a.target.value);
|
|
}, []);
|
|
return {
|
|
value: c,
|
|
isError: O,
|
|
helper: C,
|
|
status: h,
|
|
readOnly: p,
|
|
onChange: F,
|
|
...s && s.withIcon && { suffixIcon: /* @__PURE__ */ D(R, { status: h }) }
|
|
};
|
|
}
|
|
export {
|
|
j as u
|
|
};
|