fix/audit-batch-1 #11
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/audit-batch-1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
clickable: truefrom rows with no onclick c8b4c0d1e3P1 from the audit (was P1-03 / `TableRow{clickable:true}` without onclick). Affected ~20 rows across dashboard, tickets, time, contacts, contracts, billing, assets, KB, admin, portal pages: rows showed `cursor: pointer` on hover but had no `onclick` wired, so users clicked expecting navigation and nothing happened. Caller-side fix per the audit's option (alternative was a component-level prop API change which would touch 20+ call sites and risk regression on the rows that ARE legitimately clickable). Surgically removes `clickable: true` only from rows with no onclick within the next 8 lines; rows that have a real onclick are untouched. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>P1-10 from the audit. `My Tickets`, `Submit Ticket`, `Invoices`, `Knowledge Base` rendered the page title both via the `PortalLayout { title: "..." }` prop AND a page-level `<h1>` immediately below it. Drop the layout-prop side on these 4 pages and keep the page-level h1, which is what users actually look at (and which often appears in a flex row with action buttons like "New Ticket"). `PortalHomePage`, `PortalTicketDetailPage`, `PortalInvoiceDetailPage` were not duplicating (their layout title and page h1 carried different content) and are unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>Follow-up to the TableRow honest-cursor pass. PR-D removed the false `cursor-pointer` from rows that had no onclick wired, but the dashboard's Recent Tickets, SLA Warnings, and Recent Time Entries rows *should* be clickable - they reference real tickets / time entries the user expects to drill into. Add the missing handlers: - RecentTicketRow -> Route::TicketDetail { id: <number> } - SlaWarningItem -> Route::TicketDetail { id: <ticket> } (also a div, so its own cursor-pointer + hover:opacity-80) - TimeEntryRow -> Route::TicketDetail when the description leads with "TKT-...:", else Route::TimeEntryList The `clickable: true` flag is restored on the two TableRow callers since they now have real onclicks. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>Restores the row-level click affordance that PR-D removed, this time with real navigation. For each row component, pull `use_navigator()` and a clone of `props.id`, then on the TableRow set `clickable: true` and `onclick: move |_| { navigator.push(Route::XDetail { id }); }`. Coverage: - TicketRow -> Route::TicketDetail - CompanyRow -> Route::CompanyDetail - ContactRow -> Route::ContactDetail - ContractRow -> Route::ContractDetail - InvoiceRow -> Route::InvoiceDetail - AssetRow -> Route::AssetDetail KB articles, admin tenants, and portal tickets are inline TableRow blocks with hardcoded mock IDs (no extracted *Row component); deferred until they're loop-driven from real data. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>The previous commit's `let navigator = use_navigator();` binding worked for the simple `move |_|` onclick closures but the outer `move |e| { spawn(async move {...}) }` shape can't reliably propagate the captured Navigator into the inner async block — rustc resolves `navigator` to the prelude `fn item` instead. Switch the four stub-submit handlers to `dioxus::prelude::navigator().push(...)` which calls the prelude function inside the async future, sidestepping the capture-chain entirely. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>