Skip to content

Commit f1463bb

Browse files
committed
fix(items): add some fidelity to unresolved zombie items
1 parent ddce469 commit f1463bb

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

clients/web/src/common/api/derivers/item.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ export function deriveItemData({
205205
authors: item?.preview?.authors || itemEnrichment?.authors || item?.authors || false,
206206
title: title({ item, itemEnrichment, node }),
207207
thumbnail: thumbnail({ item, itemEnrichment }),
208-
excerpt: excerpt({ item, itemEnrichment }),
208+
excerpt: excerpt({ item, itemEnrichment, node }),
209209
publisher: publisher({ item, itemEnrichment, passedPublisher }),
210210
publisherLogo: item?.domainMetadata?.logo || false,
211211
externalUrl: externalUrl({ item, itemEnrichment, utmId }),
@@ -302,12 +302,13 @@ function publisher({ item, itemEnrichment, passedPublisher }) {
302302
* @param {object} curatedInfo Additional information provided by the curation team
303303
* @returns {string} The most appropriate excerpt to show
304304
*/
305-
function excerpt({ item, itemEnrichment }) {
305+
function excerpt({ item, itemEnrichment, node }) {
306306
return (
307307
item?.preview?.excerpt ||
308308
itemEnrichment?.excerpt ||
309309
item?.collection?.excerpt ||
310310
item?.excerpt ||
311+
node?.url ||
311312
null
312313
)
313314
}

clients/web/src/common/api/derivers/list/image.spec.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@ describe('Saves - Image', () => {
8888
'https://pocket-image-cache.com/600x/filters:format(jpg):extract_focal()/https%3A%2F%2Fcdn.dribbble.com%2Fusers%2F59947%2Fscreenshots%2F16700535%2Fmedia%2F335d386abb459f49570030e830429cef.jpg'
8989
)
9090
expect(item.publisher).toBe('cdn.dribbble.com')
91-
expect(item.excerpt).toBeFalsy()
91+
expect(item.excerpt).toBe(
92+
'https://cdn.dribbble.com/users/59947/screenshots/16700535/media/335d386abb459f49570030e830429cef.jpg'
93+
)
9294
expect(item.saveUrl).toBe(expectedSaveUrl)
9395
expect(item.externalUrl).toBe(expectedExternalUrl)
9496
expect(item.readUrl).toBe(expectedReadUrl)

clients/web/src/common/api/queries/get-saved-items.js

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ const getSavedItemsQuery = gql`
1717
edges {
1818
cursor
1919
node {
20+
nodeId: id
21+
url
22+
title
2023
_createdAt
2124
_updatedAt
2225
status

clients/web/src/connectors/items/items-saved.state.js

+9-5
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ function* savedItemRequest(action) {
9999
const savedItemIds = edges
100100
.filter(validateEdge)
101101
.filter(removeStarterArticle)
102-
.map((edge) => edge?.node?.item?.itemId)
102+
.map((edge) => edge?.node?.item?.itemId ?? edge?.node?.nodeId)
103103

104104
const nodes = edges.reduce(getNodeFromEdge, {})
105105
const itemsById = edges.reduce(getItemFromEdge, {})
@@ -207,26 +207,30 @@ const removeStarterArticle = (edge) => !STARTER_ARTICLES.includes(edge?.node?.it
207207
const getNodeFromEdge = (previous, current) => {
208208
const cursor = current.cursor
209209
const { item, ...node } = current.node
210+
const itemId = node?.item?.itemId ?? node?.nodeId
210211
if (node.status === 'DELETED') return previous // REMOVE DELETED ITEMS FROM THE RESPONSE
211-
return { ...previous, [item.itemId]: { cursor, ...node } }
212+
return { ...previous, [itemId]: { cursor, ...node } }
212213
}
213214

214215
const getItemFromEdge = (previous, current) => {
215216
const { item, node } = deriveSavedItem(current.node)
217+
const itemId = node?.item?.itemId ?? node?.nodeId
216218
if (node.status === 'DELETED') return previous
217-
return { ...previous, [item.itemId]: item } // REMOVE DELETED ITEMS FROM THE RESPONSE
219+
return { ...previous, [itemId]: item } // REMOVE DELETED ITEMS FROM THE RESPONSE
218220
}
219221

220222
const getSearchNodeFromEdge = (previous, current) => {
221223
const { item, ...node } = current.node.savedItem
224+
const itemId = node?.item?.itemId ?? node?.nodeId
222225
if (node.status === 'DELETED') return previous
223-
return { ...previous, [item.itemId]: node } // REMOVE DELETED ITEMS FROM THE RESPONSE
226+
return { ...previous, [itemId]: node } // REMOVE DELETED ITEMS FROM THE RESPONSE
224227
}
225228

226229
const getSearchItemFromEdge = (previous, current) => {
227230
const { item, node } = deriveSavedItem(current.node.savedItem)
231+
const itemId = node?.item?.itemId ?? node?.nodeId
228232
if (node.status === 'DELETED') return previous
229-
return { ...previous, [item.itemId]: item } // REMOVE DELETED ITEMS FROM THE RESPONSE
233+
return { ...previous, [itemId]: item } // REMOVE DELETED ITEMS FROM THE RESPONSE
230234
}
231235

232236
/**

0 commit comments

Comments
 (0)