feat(dashboard): mark built-in properties with $ in the property picker - #459
Conversation
Built-in geo/device/session columns (country, os, region, browser…) and built-in profile fields render with the same name as a client-sent property (built-in geo-IP `country` vs a `properties.country` the SDK sends), so the picker shows two identical "country" rows with no way to tell which is which. Prefix the built-ins (anything not under `properties.` / `profile.properties.`) with a leading `$` (reserved-property convention) and label their subtext "OpenPanel". Display only: the selected value and the filter it produces are the raw property, unchanged; search still matches.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe combobox now centralizes property action formatting. Reserved properties receive ChangesProperty action formatting
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This localized change clarifies built-in versus client-sent properties in the picker without changing saved report values or generated filters, so no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Problem
The property picker renders OpenPanel's built-in columns (geo-IP
country,os,region,city,browser,device…) and client-sent properties (properties.countryetc.) with the same label. When a client sends a property that shares a built-in name, the picker shows two identical "country" rows — one for the geo-IP column, one forproperties.country— with no way to tell them apart.Fix
Mark built-in ("reserved") properties — anything not under
properties./profile.properties.— with a leading$(reserved-property convention), subtext "OpenPanel":Display only — the selected
value(and the filter/breakdown it produces) is the raw property, unchanged, so saved reports keep working; search still matches ($countrycontains "country"). Applies to both the event and profile property lists.One file:
apps/start/src/components/report/sidebar/PropertiesCombobox.tsx.Summary by CodeRabbit
$prefix and panel description.