'use client';

import React, { useMemo, createContext } from 'react';

import {
  IComponentState,
  IComponentStateProps,
} from '../../interfaces/component-state';

export const ComponentStateContext = createContext<IComponentState>(
  {} as IComponentState,
);

export const ComponentState = ({
  children,
  components,
}: IComponentStateProps) => {
  const value: IComponentState = useMemo(() => components, [components]);

  return (
    <ComponentStateContext.Provider value={value}>
      {children}
    </ComponentStateContext.Provider>
  );
};
