refactor(react/ribbon): set up keyboard shortcuts

This commit is contained in:
Elian Doran 2025-08-23 20:59:13 +03:00
parent d53faa8c01
commit 9f217b88e4
No known key found for this signature in database
4 changed files with 13 additions and 28 deletions

View File

@ -1,20 +0,0 @@
export default class AttributeEditorWidget extends NoteContextAwareWidget implements EventListener<"entitiesReloaded">, EventListener<"addNewLabel">, EventListener<"addNewRelation"> {
// triggered from keyboard shortcut
async addNewLabelEvent({ ntxId }: EventData<"addNewLabel">) {
if (this.isNoteContext(ntxId)) {
await this.refresh();
this.handleAddNewAttributeCommand("addNewLabel");
}
}
// triggered from keyboard shortcut
async addNewRelationEvent({ ntxId }: EventData<"addNewRelation">) {
if (this.isNoteContext(ntxId)) {
await this.refresh();
this.handleAddNewAttributeCommand("addNewRelation");
}
}
}

View File

@ -450,7 +450,6 @@ export function useLegacyWidget<T extends BasicWidget>(widgetFactory: () => T, {
// Inject the note context.
useEffect(() => {
console.log("Injecting note context");
if (noteContext && widget instanceof NoteContextAwareWidget) {
widget.activeContextChangedEvent({ noteContext });
}

View File

@ -1,15 +1,11 @@
import AttributeEditor from "./components/AttributeEditor";
import { TabContext } from "./ribbon-interface";
export default function OwnedAttributesTab({ note, notePath, componentId }: TabContext) {
export default function OwnedAttributesTab({ note, ...restProps }: TabContext) {
return (
<div className="attribute-list">
{ note && (
<AttributeEditor
componentId={componentId}
note={note}
notePath={notePath}
/>
<AttributeEditor note={note} {...restProps} />
)}
</div>
)

View File

@ -76,7 +76,7 @@ const mentionSetup: MentionFeed[] = [
];
export default function AttributeEditor({ note, componentId, notePath }: { note: FNote, componentId: string, notePath?: string | null }) {
export default function AttributeEditor({ note, componentId, notePath, ntxId }: { note: FNote, componentId: string, notePath?: string | null, ntxId?: string | null }) {
const [ state, setState ] = useState<"normal" | "showHelpTooltip" | "showAttributeDetail">();
const [ error, setError ] = useState<unknown>();
const [ needsSaving, setNeedsSaving ] = useState(false);
@ -253,6 +253,16 @@ export default function AttributeEditor({ note, componentId, notePath }: { note:
reloadAttributesCommand: refresh,
updateAttributeListCommand: ({ attributes }: CommandListenerData<"updateAttributeList">) => renderOwnedAttributes(attributes as FAttribute[], false)
}), []));
// Keyboard shortcuts
useTriliumEventBeta("addNewLabel", ({ ntxId: eventNtxId }) => {
if (eventNtxId !== ntxId) return;
handleAddNewAttributeCommand("addNewLabel");
});
useTriliumEventBeta("addNewRelation", ({ ntxId: eventNtxId }) => {
if (eventNtxId !== ntxId) return;
handleAddNewAttributeCommand("addNewRelation");
});
return (
<>