This commit is contained in:
rosetta
2026-01-30 05:01:05 +02:00
commit 83f38dc63f
327 changed files with 18725 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase";
import { useEffect, useState } from "react";
import { UserInformation } from "./InformationProvider";
import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate";
/**
* Информация запрашивается только из кэша, и в отличии от вызова
* хука useUserInformation не использует подгрузку с сервера,
* то есть если в кэше информации нет то вернет пустое значение
* @param publicKey публичный ключ
*/
export function useUserCache(publicKey : string) {
const {getQuery} = useDatabase();
const [userInfo, setUserInfo] =
useState<UserInformation|undefined>(undefined);
useEffect(() => {
loadFromCacheDatabase();
}, [publicKey]);
const loadFromCacheDatabase = async () => {
const result = await getQuery("SELECT * FROM `cached_users` WHERE `public_key` = ?", [publicKey]);
if(!result){
return;
}
setUserInfo({
publicKey: result.public_key,
verified: result.verified,
title: result.title,
username: result.username,
online: OnlineState.OFFLINE
});
}
return userInfo;
}