'use client';

import { createContext, useContext, useState, useCallback } from 'react';

interface RerenderContextType {
  rerender: () => void;
}

const RerenderContext = createContext<RerenderContextType>({
  rerender: () => {},
});

export function RerenderProvider({ children }: { children: React.ReactNode }) {
  const [, setRerenderTrigger] = useState(0);

  const rerender = useCallback(() => {
    setRerenderTrigger(prev => prev + 1);
  }, []);

  return (
    <RerenderContext.Provider value={{ rerender }}>
      {children}
    </RerenderContext.Provider>
  );
}

export const useRerender = () => useContext(RerenderContext);
