update-reaction-fix

This commit is contained in:
Untone 2024-03-04 16:31:31 +03:00
parent dbec93aee1
commit ca66517d6a

View File

@ -1,6 +1,6 @@
import type { JSX, Accessor } from 'solid-js' import type { Accessor, JSX } from 'solid-js'
import { createSignal, createContext, onCleanup, useContext } from 'solid-js' import { createContext, createSignal, onCleanup, useContext } from 'solid-js'
import { createStore, reconcile } from 'solid-js/store' import { createStore, reconcile } from 'solid-js/store'
import { apiClient } from '../graphql/client/core' import { apiClient } from '../graphql/client/core'
@ -30,7 +30,7 @@ export function useReactions() {
} }
export const ReactionsProvider = (props: { children: JSX.Element }) => { export const ReactionsProvider = (props: { children: JSX.Element }) => {
const [reactionEntities, setReactionEntities] = createSignal<Record<number, Reaction>|undefined>() const [reactionEntities, setReactionEntities] = createSignal<Record<number, Reaction> | undefined>()
const { author } = useSession() const { author } = useSession()
const loadReactionsBy = async ({ const loadReactionsBy = async ({
@ -99,11 +99,14 @@ export const ReactionsProvider = (props: { children: JSX.Element }) => {
const updateReaction = async (input: ReactionInput): Promise<Reaction> => { const updateReaction = async (input: ReactionInput): Promise<Reaction> => {
const reaction = await apiClient.updateReaction(input) const reaction = await apiClient.updateReaction(input)
if (reaction) {
setReactionEntities((rrr) => { setReactionEntities((rrr) => {
rrr[reaction.id] = reaction rrr[reaction.id] = reaction
return rrr return rrr
}) })
} }
return reaction
}
onCleanup(() => setReactionEntities(reconcile({}))) onCleanup(() => setReactionEntities(reconcile({})))