Exposed transaction dataset for useChange and added didChange to transaction dataset

main
Jackson Morgan 3 weeks ago
parent 17a1d1d587
commit b309d3a440
  1. 1
      packages/react/src/methods/change/types.ts
  2. 4
      packages/react/src/methods/change/useChangeMatchObject.ts
  3. 4
      packages/react/src/methods/change/useChangeMatchSubject.ts
  4. 4
      packages/react/src/methods/change/useChangeSubject.ts
  5. 13
      packages/subscribable-dataset/src/TransactionDataset.ts
  6. 1
      packages/subscribable-dataset/src/types.ts

@ -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[]>(
);
return useMemo(
() => [ldObject, setData, commitData],
[ldObject, setData, commitData],
() => [ldObject, setData, commitData, transactionDataset],
[ldObject, setData, commitData, transactionDataset],
);
};
}

@ -76,8 +76,8 @@ export function createUseChangeSubject<Plugins extends ConnectedPlugin[]>(
);
return useMemo(
() => [ldObject, setData, commitData],
[ldObject, setData, commitData],
() => [ldObject, setData, commitData, transactionDataset],
[ldObject, setData, commitData, transactionDataset],
);
};
}

@ -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;
}

Loading…
Cancel
Save