All files / src/utils niceModalCore.tsx

0% Statements 0/9
0% Branches 0/2
0% Functions 0/2
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31                                                             
import {
  NiceModalHocProps,
  create,
  register,
  show,
} from "@ebay/nice-modal-react";
import { PropsWithChildren } from "react";
 
export class NiceModalCore {
  static registredModals: string[] = [];
 
  static NiceModalCreator<TProps = void>(
    id: NiceModalHocProps["id"],
    component: React.FC<PropsWithChildren<TProps>>,
  ) {
    if (NiceModalCore.registredModals.includes(id))
      throw Error(`"${id}" id already used`);
 
    const modalComponent = create(component);
    register(id, modalComponent);
    NiceModalCore.registredModals.push(id);
 
    const openModal = (params: TProps) => {
      show(id, params);
    };
    return {
      openModal,
    };
  }
}