Tengo una función que uso para actualizar mi interfaz de usuario
updateUser: async (userId, slug, avatar, coverImage) => { const payload = { ...(slug && { slug }), ...(description && { avatar }), ...(coverImage && { coverImage }) }; return result.user.mutationUpdate({ variables: { payload, userId } }); },
La cuestión es que esta función se llama en diferentes lugares de la interfaz de usuario, algunos de estos lugares son solo para actualizar el avatar, o el slug del usuario, etc. Esto ha llevado a múltiples funciones en la interfaz de usuario donde hacemos esto
const handleUserCoverUpdate = useCallback(async (userId, coverImage) => { try { await user.updateChannel(userId, null, null, coverImage); } catch { // } }, []); const handleUserSlugUpdate = useCallback(async (userId, slug) => { try { await user.updateChannel(userId, slug, null, null); } catch { // } }, []);
Lo que significa que pasamos parámetros como lo que necesitamos y los demás como nulos, creo que esto se está saliendo un poco de control, ¿sería mejor pasar un objeto de carga útil y desestructurarlo para obtener lo que se envía? Si es así, ¿cómo se vería eso con mi implementación actual, o hay una mejor manera?