@payfit/unity-components
Version:
25 lines (24 loc) • 569 B
JavaScript
import { useCallback as e, useState as t } from "react";
//#region src/components/inline-field-group/hooks/useInlineFieldGroupMode.ts
function n({ mode: n, defaultMode: r = "read", onModeChange: i, shouldModeChange: a }) {
let [o, s] = t(r), c = n !== void 0, l = c ? n : o, u = e((e) => {
a && a(l, e) === !1 || (c || s(e), i?.(e));
}, [
c,
l,
i,
a
]);
return {
mode: l,
enterEditMode: e(() => {
u("edit");
}, [u]),
exitEditMode: e(() => {
u("read");
}, [u]),
isControlled: c
};
}
//#endregion
export { n as useInlineFieldGroupMode };