This PR resolves two UX issues across the Quipay frontend.
Long blockchain addresses and transaction hashes are now copyable with a single click. A new reusable CopyButton component has been added that:
- Shows a clipboard icon that toggles to a checkmark on success
- Copies the value using the
navigator.clipboardAPI with a fallback for older browsers - Provides accessible
aria-labelandtitleattributes - Resets the feedback indicator after 2 seconds
The component is used in:
EmployerDashboard- employee wallet addresses in the active streams listWorkerDashboard- employer addresses on stream cards, completed stream cards, and transaction hashes in the withdrawal history table
Several button elements were missing the type="button" attribute. Without it, buttons inside or near forms default to type="submit", causing unexpected form submissions. All standalone buttons have been updated with the correct attribute.
- Resolved merge conflicts with upstream/main (incorporating CancelStreamModal, buildCancelStreamTx, StreamTimeline, and skeleton loading components from upstream)
- Applied prettier formatting fixes to satisfy the CI check
Closes #453 Closes #454