@@ -550,18 +550,25 @@ Sefaria = extend(Sefaria, {
550
550
) ;
551
551
const mergeTextInt = mergeText ? 1 : 0 ;
552
552
const return_format_string = ( return_format ) ? `&return_format=${ return_format } ` : '' ;
553
+ versions . sort ( ) ;
553
554
const url = `${ host } ${ endPoint } ${ ref } ?version=${ versions . join ( '&version=' ) } &fill_in_missing_segments=${ mergeTextInt } ${ return_format_string } ` ;
554
555
return url ;
555
556
} ,
556
557
_textsStore : { } ,
558
+ _textsStoreSet : function ( key , value ) {
559
+ this . _textsStore [ key ] = value ;
560
+ } ,
557
561
getTextsFromAPIV3 : async function ( ref , requiredVersions , mergeText , return_format ) {
558
562
// ref is segment ref or bottom level section ref
559
- // requiredVersions is array of objects that can have languageFamilyName and versionTitle
563
+ // requiredVersions is an array of objects that can have languageFamilyName and versionTitle
560
564
const url = Sefaria . makeUrlForAPIV3Text ( ref , requiredVersions , mergeText , return_format ) ;
561
565
const apiObject = await Sefaria . _cachedApiPromise ( { url : url , key : url , store : Sefaria . _textsStore } ) ;
562
- this . _textsStore [ ref ] = apiObject ;
563
566
return apiObject ;
564
567
} ,
568
+ _makeV3VersionsUrlCacheKey : function ( ref , versions ) {
569
+ versions . map ( version => version . isPrimary ? { languageFamilyName : 'primary' } : version ) ;
570
+ return Sefaria . makeUrlForAPIV3Text ( ref , versions , true , 'wrap_all_entities' )
571
+ } ,
565
572
getAllTranslationsWithText : async function ( ref ) {
566
573
let returnObj = await Sefaria . getTextsFromAPIV3 ( ref , [ { languageFamilyName : 'translation' , versionTitle : 'all' } ] , false ) ;
567
574
return Sefaria . _sortVersionsIntoBuckets ( returnObj . versions ) ;
@@ -652,6 +659,7 @@ Sefaria = extend(Sefaria, {
652
659
en = en || { } ;
653
660
let data = await Sefaria . _getPrimaryAndTranslationText ( ref , he , en , translationLanguagePreference ) ;
654
661
const isDataForSegment = data . textDepth === data . sections . length ;
662
+ debugger ;
655
663
if ( withContext && isDataForSegment ) {
656
664
const { text, he, alts} = await Sefaria . getTextFromCurrVersions ( data . sectionRef , currVersions , translationLanguagePreference ) ;
657
665
data = {
@@ -3351,10 +3359,13 @@ Sefaria.unpackDataFromProps = function(props) {
3351
3359
for ( let i = 0 ; i < initialPanels . length ; i ++ ) {
3352
3360
let panel = initialPanels [ i ] ;
3353
3361
if ( panel . text ) {
3362
+ const urlKey = Sefaria . _makeV3VersionsUrlCacheKey ( panel . text . ref , panel . text . versions )
3363
+ Sefaria . _textsStoreSet ( urlKey , panel . text ) ;
3364
+
3354
3365
let settings = { context : 1 , enVersion : panel . enVersion , heVersion : panel . heVersion } ;
3355
3366
//save versions first, so their new format is also saved on text cache
3356
3367
if ( panel . text ?. versions ?. length ) {
3357
- let versions = Sefaria . _saveVersions ( panel . text . sectionRef , panel . text . available_versions ) ;
3368
+ let versions = Sefaria . _saveVersions ( panel . text . sectionRef , panel . text . versions ) ;
3358
3369
panel . text . versions = Sefaria . _makeVersions ( versions , false ) ;
3359
3370
}
3360
3371
0 commit comments