feat: Migrate ESLint to flat config and resolve initial linting errors
Migrated the ESLint configuration to the new flat config format () and addressed several initial linting errors. Key changes include: - Updated ESLint configuration to treat as warnings instead of errors. - Fixed errors in by declaring and . - Corrected error in by using instead of an out-of-scope . - Resolved error in by replacing the undefined directive with the component. - Addressed errors in by replacing with and with . - Fixed errors in by importing necessary modules (, , ) and adding missing props (, , , , ).
This commit is contained in:
66
TODO.md
66
TODO.md
@@ -4,17 +4,30 @@ This is a list of tasks to be completed before the next event/show/conference.
|
||||
|
||||
---
|
||||
|
||||
## Recent Accomplishments
|
||||
|
||||
- [x] **Refactoring:** Standardized data processing in `events`, `archives`, `posts`, and `sponsorships` modules using a new generic pattern.
|
||||
- [x] **Bug Fix:** Corrected data fetching logic for session-related presentations and files that were not displaying correctly due to `id` vs `id_random` issues.
|
||||
- [x] **Core:** Defined `Account`, `Site`, and `Site_Domain` interfaces in new files under `src/lib/ae_core/`.
|
||||
- [x] **Journals:** Improve the empty state message in `src/routes/journals/+page.svelte`.
|
||||
- [x] **Journals:** Add a loading indicator to the main journals page.
|
||||
- [x] **IDAA:** Add a loading indicator to the archives page (`src/routes/idaa/(idaa)/archives/+page.svelte`).
|
||||
- [x] **Events:** Add pagination to the main event list in `src/routes/events/+page.svelte`.
|
||||
|
||||
---
|
||||
|
||||
## Big Picture Goals
|
||||
|
||||
* Able to cache data and mostly work offline.
|
||||
* The new Events Launcher must be able to work offline and query the API for changes to data.
|
||||
* The new Events Launcher must be able to run inside an Electron app and have access to local files and commands. This includes loading a special library that only works in Electron.
|
||||
- Able to cache data and mostly work offline.
|
||||
- The new Events Launcher must be able to work offline and query the API for changes to data.
|
||||
- The new Events Launcher must be able to run inside an Electron app and have access to local files and commands. This includes loading a special library that only works in Electron.
|
||||
|
||||
---
|
||||
|
||||
## Codebase Standardization
|
||||
|
||||
### 1. Naming Conventions
|
||||
|
||||
- [ ] **Goal:** Enforce a single, consistent naming standard across the entire codebase.
|
||||
- [ ] **Files:**
|
||||
- Logic: `ae_<module>__<concept>.ts`
|
||||
@@ -35,6 +48,7 @@ This is a list of tasks to be completed before the next event/show/conference.
|
||||
- **Update 2025-11-13:** `ae_core_functions.ts` has been temporarily restored to resolve a critical issue. The refactoring of `process_ae_obj__*_props()` functions will now proceed module by module, ensuring stability at each step.
|
||||
|
||||
### 2. Component Standardization
|
||||
|
||||
- [ ] **CodeMirror Migration:** Plan and execute the replacement of the `shad-editor` and potentially other text editors (like Tiptap) with `CodeMirror` to standardize rich text editing.
|
||||
- [ ] **Component Review:** Audit third-party components to understand their conventions and isolate them from internal standards.
|
||||
|
||||
@@ -42,11 +56,7 @@ This is a list of tasks to be completed before the next event/show/conference.
|
||||
|
||||
## Priority Tasks (Easy & Quick)
|
||||
|
||||
- [x] **Core:** Define `Account`, `Site`, and `Site_Domain` interfaces in new files under `src/lib/ae_core/`.
|
||||
- [x] **Journals:** Improve the empty state message in `src/routes/journals/+page.svelte`.
|
||||
- [x] **Journals:** Add a loading indicator to the main journals page.
|
||||
- [x] **IDAA:** Add a loading indicator to the archives page (`src/routes/idaa/(idaa)/archives/+page.svelte`).
|
||||
- [x] **Events:** Add pagination to the main event list in `src/routes/events/+page.svelte`.
|
||||
- [ ] **Formatting:** Run `npm run format` to fix code style issues across the project.
|
||||
|
||||
---
|
||||
|
||||
@@ -55,21 +65,21 @@ This is a list of tasks to be completed before the next event/show/conference.
|
||||
These functions are frequently used and critical to the application's data flow. Reviewing and cleaning them up will significantly improve the codebase.
|
||||
|
||||
1. **`get_ae_obj_li_for_obj_id_crud_v2()`** (from `src/lib/ae_api/api_get__crud_obj_li_v2.ts`)
|
||||
- **Why:** This is the main function for fetching lists of data from the backend, used extensively across all modules.
|
||||
- **Cleanup:** Review parameters and return types for consistency, improve error handling, and add more detailed logging for debugging.
|
||||
- **Why:** This is the main function for fetching lists of data from the backend, used extensively across all modules.
|
||||
- **Cleanup:** Review parameters and return types for consistency, improve error handling, and add more detailed logging for debugging.
|
||||
|
||||
2. **`db_save_ae_obj_li__ae_obj()`** (from `src/lib/ae_core/core__idb_dexie.ts`)
|
||||
- **Why:** This function is the single point of entry for saving data to the local Dexie database, critical for performance and reliability.
|
||||
- **Cleanup:** Optimize for bulk operations, add robust error handling and logging, and ensure correct handling of updates to existing objects.
|
||||
- **Why:** This function is the single point of entry for saving data to the local Dexie database, critical for performance and reliability.
|
||||
- **Cleanup:** Optimize for bulk operations, add robust error handling and logging, and ensure correct handling of updates to existing objects.
|
||||
|
||||
3. **The `process_ae_obj__*_props()` family of functions** (e.g., `process_ae_obj__journal_props()` from `src/lib/ae_journals/ae_journals__journal.ts`)
|
||||
- **Why:** These functions transform API data for the frontend and are a common source of bugs and inconsistencies.
|
||||
- **Cleanup:** Standardize their structure across all modules, ensure they are pure functions, and add unit tests for correctness.
|
||||
- **Update 2025-11-13 (Temporary Rollback):** The previous refactoring of these functions has been temporarily rolled back due to an `InternalError`. `ae_core_functions.ts` has been restored. The new plan is to refactor these functions module by module, ensuring stability at each step. The generic CRUD functions in `core__crud_generic.ts` were simplified to remove data processing and caching, delegating those responsibilities to the module-specific functions. The deprecated `process_ae_obj__props` function in that file was left in place but is no longer used by the generic CRUD functions.
|
||||
- **Why:** These functions transform API data for the frontend and are a common source of bugs and inconsistencies.
|
||||
- **Cleanup:** Standardize their structure across all modules, ensure they are pure functions, and add unit tests for correctness.
|
||||
- **Update 2025-11-13 (Temporary Rollback):** The previous refactoring of these functions has been temporarily rolled back due to an `InternalError`. `ae_core_functions.ts` has been restored. The new plan is to refactor these functions module by module, ensuring stability at each step. The generic CRUD functions in `core__crud_generic.ts` were simplified to remove data processing and caching, delegating those responsibilities to the module-specific functions. The deprecated `process_ae_obj__props` function in that file was left in place but is no longer used by the generic CRUD functions.
|
||||
|
||||
4. **Usage of `liveQuery` from Dexie**
|
||||
- **Why:** `liveQuery` is powerful for reactive UIs, but current usage suggests complexity and potential issues.
|
||||
- **Cleanup:** Review `liveQuery` usage throughout the application, simplify queries, and investigate reactivity issues. Consider wrapping `liveQuery` in a custom Svelte store for a more predictable interface.
|
||||
- **Why:** `liveQuery` is powerful for reactive UIs, but current usage suggests complexity and potential issues.
|
||||
- **Cleanup:** Review `liveQuery` usage throughout the application, simplify queries, and investigate reactivity issues. Consider wrapping `liveQuery` in a custom Svelte store for a more predictable interface.
|
||||
|
||||
---
|
||||
|
||||
@@ -80,9 +90,11 @@ These functions are frequently used and critical to the application's data flow.
|
||||
## Core Module Improvements
|
||||
|
||||
### 1. Core Module Dashboard
|
||||
|
||||
- [ ] Create a central dashboard at `/core` to provide an overview and links to all core data management pages.
|
||||
|
||||
### 2. Account Management
|
||||
|
||||
- [ ] **Route:** Create a new route at `/core/accounts`.
|
||||
- [ ] **Data:** Define the `Account` interface in a new file `src/lib/ae_core/core__account.ts`.
|
||||
- [ ] **API:** Implement functions in `core__account.ts` for CRUD operations on accounts.
|
||||
@@ -91,6 +103,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] Create a `[account_id]` dynamic route to view and edit account details.
|
||||
|
||||
### 3. Site & Domain Management
|
||||
|
||||
- [ ] **Route:** Create a new route at `/core/sites`.
|
||||
- [ ] **Data:** Define `Site` and `Site_Domain` interfaces in a new file `src/lib/ae_core/core__site.ts`.
|
||||
- [ ] **API:** Implement functions in `core__site.ts` for CRUD operations on sites and domains.
|
||||
@@ -99,12 +112,14 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] Create a `[site_id]` dynamic route to view and edit site details and manage associated domains.
|
||||
|
||||
### 4. Person Management
|
||||
|
||||
- [ ] **Enhance:** Improve the existing person management components under `/core/person`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a dedicated page for creating new person records.
|
||||
- [ ] Add search and filtering capabilities to the person list.
|
||||
|
||||
### 5. User Management
|
||||
|
||||
- [ ] **Route:** Create a new route at `/core/users`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a `+page.svelte` to list all users.
|
||||
@@ -112,6 +127,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] Implement a component to link users to person records.
|
||||
|
||||
### 6. Hosted File Management
|
||||
|
||||
- [ ] **Route:** Create a new route at `/core/hosted_files`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a `+page.svelte` to list all hosted files with filters (e.g., by file type, uploader).
|
||||
@@ -119,6 +135,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] Add functionality to upload new files and associate them with other objects (e.g., a person, a journal entry).
|
||||
|
||||
### 7. Shared Lookup Lists
|
||||
|
||||
- [ ] **Route:** Create a new route at `/core/lookups`.
|
||||
- [ ] **UI:**
|
||||
- [ ] Create a simple UI to view and manage the shared lookup lists (e.g., `countries`, `time_zones`).
|
||||
@@ -128,6 +145,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
## Journals Module Improvements
|
||||
|
||||
### Code Cleanup & Refactoring
|
||||
|
||||
- [ ] **Consolidate Data Functions:** Refactor `ae_journals__journal.ts` and `ae_journals__journal_entry.ts` to reduce code duplication, especially in data loading and processing functions.
|
||||
- [ ] **Remove Dead Code:** Clean up commented-out code blocks and unused variables across the module.
|
||||
- [ ] **Logging:** Implement a more structured logging solution to replace the widespread use of `console.log`.
|
||||
@@ -135,6 +153,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] **Type Safety:** Replace `any` types with more specific interfaces, particularly in function parameters and API responses.
|
||||
|
||||
### Features & Enhancements
|
||||
|
||||
- [ ] **Offline Support:** Improve offline capabilities by pre-fetching and caching more data. Review the current Dexie implementation for optimizations.
|
||||
- [ ] **Search & Filtering:** Enhance the UI with more advanced search and filtering options for journals and entries (e.g., by date range, content, tags).
|
||||
- [ ] **User Experience (UX):**
|
||||
@@ -145,6 +164,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] **Templates:** Fully implement and document the "templates" feature for creating new journals and entries.
|
||||
|
||||
### Bug Fixes & Potential Issues
|
||||
|
||||
- [ ] **Reactivity:** Investigate potential reactivity issues between Svelte stores and Dexie's `liveQuery`.
|
||||
- [ ] **Data Sync:** Add logic to handle data synchronization conflicts between the local database and the server.
|
||||
- [ ] **Performance:** Profile the application with a large number of journals and entries to identify and address any performance bottlenecks.
|
||||
@@ -154,10 +174,12 @@ These functions are frequently used and critical to the application's data flow.
|
||||
## IDAA Modules Improvements
|
||||
|
||||
### General
|
||||
|
||||
- [ ] **Component Refactoring:** Audit the `ae_idaa_comp__` components and refactor them to be more generic and reusable where possible.
|
||||
- [ ] **State Management:** Simplify state management by reducing the number of stores and triggers, and relying more on derived state and component props.
|
||||
|
||||
### Archives Module (`/idaa/archives`)
|
||||
|
||||
- [ ] **UI/UX:**
|
||||
- [ ] Add a loading indicator while archives are being fetched.
|
||||
- [ ] Implement a more engaging "empty state" when no archives are available.
|
||||
@@ -165,6 +187,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] Implement pagination or infinite scrolling for the archive list.
|
||||
|
||||
### Bulletin Board Module (`/idaa/bb`)
|
||||
|
||||
- [ ] **UI/UX:**
|
||||
- [ ] Improve the UI for creating and editing posts and comments.
|
||||
- [ ] Add a rich text editor for a better writing experience.
|
||||
@@ -172,6 +195,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] Implement user-specific features, such as editing their own posts and comments.
|
||||
|
||||
### Recovery Meetings Module (`/idaa/recovery_meetings`)
|
||||
|
||||
- [ ] **Refactoring:**
|
||||
- [ ] Simplify the search and filtering logic. The current implementation with `setInterval` is complex and could be replaced with a more modern approach using debouncing or reactive statements.
|
||||
- [ ] **UI/UX:**
|
||||
@@ -185,11 +209,13 @@ These functions are frequently used and critical to the application's data flow.
|
||||
## Aether Events Module Improvements
|
||||
|
||||
### General
|
||||
|
||||
- [ ] **Dashboard:** Create a central dashboard for each event at `/events/[event_id]` that provides an overview of the event and links to all the management pages.
|
||||
- [ ] **Component Refactoring:** The module has a large number of `ae_comp__` components. Audit and refactor them to be more modular and reusable.
|
||||
- [ ] **UI/UX Consistency:** Ensure a consistent look and feel across all the different event management pages.
|
||||
|
||||
### Core Event Management
|
||||
|
||||
- [ ] **Event List (`/events`):**
|
||||
- [ ] Add search and filtering capabilities to the main event list.
|
||||
- [ ] Implement pagination for the event list.
|
||||
@@ -197,6 +223,7 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] Create a dedicated page or modal for creating and editing events.
|
||||
|
||||
### Sub-modules (`/events/[event_id]/...`)
|
||||
|
||||
- [ ] **Sessions, Presentations, Presenters, etc.:**
|
||||
- [ ] For each sub-module (sessions, presentations, etc.), implement a consistent set of features:
|
||||
- [ ] List view with search and filtering.
|
||||
@@ -206,14 +233,15 @@ These functions are frequently used and critical to the application's data flow.
|
||||
- [ ] **File Management:**
|
||||
- [ ] Improve the file upload component (`ae_comp__event_files_upload.svelte`) with features like drag-and-drop and progress bars.
|
||||
- [ ] Enhance the file list view with more details and actions.
|
||||
- [ ] **Launcher (`/events/[event_id]/launcher`):
|
||||
- [ ] \*\*Launcher (`/events/[event_id]/launcher`):
|
||||
- [ ] Add documentation to explain the purpose and usage of the launcher.
|
||||
- [ ] Improve the UI to make it more intuitive for users.
|
||||
- [ ] **Badges (`/events/[event_id]/badges`):
|
||||
- [ ] \*\*Badges (`/events/[event_id]/badges`):
|
||||
- [ ] Enhance the badge printing interface with more customization options.
|
||||
- [ ] Add a preview of the badge before printing.
|
||||
|
||||
### Performance
|
||||
|
||||
- [ ] **Live Queries:** Review the use of `liveQuery` throughout the module and optimize for performance, especially on pages with a large amount of data.
|
||||
- [ ] **Data Loading:** Implement more efficient data loading strategies to avoid fetching unnecessary data.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user