diff --git a/apps/obsidian/src/components/RelationshipTypeSettings.tsx b/apps/obsidian/src/components/RelationshipTypeSettings.tsx index e8e473795..24a20ecf3 100644 --- a/apps/obsidian/src/components/RelationshipTypeSettings.tsx +++ b/apps/obsidian/src/components/RelationshipTypeSettings.tsx @@ -12,15 +12,20 @@ const RelationshipTypeSettings = () => { ); const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false); - const handleRelationTypeChange = async ( + const handleRelationTypeChange = ( index: number, field: keyof DiscourseRelationType, value: string, - ): Promise => { + ): void => { const updatedRelationTypes = [...relationTypes]; if (!updatedRelationTypes[index]) { const newId = generateUid("rel"); - updatedRelationTypes[index] = { id: newId, label: "", complement: "" }; + updatedRelationTypes[index] = { + id: newId, + label: "", + complement: "", + color: "#000000", + }; } updatedRelationTypes[index][field] = value; @@ -37,6 +42,7 @@ const RelationshipTypeSettings = () => { id: newId, label: "", complement: "", + color: "#000000", }, ]; setRelationTypes(updatedRelationTypes); @@ -47,6 +53,7 @@ const RelationshipTypeSettings = () => { const relationType = relationTypes[index] || { label: "Unnamed", complement: "", + color: "#000000", }; const modal = new ConfirmationModal(plugin.app, { title: "Delete Relation Type", @@ -77,7 +84,7 @@ const RelationshipTypeSettings = () => { const handleSave = async (): Promise => { for (const relType of relationTypes) { - if (!relType.id || !relType.label || !relType.complement) { + if (!relType.id || !relType.label || !relType.complement || !relType.color) { new Notice("All fields are required for relation types."); return; } @@ -125,6 +132,15 @@ const RelationshipTypeSettings = () => { } className="flex-1" /> + + handleRelationTypeChange(index, "color", e.target.value) + } + className="w-12 h-8 rounded border" + title="Relation color" + />