import IgnoreUserAction from './containers/IgnoreUserAction'; import IgnoreUserConfirmation from './containers/IgnoreUserConfirmation'; import IgnoredUserSection from './containers/IgnoredUserSection'; import translations from './translations.yml'; import update from 'immutability-helper'; export default { slots: { authorMenuActions: [IgnoreUserAction], ignoreUserConfirmation: [IgnoreUserConfirmation], profileSections: [IgnoredUserSection], }, translations, mutations: { IgnoreUser: ({variables}) => ({ updateQueries: { CoralEmbedStream_Embed: (previousData) => { const ignoredUserId = variables.id; const updated = update(previousData, {me: {ignoredUsers: {$push: [{ id: ignoredUserId, __typename: 'User', }]}}}); return updated; } } }), StopIgnoringUser: ({variables}) => ({ updateQueries: { CoralEmbedStream_Profile: (previousData) => { const noLongerIgnoredUserId = variables.id; // remove noLongerIgnoredUserId from ignoredUsers const updated = update(previousData, {me: {ignoredUsers: { $apply: (ignoredUsers) => { return ignoredUsers.filter((u) => u.id !== noLongerIgnoredUserId); } }}}); return updated; } } }), }, };