[PULSE-53] Campaigns block improvements #23
Reference in New Issue
Block a user
No description provided.
Delete Branch "staging"
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?
Work Item
PULSE-53
Summary
Changes
campaigns?: CampaignStat[]prop; campaigns table in PDF export; campaigns sheet in Excel export; use getReferrerDisplayName for source displayTest Plan
Greptile Overview
Greptile Summary
This PR enhances the Campaigns dashboard block with sortable columns, source favicons with display names, a pageviews column, and comprehensive export functionality (CSV from the block, PDF/Excel from the main Export modal). The loading state was improved from a spinner to a skeleton loader, empty values now display em-dash (—), and rows use stable keys for better React reconciliation.
Key changes:
getReferrerFaviconandgetReferrerDisplayNameutilities, matching the Top Referrers patternConfidence Score: 4/5
components/dashboard/Campaigns.tsxfor the CSV export escaping issueImportant Files Changed
Sequence Diagram
4 files reviewed, 1 comment
Edit Code Review Agent Settings | Greptile
CSV values with special characters (
,"newlines) or formula injection chars (=+-@) aren't escaped, which could break CSV parsing or create security issuesPrompt To Fix With AI