All files / src/contexts PreviewSliderContext.tsx

100% Statements 38/38
100% Branches 6/6
100% Functions 4/4
100% Lines 38/38

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 32 33 34 35 36 37 38 391x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 23x 23x 2x 2x 20x 20x 1x 1x 20x 20x 20x 7x 20x 20x 20x 3x 20x 20x 20x 20x 20x 20x 20x 20x 20x 20x  
"use client";
import React, { createContext, useContext, useState } from "react";
 
interface PreviewSliderType {
  isModalPreviewOpen: boolean;
  openPreviewModal: () => void;
  closePreviewModal: () => void;
}
 
const PreviewSlider = createContext<PreviewSliderType | undefined>(undefined);
 
export const usePreviewSlider = () => {
  const context = useContext(PreviewSlider);
  if (!context) {
    throw new Error("usePreviewSlider must be used within a ModalProvider");
  }
  return context;
};
 
export const PreviewSliderProvider = ({ children }: { children: React.ReactNode }) => {
  const [isModalPreviewOpen, setIsModalOpen] = useState(false);
 
  const openPreviewModal = () => {
    setIsModalOpen(true);
  };
 
  const closePreviewModal = () => {
    setIsModalOpen(false);
  };
 
  return (
    <PreviewSlider.Provider
      value={{ isModalPreviewOpen, openPreviewModal, closePreviewModal }}
    >
      {children}
    </PreviewSlider.Provider>
  );
};