(core) Support 'new' row in anchor links.

Summary:
- Anchor links with row of 'new' could be created but weren't parsed or used
  correctly. This fixes it.
- Also adds UIRowId type for row IDs which includes the special 'new' row. It's
  already been used in places as `number|'new'`, this diff gives it a name usable in app/common
  (it doesn't touch another name, RowId, that's been available in app/client).

Test Plan: Added a test assert for anchor links to new row

Reviewers: alexmojaki

Reviewed By: alexmojaki

Differential Revision: https://phab.getgrist.com/D3039
This commit is contained in:
Dmitry S
2021-09-23 18:47:36 -04:00
parent 3c4d71aeca
commit fb583f303a
6 changed files with 42 additions and 25 deletions

View File

@@ -65,7 +65,7 @@ export interface WebHookSecret {
// An instance of this class should have .handle() called on it exactly once.
export class TriggersHandler {
// Converts a column ref to colId by looking it up in _grist_Tables_column
private _getColId: (rowId: (number | "new")) => string;
private _getColId: (rowId: number) => string|undefined;
constructor(private _activeDoc: ActiveDoc) {
}
@@ -82,7 +82,7 @@ export class TriggersHandler {
const triggersByTableRef = _.groupBy(triggersTable.getRecords(), "tableRef");
for (const [tableRef, triggers] of _.toPairs(triggersByTableRef)) {
const tableId = getTableId(Number(tableRef)); // groupBy makes tableRef a string
const tableId = getTableId(Number(tableRef))!; // groupBy makes tableRef a string
const tableDelta = summary.tableDeltas[tableId];
if (!tableDelta) {
continue; // this table was not modified by these actions