LucasWerkmeister added a comment.

  Yeah, I think that’s it. Hook arguments for a new statement (on test 
wikidata, logged with `mw.hook( 'wikibase.statement.saved' ).add( console.log 
)`):
  
    Q117701
    Q117701$d18c20ce-4a85-13a1-7ce8-0ba5fd15c69b
    null
    Object { _claim: {…}, _references: {…}, _rank: 1 }
  
  Tainted References’ `MWHookHandler`:
  
        private addSaveHook( store: Store<Application> ): void {
                this.mwHooks( 'wikibase.statement.saved' ).add(
                        ( _entityId: string, statementId: string, oldStatement: 
Statement, newStatement: Statement ) => {
                                if ( store.state.statementsTaintedState[ 
statementId ] ) {
                                        store.dispatch( 
STATEMENT_TAINTED_STATE_UNTAINT, statementId );
                                } else if ( this.taintedChecker.check( 
oldStatement, newStatement ) ) {
                                        store.dispatch( 
STATEMENT_TAINTED_STATE_TAINT, statementId );
                                }
                        },
                );
                this.mwHooks( 'wikibase.statement.saved' ).add(
                        ( _entityId: string, _statementId: string, 
oldStatement: Statement, newStatement: Statement ) => {
                                this.statementTracker.trackChanges( 
oldStatement, newStatement );
                        },
                );
        }
  
  The `TaintedChecker`:
  
        public check( oldStatement: Statement, newStatement: Statement ): 
boolean {
                return !( oldStatement.getClaim().getMainSnak().equals( 
newStatement.getClaim().getMainSnak() ) ) &&
                        oldStatement.getReferences().equals( 
newStatement.getReferences() ) &&
                        !oldStatement.getReferences().isEmpty();
        }
  
  The `StatementTracker`:
  
        public trackChanges( oldStatement: Statement, newStatement: Statement 
): void {
                const referenceChangeCount = 
this.refChangeCounter.countOldReferencesRemovedOrChanged(
                        oldStatement.getReferences(),
                        newStatement.getReferences(),
                );
                const oldRefCount = oldStatement.getReferences().length;
                const newRefCount = newStatement.getReferences().length;
                // ...
        }
  
  Nothing here is prepared for the `oldStatement` being `null`.

TASK DETAIL
  https://phabricator.wikimedia.org/T250070

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: LucasWerkmeister
Cc: Nikki, Aklapper, LucasWerkmeister, EgbeRef, Vaibhav0199, Sarai-WMDE, 
Tinzawoo533, darthmon_wmde, Onmir, DannyS712, Nandana, Mh-3110, Amorymeltzer, 
Lahi, Gq86, GoranSMilovanovic, Jayprakash12345, QZanden, enigmaeth, rohitt, 
LawExplorer, _jensen, rosalieper, Scott_WUaS, Dixtosa, Wikidata-bugs, aude, 
Dinoguy1000, Lydia_Pintscher, Mbch331
_______________________________________________
Wikidata-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to