ENG-2083 Add schema selection panel UI for Obsidian export/import - #1262
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
1e624f3 to
f8e4b8d
Compare
f8e4b8d to
e9132f3
Compare
e9132f3 to
6eefcca
Compare
PR size/scope checkThis PR is over our review-size guideline.
Please split this into smaller PRs unless there is a clear reason the changes need to land together. If keeping it as one PR, please add a brief justification covering:
|
bc97511 to
55f5f58
Compare
…gs with selection panel)
…emplateToNodeTypeNames double-pass - Remove `emptyTemplateText` prop from SchemaSelectionPanel and SchemaSelectionModalBody; hardcode "No template files found." - Remove `beforePanel` and `afterPanel` props from SchemaSelectionModalBody (afterPanel had no callers; beforePanel is now composed as a sibling at the call site) - Collapse templateToNodeTypeNames two-pass sort into a single sorted source array + single map-build pass Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…discourseRelationIds Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55f5f58 to
07ccd44
Compare
| SchemaSelectionState, | ||
| } from "~/components/useSchemaSelection"; | ||
|
|
||
| type SchemaSelectionModalBodyProps = { |
There was a problem hiding this comment.
How many of these need to be props? Stated differently, how many of these are being reused in multiple component instances? It adds a lot of noise and complexity to put all of these in props if they are one time use.
| selection, | ||
| onDependencyViolation, | ||
| }: SchemaSelectionPanelProps) => { | ||
| const { |
There was a problem hiding this comment.
Same with these. How many of these need to be props? Or could they just be inline?
| type SchemaSelectionPanelProps = { | ||
| source: SchemaSelectionSource; | ||
| selection: SchemaSelectionState; | ||
| onDependencyViolation?: (message: string) => void; |
There was a problem hiding this comment.
Should we use the native obsidian new Notice(result.reason) for this?
https://www.loom.com/share/fe0b8ebcf08e48229a4afdb7a6cc5e43
Summary
Adds the reusable schema selection panel used by both the export and import modals.
SchemaSelectionModalBody.tsx— modal layout with a header slot, scrollable content area, and footer action buttons; consumed by bothExportSpecsModalandImportSpecsModalSchemaSelectionPanel.tsx— four-section checklist (node types, relation types, relation triples, templates) driven byuseSchemaSelection; shows locked/required badges when an item is forced by a selected tripleStack
PR 2 of 5 for FEE-840. Stacks on #1180.
Test plan
pnpm --filter @discourse-graphs/obsidian check-typespasses