refactor: 💡 add event data and remove redundant code

This commit is contained in:
Jin 2025-03-05 12:44:36 +01:00
parent c4d2c2b8de
commit d4fe8cf4b9
3 changed files with 13 additions and 7 deletions

View File

@ -23,6 +23,7 @@ import type { Attribute } from "../services/attribute_parser.js";
import type NoteTreeWidget from "../widgets/note_tree.js";
import type { default as NoteContext, GetTextEditorCallback } from "./note_context.js";
import type TypeWidget from "../widgets/type_widgets/type_widget.js";
import type EditableTextTypeWidget from "../widgets/type_widgets/editable_text.js";
interface Layout {
getRootWidget: (appContext: AppContext) => RootWidget;
@ -361,6 +362,10 @@ type EventMappings = {
relationMapResetZoomIn: { ntxId: string | null | undefined };
relationMapResetZoomOut: { ntxId: string | null | undefined };
activeNoteChangedEvent: {};
showAddLinkDialog: {
textTypeWidget: EditableTextTypeWidget;
text: string;
};
};
export type EventListener<T extends EventNames> = {

View File

@ -83,7 +83,7 @@ export default class AboutDialog extends BasicWidget {
this.$dataDirectory = this.$widget.find(".data-directory");
}
async refresh(): Promise<void> {
async refresh() {
const appInfo = await server.get<AppInfo>("app-info");
this.$appVersion.text(appInfo.appVersion);
@ -109,7 +109,7 @@ export default class AboutDialog extends BasicWidget {
}
}
async openAboutDialogEvent(): Promise<void> {
async openAboutDialogEvent() {
await this.refresh();
utils.openDialog(this.$widget);
}

View File

@ -5,6 +5,7 @@ import utils from "../../services/utils.js";
import BasicWidget from "../basic_widget.js";
import type { Suggestion } from "../../services/note_autocomplete.js";
import type { default as TextTypeWidget } from "../type_widgets/editable_text.js";
import type { EventData } from "../../components/app_context.js";
const TPL = `
<div class="add-link-dialog modal mx-auto" tabindex="-1" role="dialog">
@ -94,7 +95,7 @@ export default class AddLinkDialog extends BasicWidget {
});
}
async showAddLinkDialogEvent({ textTypeWidget, text = "" }: { textTypeWidget: TextTypeWidget; text: string }) {
async showAddLinkDialogEvent({ textTypeWidget, text = "" }: EventData<"showAddLinkDialog">) {
this.textTypeWidget = textTypeWidget;
this.$addLinkTitleSettings.toggle(!this.textTypeWidget.hasSelection());