Files
ncd-fe/packages/pl-fe/src/stores/account-hover-card.ts
nicole mikołajczyk 9f98b5b07d nicolium: oxlint and oxfmt migration, remove eslint
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-02-15 13:30:55 +01:00

47 lines
1.1 KiB
TypeScript

import { create } from 'zustand';
type State = {
ref: React.MutableRefObject<HTMLDivElement> | null;
accountId: string | null;
hovered: boolean;
actions: {
openAccountHoverCard: (ref: React.MutableRefObject<HTMLDivElement>, accountId: string) => void;
updateAccountHoverCard: () => void;
closeAccountHoverCard: (force?: boolean) => void;
};
};
const useAccountHoverCardStore = create<State>((set) => ({
ref: null,
accountId: null,
hovered: false,
actions: {
openAccountHoverCard: (ref, accountId) => {
set({
ref,
accountId,
});
},
updateAccountHoverCard: () => {
set({
hovered: true,
});
},
closeAccountHoverCard: (force = false) => {
set((state) =>
state.hovered && !force
? {}
: {
ref: null,
accountId: null,
hovered: false,
},
);
},
},
}));
const useAccountHoverCardActions = () => useAccountHoverCardStore((state) => state.actions);
export { useAccountHoverCardStore, useAccountHoverCardActions };