import { GlobalState } from "@/utils/stateMapper";
import { DeviceEventEmitter } from "react-native";
import panels from "./types";
type IPanel = typeof panels;
type IPanelkeys = keyof IPanel;
interface IPanelInfo {
name: IPanelkeys | null;
payload: any;
}
export const panelInfoStore = new GlobalState<IPanelInfo>({
name: null,
payload: null,
});
export function showPanel<T extends IPanelkeys>(
name: T,
payload?: Parameters<IPanel[T]>[0],
) {
if (panelInfoStore.getValue().name) {
DeviceEventEmitter.emit("hidePanel", () => {
panelInfoStore.setValue({
name,
payload,
});
});
} else {
panelInfoStore.setValue({
name,
payload,
});
}
}
export function hidePanel() {
DeviceEventEmitter.emit("hidePanel");
}