@ -8,6 +8,7 @@ export type useChangeReturn<Type, Plugins extends ConnectedPlugin[]> = [
Type,
useChangeSetData<Type, Plugins>,
useChangeCommitData<Plugins>,
transactionDataset: ConnectedLdoTransactionDataset<Plugins>,
];
type BaseOtherType = LdoBase | LdSet<LdoBase>;
@ -59,8 +59,8 @@ export function createUseChangeMatchObject<Plugins extends ConnectedPlugin[]>(
);
return useMemo(
() => [ldObject, setData, commitData],
[ldObject, setData, commitData],
() => [ldObject, setData, commitData, transactionDataset],
[ldObject, setData, commitData, transactionDataset],
};
}
@ -61,8 +61,8 @@ export function createUseChangeMatchSubject<Plugins extends ConnectedPlugin[]>(
@ -76,8 +76,8 @@ export function createUseChangeSubject<Plugins extends ConnectedPlugin[]>(
@ -287,4 +287,17 @@ export class TransactionDataset<InAndOutQuad extends BaseQuad = BaseQuad>
public getChanges(): DatasetChanges<InAndOutQuad> {
return this.datasetChanges;
/**
* Returns true if the transaction is holding changes that have yet to be committed.
* Returns false if no changes have yet been made to it.
*/
public hasChanges(): boolean {
return (
((this.datasetChanges.added && this.datasetChanges.added.size > 0) ||
(this.datasetChanges.removed &&
this.datasetChanges.removed.size > 0)) ??
false
@ -166,4 +166,5 @@ export interface ITransactionDataset<InAndOutQuad extends BaseQuad = BaseQuad>
rollback(): void;
commit(): void;
getChanges(): DatasetChanges<InAndOutQuad>;
hasChanges(): boolean;