MCPcopy Index your code
hub / github.com/plotly/dash / prunePersistence

Function prunePersistence

dash/dash-renderer/src/persistence.js:461–530  ·  view source on GitHub ↗
(layout, newProps, dispatch)

Source from the content-addressed store, hash-verified

459 * but not for props nested inside children
460 */
461export function prunePersistence(layout, newProps, dispatch) {
462 const {
463 canPersist,
464 id,
465 props,
466 persistence,
467 persisted_props,
468 persistence_type,
469 element
470 } = getProps(layout);
471
472 const getFinal = (propName, prevVal) =>
473 propName in newProps ? newProps[propName] : prevVal;
474 const finalPersistence = getFinal('persistence', persistence);
475
476 if (!canPersist || !(persistence || finalPersistence)) {
477 return newProps;
478 }
479
480 const finalPersistenceType = getFinal('persistence_type', persistence_type);
481 const finalPersistedProps = getFinal('persisted_props', persisted_props);
482 const persistenceChanged =
483 finalPersistence !== persistence ||
484 finalPersistenceType !== persistence_type ||
485 finalPersistedProps !== persisted_props;
486
487 const notInNewProps = persistedProp =>
488 !(persistedProp.split('.')[0] in newProps);
489
490 const update = {};
491
492 let depersistedProps = props;
493
494 if (persistenceChanged && persistence) {
495 // clear previously-applied persistence
496 const storage = getStore(persistence_type, dispatch);
497 forEach(
498 persistedProp =>
499 modProp(
500 getValsKey(id, persistedProp, persistence),
501 storage,
502 element,
503 props,
504 persistedProp,
505 update,
506 UNDO
507 ),
508 filter(notInNewProps, persisted_props)
509 );
510 depersistedProps = mergeRight(props, update);
511 }
512
513 if (finalPersistence && persistenceChanged) {
514 const finalStorage = getStore(finalPersistenceType, dispatch);
515 // apply new persistence
516 forEach(
517 persistedProp =>
518 modProp(

Callers 1

applyPropsFunction · 0.90

Calls 5

getFinalFunction · 0.85
getStoreFunction · 0.85
modPropFunction · 0.85
getValsKeyFunction · 0.85
getPropsFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…