← Back to Blog

One-Tap Copy Codes, a Heatmap That Works & an Accessible Cancel Dialog

Production releases are usually a mix of headline features and quiet quality work. This one is almost entirely the quiet kind — but each piece removes a real point of friction. You can now copy your booking reference and access code with a single tap, the radar heatmap finally renders instead of throwing an error, and cancelling a booking from your wallet works the same accessible way it does from the bookings page.

Every booking card at /bookings shows two useful identifiers: a short human-readable reference number like CHG-042, and an access code like CP-XXXXXXXX used to start a charging session. Until now, copying either one meant selecting the text by hand — fiddly on mobile, easy to mistype, and a small annoyance every time you wanted to send the code to the provider. Both are now one tap away. A compact "Copy" pill sits next to the booking reference number in the card header, and a second one sits inline next to the access code in the detail row. Tap it and the value lands on your clipboard, with the button flipping to "Copied" for two seconds so you know it took. You can paste the reference into a support ticket without reading out 36 characters.

The copy button follows the existing card design language: a small pill in the primary color, consistent with the reference number and status badges already on the card. It also meets the platform WCAG touch-target standard, so it is easy to hit on a phone while standing at a charger.

The second fix is on the radar map at /app, where a Heatmap toggle surfaces a predictive grid-demand layer from the backend. The layer should overlay density on the map — blue through cyan up to red at the busiest pixels. Previously, activating it could trigger a reference error because of an uninitialized map library instance.

The fix swaps the invalid reference for the standard map instance used across the rest of the application. Toggling Heatmap now actually renders the overlay as expected.

The provider dashboard received a guard of its own. The "Recent Earnings" list computed a currency equivalent for each row, and when a row arrived without an amount, the card could render an invalid number. The row now falls back to 0.00 when the amount is missing and skips invalid dates, so the list stays clean even when records are incomplete.

Finally, the wallet page listed active bookings with a cancel button that used a browser prompt — inconsistent with the platform, where cancellation flows through the themed, keyboard-accessible confirmation dialog. The wallet now uses that same dialog, complete with optional cancel reason and proper focus handling. One consistent, accessible cancellation experience across the bookings page and the wallet.

None of these are headline features. They are the small fixes that make a marketplace feel solid: a code you can copy in one tap, a map layer that actually draws, a money figure that never says NaN, and one cancellation flow across every surface of the app. The best kind of release is the one you never have to think about — everything just works.