Skip to content

feat(audit-trail): complete capabilities tracking feature#198

Draft
alexruzenhack wants to merge 1 commit into
feat/audit-trail-rolesfrom
feat/audit-trail-capabilities
Draft

feat(audit-trail): complete capabilities tracking feature#198
alexruzenhack wants to merge 1 commit into
feat/audit-trail-rolesfrom
feat/audit-trail-capabilities

Conversation

@alexruzenhack
Copy link
Copy Markdown
Contributor

@alexruzenhack alexruzenhack commented May 19, 2026

Description of change

This PR finalizes the Audit Trail epic by introducing the Capabilities tracking view.

Key Features and Changes

  • Capabilities View: Added CapabilitiesView.tsx to list active and revoked capabilities held by addresses.
  • Mock Data Integration: Temporarily utilizing mockCapabilities.ts to populate the view. Note: This mock data is used intentionally because the on-chain capability resolution is pending a future SDK release. It allows us to merge and test the UI in the meantime.

Screenshot

[Insert Screenshot of the Capabilities View]

@alexruzenhack alexruzenhack requested a review from a team as a code owner May 19, 2026 16:31
@vercel
Copy link
Copy Markdown

vercel Bot commented May 19, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
rebased-explorer Error Error May 21, 2026 4:58pm
5 Skipped Deployments
Project Deployment Actions Updated (UTC)
apps-ui-kit Ignored Ignored Preview May 21, 2026 4:58pm
iota-evm-bridge Skipped Skipped May 21, 2026 4:58pm
iota-multisig-toolkit Skipped Skipped May 21, 2026 4:58pm
iota-names Skipped Skipped May 21, 2026 4:58pm
wallet-dashboard Skipped Skipped May 21, 2026 4:58pm

Request Review

@vercel vercel Bot temporarily deployed to Preview – iota-evm-bridge May 19, 2026 16:31 Inactive
@vercel vercel Bot temporarily deployed to Preview – iota-names May 19, 2026 16:31 Inactive
@vercel vercel Bot temporarily deployed to Preview – wallet-dashboard May 19, 2026 16:31 Inactive
validUntil: Date | null;
}

export const mockCapabilities: Capability[] = [
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer Comment: // TODO: [Insert Issue #] Replace this mock data with real capability resolution once the SDK supports it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This must be removed.


return (
<Panel>
<div data-testid="tx">
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Must be data-testid="capabilities".

Comment on lines +121 to +137
<div className="inline-flex content-between items-center gap-x-2">
<Input
type={InputType.Text}
placeholder="Holder Address..."
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
/>

<div className="flex-shrink-0">
{' '}
{/* This wrapper prevents wrapping */}
<FiltersControl
filterValue={filterValue}
setFilterValue={setFilterValue}
/>
</div>
</div>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extract it to filter component.

Comment on lines +161 to +203
{(hasNextPage || (data && data?.pages.length > 1)) && (
<Pagination
hasFirst={currentPageState[filterValue] !== 0}
onNext={() => {
if (isPending || isFetching) {
return;
}

// Make sure we are at the end before fetching another page
if (
data &&
currentPageState[filterValue] === data?.pages.length - 1 &&
!isPending &&
!isFetching
) {
fetchNextPage();
}
dispatch({
type: PageAction.Next,

filterValue,
});
}}
hasNext={
(Boolean(hasNextPage) && Boolean(data?.pages[currentPage])) ||
currentPage < (data?.pages.length ?? 0) - 1
}
hasPrev={currentPageState[filterValue] !== 0}
onPrev={() =>
dispatch({
type: PageAction.Prev,

filterValue,
})
}
onFirst={() =>
dispatch({
type: PageAction.First,
filterValue,
})
}
/>
)}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extract to pagination component.

@alexruzenhack alexruzenhack force-pushed the feat/audit-trail-roles branch from 15bc5c1 to 8828603 Compare May 21, 2026 16:35
@alexruzenhack alexruzenhack force-pushed the feat/audit-trail-capabilities branch from 79f2be4 to 6b9ebe5 Compare May 21, 2026 16:43
@vercel vercel Bot temporarily deployed to Preview – iota-names May 21, 2026 16:43 Inactive
@vercel vercel Bot temporarily deployed to Preview – iota-evm-bridge May 21, 2026 16:43 Inactive
@vercel vercel Bot temporarily deployed to Preview – iota-multisig-toolkit May 21, 2026 16:43 Inactive
@vercel vercel Bot temporarily deployed to Preview – wallet-dashboard May 21, 2026 16:43 Inactive
@alexruzenhack alexruzenhack force-pushed the feat/audit-trail-roles branch from 96e99a1 to 9943bea Compare May 21, 2026 16:54
@alexruzenhack alexruzenhack force-pushed the feat/audit-trail-capabilities branch from 6b9ebe5 to 30d47a5 Compare May 21, 2026 16:57
@vercel vercel Bot temporarily deployed to Preview – iota-names May 21, 2026 16:57 Inactive
@vercel vercel Bot temporarily deployed to Preview – iota-evm-bridge May 21, 2026 16:57 Inactive
@vercel vercel Bot temporarily deployed to Preview – iota-multisig-toolkit May 21, 2026 16:57 Inactive
@vercel vercel Bot temporarily deployed to Preview – wallet-dashboard May 21, 2026 16:57 Inactive
queryFn: async () => {
if (!limit) {
// Do some validation at the runtime level for some extra type-safety
// https://tkdodo.eu/blog/react-query-and-type-script#type-safety-with-the-enabled-option
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants