Files
desktop/app/providers/DialogProvider/useUpdateSyncTime.ts

33 lines
1.5 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { usePublicKey } from "../AccountProvider/usePublicKey";
import { useDatabase } from "../DatabaseProvider/useDatabase";
import { ProtocolState } from "../ProtocolProvider/ProtocolProvider";
import { useProtocolState } from "../ProtocolProvider/useProtocolState";
export function useUpdateSyncTime() : (timestamp: number) => Promise<void> {
const [protocolState] = useProtocolState();
const {runQuery} = useDatabase();
const publicKey = usePublicKey();
/**
* Обновляет время последней синхронизации для аккаунта
* @param timestamp время
*/
const updateSyncTime = async (timestamp: number) => {
if(protocolState == ProtocolState.SYNCHRONIZATION){
/**
* Если сейчас идет синхронизация то чтобы при синхронизации
* не создавать нагрузку на базу данных
* по постоянному обновлению, обновляем базу один раз - когда
* приходит пакет о том что синхронизация закончилась
*/
return;
}
await runQuery(
"INSERT INTO accounts_sync_times (account, last_sync) VALUES (?, ?) " +
"ON CONFLICT(account) DO UPDATE SET last_sync = ? WHERE account = ?",
[publicKey, timestamp, timestamp, publicKey]
);
};
return updateSyncTime;
}