fix(core): resolve 68 compiler errors and stabilize Svelte 5 reactivity

- Fixed 'Captured initial value' warnings in 65+ components by implementing
  proper sync effects with 'untrack' and derived states.
- Hardened Event Settings JSON editors using a temporary string-buffer pattern
  to safely decouple object-based data from CodeMirror's string requirements.
- Resolved strict TypeScript mismatches across core routes (Accounts, Sites, etc.)
  and improved property indexing safety in views.
- Patched Flowbite-Svelte Drawer transitions for Svelte 5 compatibility using
  prop spreading.
- Added comprehensive safety comments to high-risk reactivity blocks.
- Synchronized 'ae_types.ts' with V3 backend models.
This commit is contained in:
Scott Idem
2026-02-08 16:05:35 -05:00
parent 356eda5ab4
commit 88bc18cf15
64 changed files with 1175 additions and 1014 deletions

View File

@@ -336,7 +336,7 @@ export interface Device {
}
export interface Exhibit {
id?: number;
id: string;
id_random: string;
event_exhibit_id: string;
event_exhibit_id_random: string;
@@ -374,7 +374,7 @@ export interface Exhibit {
}
export interface Exhibit_tracking {
id?: number;
id: string;
id_random: string;
event_exhibit_tracking_id: string;
event_exhibit_tracking_id_random: string;
@@ -384,37 +384,42 @@ export interface Exhibit_tracking {
event_badge_id: string;
event_badge_id_random: string;
event_person_id: string;
event_person_id_random: null | string; // Is this needed?
event_person_id_random?: string;
external_person_id: null | string; // This is an email address
event_id: string;
event_id_random: string;
exhibitor_notes: null | string;
external_person_id?: null | string; // This is an email address
responses_json: null | string;
data_json: null | string;
exhibitor_notes?: null | string;
responses_json?: null | string;
data_json?: null | string;
event_exhibit_name: string; // Extra field for convenience
event_badge_title_names: null | string;
event_badge_title_names?: null | string;
event_badge_given_name: string;
event_badge_family_name: null | string;
event_badge_designations: null | string;
event_badge_family_name?: null | string;
event_badge_designations?: null | string;
event_badge_full_name: string;
event_badge_full_name_override: null | string;
event_badge_full_name_override?: null | string;
event_badge_professional_title: null | string;
event_badge_professional_title_override: null | string;
event_badge_professional_title?: null | string;
event_badge_professional_title_override?: null | string;
event_badge_affiliations: null | string;
event_badge_affiliations_override: null | string;
event_badge_affiliations?: null | string;
event_badge_affiliations_override?: null | string;
event_badge_email: null | string;
event_badge_email_override: null | string;
event_badge_email?: null | string;
event_badge_email_override?: null | string;
event_badge_location: null | string;
event_badge_location_override: null | string;
event_badge_location?: null | string;
event_badge_location_override?: null | string;
event_badge_country: null | string;
event_badge_country?: null | string;
default_qry_str?: string | null;
enable?: null | boolean;
hide?: null | boolean;
@@ -430,30 +435,30 @@ export interface Exhibit_tracking {
// tmp_sort_2?: null|string;
}
export interface File {
export interface EventFile {
id: string;
id_random: string;
event_file_id: string;
// event_file_id_random: string;
event_file_id_random?: string;
hosted_file_id: string;
// hosted_file_id_random: string;
hosted_file_id_random?: string;
hash_sha256: string;
for_type?: string;
for_id?: string;
// for_id_random?: string;
for_id_random?: string;
event_id: string;
// event_id_random: string;
event_id_random?: string;
event_session_id?: string;
// event_session_id_random?: string;
event_session_id_random?: string;
event_presentation_id?: string;
// event_presentation_id_random?: string;
event_presentation_id_random?: string;
event_presenter_id?: string;
// event_presenter_id_random?: string;
event_presenter_id_random?: string;
event_location_id?: string;
// event_location_id_random?: string;
event_location_id_random?: string;
filename: string;
extension: string;
@@ -810,7 +815,7 @@ export class MySubClassedDexie extends Dexie {
device!: Table<Device>;
exhibit!: Table<Exhibit>;
exhibit_tracking!: Table<Exhibit_tracking>;
file!: Table<File>;
file!: Table<EventFile>;
location!: Table<Location>;
presentation!: Table<Presentation>;
presenter!: Table<Presenter>;