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