diff --git a/prd.json b/prd.json index 90f4662..7a27321 100644 --- a/prd.json +++ b/prd.json @@ -199,7 +199,7 @@ "Verify in browser using dev-browser skill" ], "priority": 11, - "passes": false, + "passes": true, "notes": "Dependencies: US-056, US-057" }, { diff --git a/progress.txt b/progress.txt index 52f252f..1c5272e 100644 --- a/progress.txt +++ b/progress.txt @@ -168,3 +168,18 @@ - The toast message for migration is set as initial state, so it shows immediately on first render without needing an effect. - No browser testing tools are available; manual verification is needed. --- + +## 2026-01-23 - US-063 +- What was implemented: Import characters/variables from another project via modal in project settings +- Files changed: + - `src/components/editor/ImportFromProjectModal.tsx` - New component: project list modal with checkbox selection for characters or variables, duplicate-by-name skipping with warnings, select all/none controls + - `src/components/editor/ProjectSettingsModal.tsx` - Added `projectId` prop, `ImportFromProjectModal` integration, and "Import from project" buttons in both Characters and Variables tabs + - `src/app/editor/[projectId]/FlowchartEditor.tsx` - Passed `projectId` through to `ProjectSettingsModal` +- **Learnings for future iterations:** + - The `ImportFromProjectModal` uses `z-[60]` to layer above the `ProjectSettingsModal` (which uses `z-50`), since it's rendered as a child of that modal + - Imported characters/variables get new IDs via `nanoid()` to avoid ID collisions between projects. The original colors, types, and initial values are preserved. + - Duplicate detection is case-insensitive by name. Duplicates are skipped (not overwritten) with a warning message shown to the user. + - The `LoadingSpinner` component mentioned in Codebase Patterns doesn't exist; used inline text loading indicators instead. + - Supabase client-side fetching from `createClient()` (browser) automatically scopes by the logged-in user's RLS policies, so fetching other projects just uses `.neq('id', currentProjectId)` and RLS handles ownership filtering. + - No browser testing tools are available; manual verification is needed. +---