import type * as Core from "@ariakit/components/menu/menu-bar-store";
import { useEffect } from "react";
import type {
  MenubarStore,
  MenubarStoreFunctions,
  MenubarStoreOptions,
  MenubarStoreProps,
  MenubarStoreState,
} from "../menubar/menubar-store.ts";
import {
  useMenubarStore,
  useMenubarStoreProps,
} from "../menubar/menubar-store.ts";

export function useMenuBarStoreProps<T extends Core.MenuBarStore>(
  store: T,
  update: () => void,
  props: MenuBarStoreProps,
) {
  return useMenubarStoreProps(store, update, props);
}

/**
 * Creates a menu bar store.
 * @deprecated
 * Use [`useMenubarStore`](https://ariakit.com/reference/use-menubar-store)
 * instead.
 * @example
 * ```jsx
 * const menubar = useMenuBarStore();
 * <MenuBar store={menubar} />
 * ```
 */
export function useMenuBarStore(props: MenuBarStoreProps = {}): MenuBarStore {
  useEffect(() => {
    if (process.env.NODE_ENV !== "production") {
      console.warn(
        "useMenuBarStore is deprecated. Use useMenubarStore instead.",
        "See https://ariakit.com/reference/use-menubar-store",
      );
    }
  }, []);
  return useMenubarStore(props);
}

export interface MenuBarStoreState extends MenubarStoreState {}

export interface MenuBarStoreFunctions extends MenubarStoreFunctions {}

export interface MenuBarStoreOptions extends MenubarStoreOptions {}

export interface MenuBarStoreProps extends MenubarStoreProps {}

export interface MenuBarStore extends MenubarStore {}
