Básicamente, me gustaría crear un cargador de respuesta optimista para las imágenes mientras se cargan para representar las imágenes optimistas y el cargador.
Así que tengo esta idea: uso la respuesta optimista de Apollo para agregar una imagen base64 en el caché para representarla mientras se carga la imagen, pero también quiero agregar un campo para este tipo de imagen como: imageLoading y podría usarlo en mi interfaz de usuario para mostrar algún cargador, etc. y eliminar este cargador después de que se cargue la imagen real.
Conozco la única forma de crear un campo personalizado en el caché de apollo: política de campo -> función de lectura
Pero el problema principal es: ¿cómo hacer que el caché de apolo sepa cuándo debo configurar el campo imageLoading como verdadero o falso? Probablemente sea posible usar reactiveVar para este marcador imageLoading y más adelante en la política de campo -> función de lectura. De alguna manera debería obtener este valor y en función de su retorno verdadero/falso para este campo de caché.
Hasta ahora sé que podría obtener este valor directamente de la var reactiva en la función de read de la política de campo de esta manera:
const cache = new InMemoryCache({ typePolicies: { Image: { fields: { name: { imageLoading (name) { const loading = reactiveVarIsLoading(); return loading; } } }, }, }, });Pero no estoy seguro de si es la forma correcta de obtener el valor de var reactivo directamente en el caché.
Entonces, me pregunto cuál es la mejor manera de lograrlo o si me estoy moviendo en la dirección totalmente equivocada para lograr mi objetivo.
¡Gracias por cualquier ayuda!