Улучшенная организация кода

This commit is contained in:
RoyceDa
2026-02-24 15:42:15 +02:00
parent bf057c14f4
commit fbc4f73f3d
3 changed files with 186 additions and 161 deletions

View File

@@ -0,0 +1,33 @@
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;
}