Skip to content

Commit 580678f

Browse files
authored
Merge pull request #2247 from Sefaria/rtl-cache-ssr
Rtl cache ssr
2 parents bbc24b8 + 14a350a commit 580678f

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

static/js/sefaria/sefaria.js

+14-3
Original file line numberDiff line numberDiff line change
@@ -548,21 +548,29 @@ Sefaria = extend(Sefaria, {
548548
const versions = requiredVersions.map(obj =>
549549
Sefaria.makeParamsStringForAPIV3(obj.languageFamilyName, obj.versionTitle)
550550
);
551+
versions.sort();
552+
551553
const mergeTextInt = mergeText ? 1 : 0;
552554
const return_format_string = (return_format) ? `&return_format=${return_format}` : '';
553555
const encodedRef = Sefaria.normRef(ref);
554556
const url = `${host}${endPoint}${encodedRef}?version=${versions.join('&version=')}&fill_in_missing_segments=${mergeTextInt}${return_format_string}`;
555557
return url;
556558
},
557559
_textsStore: {},
560+
_textsStoreSet: function(key, value) {
561+
this._textsStore[key] = value;
562+
},
558563
getTextsFromAPIV3: async function(ref, requiredVersions, mergeText, return_format) {
559564
// ref is segment ref or bottom level section ref
560-
// requiredVersions is array of objects that can have languageFamilyName and versionTitle
565+
// requiredVersions is an array of objects that can have languageFamilyName and versionTitle
561566
const url = Sefaria.makeUrlForAPIV3Text(ref, requiredVersions, mergeText, return_format);
562567
const apiObject = await Sefaria._cachedApiPromise({url: url, key: url, store: Sefaria._textsStore});
563-
this._textsStore[ref] = apiObject;
564568
return apiObject;
565569
},
570+
_makeV3VersionsUrlCacheKey: function(ref, versions) {
571+
versions.map(version => version.isPrimary ? { languageFamilyName: 'primary' } : version);
572+
return Sefaria.makeUrlForAPIV3Text(ref, versions, true, 'wrap_all_entities')
573+
},
566574
getAllTranslationsWithText: async function(ref) {
567575
let returnObj = await Sefaria.getTextsFromAPIV3(ref, [{languageFamilyName: 'translation', versionTitle: 'all'}], false);
568576
return Sefaria._sortVersionsIntoBuckets(returnObj.versions);
@@ -3352,10 +3360,13 @@ Sefaria.unpackDataFromProps = function(props) {
33523360
for (let i = 0; i < initialPanels.length; i++) {
33533361
let panel = initialPanels[i];
33543362
if (panel.text) {
3363+
const urlKey = Sefaria._makeV3VersionsUrlCacheKey(panel.text.ref, panel.text.versions)
3364+
Sefaria._textsStoreSet(urlKey, panel.text);
3365+
33553366
let settings = {context: 1, enVersion: panel.enVersion, heVersion: panel.heVersion};
33563367
//save versions first, so their new format is also saved on text cache
33573368
if(panel.text?.versions?.length){
3358-
let versions = Sefaria._saveVersions(panel.text.sectionRef, panel.text.available_versions);
3369+
let versions = Sefaria._saveVersions(panel.text.sectionRef, panel.text.versions);
33593370
panel.text.versions = Sefaria._makeVersions(versions, false);
33603371
}
33613372

0 commit comments

Comments
 (0)