Skip to content
This repository was archived by the owner on Jan 18, 2025. It is now read-only.

Commit d475cae

Browse files
committed
bite the bullet and pass the cache around to all the places
1 parent 848f9f0 commit d475cae

4 files changed

Lines changed: 21 additions & 21 deletions

File tree

src/resolver/url-match-pattern.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const URL_match_pattern: Resolver = {
6565
const id = applicable[0].value
6666
const ci = applicable[0].valueIsCaseInsensitive
6767

68-
return await this.getEntityByRegexedId(prop, id, ci)
68+
return this.getEntityByRegexedId(prop, id, ci)
6969
},
7070
getEntityByRegexedId: async function(prop, id, ci = false) {
7171
const cached = await this.checkIfCached(prop, id)
@@ -106,7 +106,7 @@ const URL_match_pattern: Resolver = {
106106
cache.externalIDCache = {}
107107
}
108108
cache.externalIDCache[this.formCacheKey(prop, id)] = entityId
109-
browser.storage.local.set(cache)
109+
return browser.storage.local.set(cache)
110110
}
111111
}
112112

src/sidebar/components/claims.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ import {Claim, renderStatement} from "../render-claims"
33

44
export interface ClaimsProps {
55
statements: {id: string, claims: Claim[]}[]
6+
renderingCache: any
67
}
78

89
// Integration based on https://reactjs.org/docs/integrating-with-other-libraries.html
9-
export const Claims = ({statements}: ClaimsProps) => {
10+
export const Claims = ({statements, renderingCache}: ClaimsProps) => {
1011
const reference = useRef<HTMLDivElement>(null)
1112
useEffect(() => {
1213
const rendered = statements
13-
.map(it => renderStatement(it.claims))
14+
.map(it => renderStatement(it.claims, renderingCache))
1415
.filter(Boolean)
1516
.map(claim => claim.rendered)
1617

src/sidebar/entity.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ function createReferenceItem(ref) {
189189
if (refthing.datavalue) {
190190
const refvalue = new DocumentFragment()
191191

192-
refvalue.append(...renderStatements(refthing, [], refthing.datavalue.type, 'reference', undefined))
192+
refvalue.append(...renderStatements(refthing, [], refthing.datavalue.type, 'reference', undefined, cache))
193193
refvalues.push(refvalue)
194194
}
195195
}
@@ -331,7 +331,7 @@ function updateView(id, useCache = true) {
331331

332332
const statementsToRender = getStatementsToRender(statements)
333333

334-
ReactDOM.render(<Claims statements={statementsToRender}/>, items, )
334+
ReactDOM.render(<Claims statements={statementsToRender} renderingCache={cache}/>, items, )
335335
renderFootnotes(content, collectFootnotes(statementsToRender))
336336
}
337337
if (e['senses']) {
@@ -584,7 +584,10 @@ function updateView(id, useCache = true) {
584584
}
585585
}
586586

587-
resolveBreadcrumbs(cache);
587+
// Let react render main set of claims first
588+
await delay(0)
589+
590+
resolveBreadcrumbs(cache)
588591

589592
resolveIdLinksPlaceholder();
590593
})();

src/sidebar/render-claims.ts

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
import {templates} from './components/templates.tpl'
22
import {filterNotEmpty} from '../core/collections'
3-
import {ApplyFormatters} from './formatters'
43
import {localLanguage} from '../core/env'
54

6-
const cache = {} //todo broken now!!
7-
85
const lang = localLanguage()
96

10-
117
function dateToString(value) {
128
const wiso = value.time
139
const prec = value.precision
@@ -99,7 +95,7 @@ function renderReferences(references) {
9995
])
10096
}
10197

102-
function renderQualifiers(scope, delta) {
98+
function renderQualifiers(scope, delta, renderingCache: any) {
10399
if (!(scope === 'statement' && typeof delta != 'undefined' && delta.hasOwnProperty('qualifiers'))) {
104100
return []
105101
}
@@ -109,7 +105,7 @@ function renderQualifiers(scope, delta) {
109105
const qvalues = []
110106
for (const qv of delta.qualifiers[prop]) {
111107
const qualvalue = new DocumentFragment()
112-
qualvalue.append(...renderStatements(qv, [], qv.snaktype, 'qualifier', undefined))
108+
qualvalue.append(...renderStatements(qv, [], qv.snaktype, 'qualifier', undefined, renderingCache))
113109
qvalues.push(qualvalue)
114110
}
115111

@@ -130,7 +126,7 @@ function renderIdLinks(valueType, snak) {
130126
return []
131127
}
132128

133-
function renderStatementCore(snak, type, scope, valueType) {
129+
function renderStatementCore(snak, type, scope, valueType, renderingCache: any) {
134130
if (type === 'preformatted') {
135131
return [snak.datavalue.value]
136132
}
@@ -147,7 +143,7 @@ function renderStatementCore(snak, type, scope, valueType) {
147143
const vid = snak.datavalue.value.id
148144
return filterNotEmpty([
149145
snak.datavalue.parents ? templates.breadcrumbsPlaceholder(snak.datavalue.parents) : null,
150-
templates.placeholder({entity: vid}, cache),
146+
templates.placeholder({entity: vid}, renderingCache),
151147
])
152148
}
153149
if (valueType === 'external-id') {
@@ -214,13 +210,13 @@ function renderStatementCore(snak, type, scope, valueType) {
214210
return []
215211
}
216212

217-
export function renderStatements(snak, references, type, scope, delta) {
213+
export function renderStatements(snak, references, type, scope, delta, renderingCache: any) {
218214
const valueType = snak.datatype ? snak.datatype : snak.datavalue.type
219215
return [
220-
...renderStatementCore(snak, type, scope, valueType),
216+
...renderStatementCore(snak, type, scope, valueType, renderingCache),
221217
...renderReferences(references),
222218
...renderIdLinks(valueType, snak),
223-
...renderQualifiers(scope, delta),
219+
...renderQualifiers(scope, delta, renderingCache),
224220
]
225221
}
226222

@@ -234,7 +230,7 @@ export interface Claim {
234230
// todo improve
235231
}
236232

237-
export function renderStatement(claims: Claim[]) {
233+
export function renderStatement(claims: Claim[], renderingCache: any) {
238234
if (!claims[0]?.mainsnak) return
239235

240236
const pid = claims[0].mainsnak.property
@@ -253,15 +249,15 @@ export function renderStatement(claims: Claim[]) {
253249
}
254250
}
255251

256-
thisvalue.append(...renderStatements(delta.mainsnak, refs, type, 'statement', delta))
252+
thisvalue.append(...renderStatements(delta.mainsnak, refs, type, 'statement', delta, renderingCache))
257253
values.push(thisvalue)
258254

259255
}
260256
}
261257
const statement = templates.remark({
262258
prop: templates.placeholder({
263259
entity: pid,
264-
}, cache),
260+
}, renderingCache),
265261
vals: values,
266262
id: pid,
267263
})

0 commit comments

Comments
 (0)