@assistant-ui/react
Version:
Typescript/React library for AI Chat
41 lines (40 loc) • 1.5 kB
JavaScript
"use client";
// src/primitives/actionBar/useActionBarFloatStatus.tsx
import {
useMessageRuntime,
useMessageUtilsStore
} from "../../context/react/MessageContext.mjs";
import { useThreadRuntime } from "../../context/react/ThreadContext.mjs";
import { useCombinedStore } from "../../utils/combined/useCombinedStore.mjs";
var HideAndFloatStatus = /* @__PURE__ */ ((HideAndFloatStatus2) => {
HideAndFloatStatus2["Hidden"] = "hidden";
HideAndFloatStatus2["Floating"] = "floating";
HideAndFloatStatus2["Normal"] = "normal";
return HideAndFloatStatus2;
})(HideAndFloatStatus || {});
var useActionBarFloatStatus = ({
hideWhenRunning,
autohide,
autohideFloat
}) => {
const threadRuntime = useThreadRuntime();
const messageRuntime = useMessageRuntime();
const messageUtilsStore = useMessageUtilsStore();
return useCombinedStore(
[threadRuntime, messageRuntime, messageUtilsStore],
(t, m, mu) => {
if (hideWhenRunning && t.isRunning) return "hidden" /* Hidden */;
const autohideEnabled = autohide === "always" || autohide === "not-last" && !m.isLast;
if (!autohideEnabled) return "normal" /* Normal */;
if (!mu.isHovering) return "hidden" /* Hidden */;
if (autohideFloat === "always" || autohideFloat === "single-branch" && m.branchCount <= 1)
return "floating" /* Floating */;
return "normal" /* Normal */;
}
);
};
export {
HideAndFloatStatus,
useActionBarFloatStatus
};
//# sourceMappingURL=useActionBarFloatStatus.mjs.map