feat(leads): implement reactive search for exhibitors and lead tracking

- Implemented V3-style reactive search (Local Cache -> Remote Revalidation) for exhibitors.
- Standardized search fields to 'name' for Exhibits and 'event_badge_full_name' for Lead Tracking.
- Refactored Leads UI with standardized search components and grid layout.
- Updated event routing to exclusively use string-based IDs (Triple-ID pattern).
- Hardened 'ae_EventSession' type definitions to handle null values from V3 API/Dexie.
This commit is contained in:
Scott Idem
2026-01-28 12:05:42 -05:00
parent f145b4dcac
commit cc3a6b0f59
11 changed files with 937 additions and 42 deletions

View File

@@ -209,6 +209,18 @@ const events_local_data_struct: key_val = {
refresh_interval__tracking_li: 30000, // 30 seconds
// Standardized Search Pattern 2026-01-28
search_version: 0,
qry__remote_first: false,
qry__search_text: '',
qry__sort_order: 'name_asc',
// Standardized Search Pattern (Tracking) 2026-01-28
tracking__search_version: 0,
tracking__qry__remote_first: false,
tracking__qry__search_text: '',
tracking__qry__sort_order: 'created_desc',
// The entered_passcode is the exhibit booths shared passcode for staff. This is used to initially access the lead retrieval service.
entered_passcode: null,
@@ -696,4 +708,4 @@ const tmp__events_trig_kv: key_val = {};
// 'a-rand-id-6': Promise.resolve('This is a test promise.'),
// },
// };
export const events_trig_kv = writable(tmp__events_trig_kv);
export const events_trig_kv = writable(tmp__events_trig_kv);