Files
desktop/app/providers/DatabaseProvider/DatabaseProvider.tsx
2026-02-16 14:53:18 +02:00

40 lines
1.3 KiB
TypeScript

import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase";
import { useEffect, useState } from "react";
import { createContext } from "react";
import { TABLES } from "./tables";
export const DatabaseContext = createContext<any>({});
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 (
<DatabaseContext.Provider value={{}}>
{initialized && props.children}
</DatabaseContext.Provider>
);
}