Skip to content

Commit 504646f

Browse files
committed
Update both orderBy queries on add or delete
1 parent 2102ed5 commit 504646f

File tree

3 files changed

+20
-13
lines changed

3 files changed

+20
-13
lines changed

src/components/Review.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class Review extends Component {
7272

7373
delete = () => {
7474
this.closeDeleteConfirmation()
75-
this.props.delete(this.props.review.id, this.props.orderBy).catch(e => {
75+
this.props.delete(this.props.review.id).catch(e => {
7676
if (find(e.graphQLErrors, { message: 'unauthorized' })) {
7777
alert('👮‍♀️✋ You can only delete your own reviews!')
7878
}
@@ -181,8 +181,7 @@ class Review extends Component {
181181
Review.propTypes = {
182182
review: propType(REVIEW_ENTRY).isRequired,
183183
favorite: PropTypes.func.isRequired,
184-
user: PropTypes.object,
185-
orderBy: PropTypes.string.isRequired
184+
user: PropTypes.object
186185
}
187186

188187
const FAVORITE_REVIEW_MUTATION = gql`
@@ -240,7 +239,7 @@ const DELETE_REVIEW_MUTATION = gql`
240239

241240
const withDeleteMutation = graphql(DELETE_REVIEW_MUTATION, {
242241
props: ({ mutate }) => ({
243-
delete: (id, orderBy) =>
242+
delete: id =>
244243
mutate({
245244
variables: { id },
246245
optimisticResponse: {
@@ -249,13 +248,21 @@ const withDeleteMutation = graphql(DELETE_REVIEW_MUTATION, {
249248
update: store => {
250249
const query = {
251250
query: REVIEWS_QUERY,
252-
variables: { limit: 10, orderBy }
251+
variables: { limit: 10, orderBy: 'createdAt_DESC' }
253252
}
254253

255254
let data = store.readQuery(query)
256255
remove(data.reviews, { id })
257256
store.writeQuery({ ...query, data })
258257

258+
query.variables.orderBy = 'createdAt_ASC'
259+
260+
try {
261+
data = store.readQuery(query)
262+
remove(data.reviews, { id })
263+
store.writeQuery({ ...query, data })
264+
} catch (e) {}
265+
259266
data = store.readQuery({ query: READ_USER_FAVORITES })
260267
remove(data.currentUser.favoriteReviews, { id })
261268
store.writeQuery({ query: READ_USER_FAVORITES, data })

src/components/ReviewForm.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,14 @@ const withAddReview = graphql(ADD_REVIEW_MUTATION, {
162162
variables: { limit: 10, orderBy: 'createdAt_DESC' }
163163
}
164164

165-
const data = store.readQuery(query)
165+
let data = store.readQuery(query)
166166
data.reviews.unshift(newReview)
167167
store.writeQuery({ ...query, data })
168+
169+
query.variables.orderBy = 'createdAt_ASC'
170+
data = store.readQuery(query)
171+
data.reviews.push(newReview)
172+
store.writeQuery({ ...query, data })
168173
}
169174
})
170175
}

src/components/ReviewList.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,14 @@ class ReviewList extends Component {
3232
}
3333

3434
render() {
35-
const { reviews, user, orderBy } = this.props
35+
const { reviews, user } = this.props
3636

3737
return (
3838
<div className="Reviews-list">
3939
<div className="Reviews-content">
4040
{reviews &&
4141
reviews.map(review => (
42-
<Review
43-
key={review.id}
44-
review={review}
45-
user={user}
46-
orderBy={orderBy}
47-
/>
42+
<Review key={review.id} review={review} user={user} />
4843
))}
4944
</div>
5045
<div className="Spinner" />

0 commit comments

Comments
 (0)