@payfit/unity-components
Version:
33 lines (32 loc) • 1.02 kB
JavaScript
import { isMobileBreakpoint as e, useBreakpointListener as t } from "../../../hooks/use-breakpoint-listener.js";
import { extractMobileActionsFromArray as n, extractMobileActionsFromChildren as r } from "../utils/action-bar-helpers.js";
import i, { isValidElement as a, useCallback as o, useMemo as s } from "react";
//#region src/components/action-bar/hooks/use-action-bar-state.ts
var c = ({ actions: c, children: l, forceExpandMobile: u = !1 }) => {
let d = e(t()), f = c !== void 0 && typeof l == "function";
return {
isDynamicApi: f,
hasActions: f ? c.length > 0 : !!l,
renderActions: o(() => {
if (f) {
let e = l;
return (d && !u ? c.filter((e) => e.variant === "primary") : c).map((t, n) => e(t, n));
}
return d && !u ? i.Children.toArray(l).filter((e) => a(e) && e.props.variant === "primary") : l;
}, [
f,
d,
u,
l,
c
]),
mobileOverflowActions: s(() => u ? [] : f ? n(c) : r(l), [
f,
u,
c,
l
])
};
};
//#endregion
export { c as useActionBarState };