Commit graph

655 commits

Author SHA1 Message Date
devin-ai-integration[bot]
9b54039a15
Remove legacy API layer (APIClient, core.ts, resources/) (#438)
# Remove legacy API layer (APIClient, core.ts, resources/)

## Summary

This PR consolidates the API layer by removing unused legacy code. The
codebase had two API patterns:
1. **Adapters layer** (`src/lib/api/adapters/`) - The newer, canonical
HTTP layer with retry logic, caching, and proper error handling
2. **Legacy layer** (`src/lib/api/client.ts`, `core.ts`, `resources/`) -
An older pattern using SvelteKit proxy endpoints that was no longer
imported anywhere

The legacy layer was confirmed unused via grep analysis. The only
exception was `transformResponse` and `transformRequest` functions in
`client.ts` which were still used by `BaseAdapter` and
`schemas/party.ts` - these have been moved to `schemas/transforms.ts`.

**Files deleted:**
- `src/lib/api/client.ts` (732 lines - APIClient class was dead code)
- `src/lib/api/core.ts` (helper functions, unused)
- `src/lib/api/index.ts` (empty file)
- `src/lib/api/resources/` directory (search.ts, weapons.ts,
characters.ts, summons.ts - all unused)

**Files modified:**
- `src/lib/api/schemas/transforms.ts` - Added `transformResponse`,
`transformRequest`, and their helper functions
- `src/lib/api/adapters/base.adapter.ts` - Updated import path
- `src/lib/api/schemas/party.ts` - Updated import path

## Review & Testing Checklist for Human

- [ ] **Verify transform functions work correctly** - The
`transformResponse` and `transformRequest` functions handle critical
data transformation (snake_case ↔ camelCase, object ↔ entity field
renaming). Test that party data loads correctly with proper field names.
- [ ] **Test party CRUD operations** - Create, update, and delete a
party to verify the adapters layer still works end-to-end
- [ ] **Test grid operations** - Add/remove weapons, characters, and
summons to verify the entity field renaming still works correctly
- [ ] **Check for any runtime errors** - The local type checking
couldn't run due to missing dev dependencies, so CI is the first line of
defense

**Recommended test plan:**
1. Load an existing party page and verify all data displays correctly
2. Create a new party and add weapons/characters/summons
3. Edit an existing party (update name, add/remove items)
4. Verify search functionality works for weapons/characters/summons

### Notes
- Local lint/typecheck commands failed due to missing dependencies
(prettier-plugin-svelte, eslint-config-prettier) - relying on CI for
type verification
- The services layer (`src/lib/services/`) was intentionally kept as
it's a business logic layer that wraps the adapters

Link to Devin run:
https://app.devin.ai/sessions/611580bc2db94e20a48c3692d3cbd432
Requested by: Justin Edmund (justin@jedmund.com) / @jedmund

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Justin Edmund <justin@jedmund.com>
2025-11-28 11:09:08 -08:00
5dc0a75cce misc fixes for grid service and resources
- let backend compute default uncap levels
- fix InfiniteScroll resource lifecycle (don't destroy on unmount)
- improve party resource error handling with type narrowing
- use SvelteMap/SvelteDate for reactivity
2025-11-28 11:04:36 -08:00
b1bfe82507 fix party job/skill API calls
- use shortcode instead of id for job updates
- wrap job_id in party object for rails API
- only send editable skill slots (1-3), skip null values
- add updateAccessory method stub
2025-11-28 11:04:26 -08:00
5403aebe48 fix job skill types and slot styling
- update JobSkill type with emp/base boolean flags
- use new skill fields in jobUtils and components
- update job adapter with locale and filter params
- restyle empty skill slots with cleaner placeholder
- simplify ML badge to not show level number
2025-11-28 11:04:16 -08:00
0379cff81e add active unit highlighting with element focus rings
- track active item in sidebar store
- add element accent colors and focus ring mixins
- units show pulsing focus ring when selected in sidebar
- refactor units to use shared menu components
- update context menu test page
2025-11-28 11:04:04 -08:00
9a4a863ccd add shared unit menu components
- UnitMenuContainer for context/dropdown menu wrapper
- MenuItems for reusable action items
- GearMenuButton for hover-triggered dropdown
- shared scss styles for both menu variants
2025-11-28 11:03:52 -08:00
e582629552 refactor SearchSidebar with tanstack query
- replace manual fetch with createInfiniteQuery
- debounced search input with reactive filters
- pagination handled automatically via infinite scroll
- cleaner state management via query result
2025-11-28 11:03:42 -08:00
aa16d58175 add tanstack query with infinite scroll support
- integrate @tanstack/svelte-query into layout
- add query client factory and query keys
- new InfiniteScrollQuery component for paginated data
- search query options for weapons/characters/summons
- update dev port to 5174
2025-11-28 11:00:57 -08:00
e7adc48042 add context menu test page 2025-09-30 03:44:51 -07:00
50f7643763 update extra summons grid 2025-09-30 03:44:38 -07:00
7fb3c2a0c1 add purple theme colors 2025-09-30 03:44:06 -07:00
a88411eb46 add context menu to job components 2025-09-30 03:43:41 -07:00
0ab2782697 wire up context menus to unit components 2025-09-30 03:42:57 -07:00
030c5916c7 add context menu ui components and i18n 2025-09-30 03:42:14 -07:00
f325836bf6 wrap extra sections in container component 2025-09-30 01:12:40 -07:00
45fc9237ad add purple theme styling for extra weapons 2025-09-30 01:11:44 -07:00
47b3a11fef update extra weapons grid with header and container 2025-09-30 01:11:39 -07:00
267658bb28 add extra weapon container components 2025-09-30 01:11:33 -07:00
540b35fd85 add extra_weapons i18n messages 2025-09-30 01:11:25 -07:00
31af7f5425 add bottom padding to main content for better scroll UX 2025-09-30 01:11:18 -07:00
9b65c6bac8 update i18n messages 2025-09-29 23:48:14 -07:00
d8e18c00e1 update ui components 2025-09-29 23:48:02 -07:00
6b40a3dec6 update grid and unit components 2025-09-29 23:47:45 -07:00
a00b8a8d18 update utility functions 2025-09-29 23:47:11 -07:00
cf34092ccc improve api adapters 2025-09-29 23:47:01 -07:00
1298ae1a35 add mastery display 2025-09-29 23:46:04 -07:00
4161a615ba add job system 2025-09-29 23:45:50 -07:00
9537c57485 refactor details sidebar 2025-09-29 23:45:28 -07:00
1b2bee497b refactor segmented control 2025-09-29 23:44:37 -07:00
a9f6336427 add icon assets 2025-09-29 23:43:59 -07:00
b3bccf5b45 update theme colors and styling tokens 2025-09-29 23:37:50 -07:00
79c0de3128 remove barrel files and update imports 2025-09-29 23:37:37 -07:00
4e206a75b4 add docs/ to gitignore 2025-09-29 23:36:59 -07:00
3666b8db86 add perpetuity ring toggle and fix grid api response handling 2025-09-25 01:08:25 -07:00
a10659b347 update app styles 2025-09-25 00:26:50 -07:00
d13412dfb9 fix transcendence star positioning and update uncap styles 2025-09-25 00:26:29 -07:00
6762c2dab4 use new modifier utils in unit components 2025-09-25 00:26:17 -07:00
739c415284 add canonical/user version toggle to details sidebar 2025-09-25 00:25:07 -07:00
249877efe6 add sidebar modification display components 2025-09-25 00:24:36 -07:00
f090d2fe41 add modifier utils for weapon keys, awakenings, and stat modifications 2025-09-25 00:22:58 -07:00
47d64d6fe1 fix: use camelCase for pagination meta after transform 2025-09-24 22:53:05 -07:00
3bbebeb588 fix: prevent grid rep titles from stretching container 2025-09-24 22:52:50 -07:00
999f03f42c add infinite scrolling to explore and profile pages 2025-09-24 22:24:53 -07:00
8f6a8ac522 ignore test routes 2025-09-24 22:07:47 -07:00
29980c605b remove console.log from database pages 2025-09-24 22:04:40 -07:00
9bb9bd6320 add user settings modal and page 2025-09-24 22:02:25 -07:00
fc958fc444 fix scroll restoration for custom scroll container 2025-09-24 21:31:36 -07:00
5678e13afb Don’t show selection on all /teams routes 2025-09-24 14:40:30 -07:00
6034157d07 add element-based backgrounds to detail sidebar 2025-09-24 03:49:20 -07:00
506d33bf57 fix character rep image urls 2025-09-24 03:35:07 -07:00