import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; import { useEffect, useState } from "react"; import { createContext } from "react"; import { TABLES } from "./tables"; export const DatabaseContext = createContext({}); interface DatabaseProviderProps { children: React.ReactNode; } export function DatabaseProvider(props: DatabaseProviderProps) { const [initialized, setInitialized] = useState(false); const {runQuery} = useDatabase(); useEffect(() => { (async () => { await createAllTables(); setInitialized(true); //await runQuery("DROP TABLE IF EXISTS accounts_sync_times"); /** * Добавляем уникальный индекс на столбец message_id в таблица * messages чтобы избежать дубликации сообщений */ await runQuery("CREATE UNIQUE INDEX IF NOT EXISTS idx_messages_message_id ON messages(message_id)"); })(); }, []); const createAllTables = async () => { for(let i = 0; i < TABLES.length; i++){ await runQuery(TABLES[i]); } } return ( {initialized && props.children} ); }