GO
Size: a a a
GO
GO
GO
authJwt.verifyToken
в Graphql как могу передать ?ОЛ
ОЛ
GO
GO
DP
cache.writeQuery
, но сталкиваюсь с тем, что не всегда актуальные данные доступны, то есть при чтении (через useQuery) остаются старыми, хотя я сделал запись новых.ОЛ
cache.writeQuery
, но сталкиваюсь с тем, что не всегда актуальные данные доступны, то есть при чтении (через useQuery) остаются старыми, хотя я сделал запись новых.DP
export const useStoreUser = (): IUseStoreUser => {
const apolloClient = useApollo()
const cache = apolloClient?.cache
const { data: userDataFromServerGql, loading: userDataFromServerLoading } = useQuery(STORE_userDataFromServer)
const { data: userDataFromTokenGql, loading: userDataFromTokenLoading } = useQuery(STORE_userDataFromToken)
const userDataFromServer = userDataFromServerGql?.userDataFromServer || userStore.userDataFromServer
const userDataFromToken = userDataFromTokenGql?.userDataFromToken || userStore.userDataFromToken
/**
* Записать данные пользователю полученные с Apollo Server
*
* @param {TypeUserDataFromServer} userDataFromServerInput
*/
const writeUserDataFromServer = (userDataFromServerInput: TypeUserDataFromServer) => {
cache.writeQuery({
query: STORE_userDataFromServer,
data: {
userDataFromServer: {
...userDataFromServer,
...userDataFromServerInput,
personal: {
...userDataFromServer.personal,
...userDataFromServerInput.personal,
},
subscription: {
...userDataFromServer.subscription,
...userDataFromServerInput.subscription,
},
},
},
})
}
/**
* Записать данные пользователя полученные из Token
*
* @param {TypeUserDataFromToken} userDataFromTokenInput
*/
const writeUserDataFromToken = (userDataFromTokenInput: TypeUserDataFromToken) => {
cache.writeQuery({
query: STORE_userDataFromToken,
data: {
userDataFromToken: {
...userDataFromToken,
...userDataFromTokenInput,
},
},
})
}
/**
* Разлогинить пользователя
*/
const logout = () => {
writeUserDataFromServer(userStore.userDataFromServer)
writeUserDataFromToken(userStore.userDataFromToken)
}
return {
writeUserDataFromServer,
writeUserDataFromToken,
userDataFromServer,
userDataFromToken,
userDataFromServerLoading,
userDataFromTokenLoading,
logout,
}
}
DP
apolloClient
- всегда одинаковый приходитОЛ
ОЛ
DP
DP
ОЛ
TK