feat(tasks): open a checker inbox entry in a popup instead of a page
Clicking a row navigated away to its own page, costing the checker the list and whatever search they had set up. It now opens in a dialog over the list, the same pattern the Disbursement and Closure Requests tabs already use. ViewCheckerInboxComponent gained the optional MatDialogRef/MAT_DIALOG_DATA pair rather than being duplicated, so the direct route still works for a bookmarked link. Two differences follow from being a dialog: - the list rows carry only summary fields, so the detail (which is what has commandAsJson) is fetched here; by route it stays resolver-provided. The template reads checkerInboxDetail.* unguarded, so it is now behind an @if with a loading state -- otherwise a dialog would render against undefined. - commandAsJson is absent on some entries (a DELETE carries no payload) and JSON.parse(undefined) throws. By route that broke the page; in a dialog it would have left an empty shell open. Parsing is now guarded. The list only reloads when something was actually actioned, since reload() re-navigates the route and would otherwise discard the checker's search on a plain close. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-6
@@ -155,12 +155,7 @@
|
||||
<td mat-cell *matCellDef="let makerChecker">{{ makerChecker.entityName }}</td>
|
||||
</ng-container>
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr
|
||||
mat-row
|
||||
*matRowDef="let row; columns: displayedColumns"
|
||||
[routerLink]="[row.id, 'view']"
|
||||
class="table-row"
|
||||
></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" (click)="viewEntry(row)" class="table-row"></tr>
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user