import React, { createContext, useState } from "react"; import { MagicPopupType } from "../components/MagicPopupContainer"; import MagicPopupContainer from "../components/MagicPopupContainer"; //гаврилов. передай значением по умолчанию null и спроси у ChatGPT (deepseek не справляется) почему при указании null возникает ошибка в аргументе value export const PopupContext = createContext(''); /** * Контекст для компонента всплывающих окон */ export const PopupProvider = ({ children }) => { const [popupArrTestVar, setPopupArrTestVar] = useState( [] ); function addPopupTest (newPopupArrData: MagicPopupType[]) { setPopupArrTestVar(prev => { //Конкатенируем предыдущее состояние набора попапов и новые попапы, присваивая новому попапу параметр id с уникальным рандомным значением return [...prev, ...newPopupArrData].map(popup => popup.id ? popup : {...popup, id: getRandomId()}) }); }; //Колбэк для удаления попапа из набора function delPopupTest (popupDelKey: number) { setPopupArrTestVar(prev => { return prev.filter(popup => popup.id !== popupDelKey); }); }; function getRandomId(): number { return Date.now() - Math.random() }; const value = { popupArrTest: popupArrTestVar, //ГАВРИЛОВ. переименуй addPopupArrTest: addPopupTest, delPopupArrTest: delPopupTest, }; return {children} }