From 13f7129717e4114b926b280d0d1f58fe9d83301c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 11 Feb 2025 19:04:27 +0200 Subject: [PATCH] refactor(client/ts): port a few more widgets --- src/public/app/components/app_context.ts | 1 + .../buttons/{revisions_button.js => revisions_button.ts} | 2 +- .../containers/{root_container.js => root_container.ts} | 5 +++-- .../app/widgets/{scroll_padding.js => scroll_padding.ts} | 7 +++++-- src/public/app/widgets/type_widgets/{none.js => none.ts} | 0 .../{protected_session.js => protected_session.ts} | 6 +++++- 6 files changed, 15 insertions(+), 6 deletions(-) rename src/public/app/widgets/buttons/{revisions_button.js => revisions_button.ts} (94%) rename src/public/app/widgets/containers/{root_container.js => root_container.ts} (51%) rename src/public/app/widgets/{scroll_padding.js => scroll_padding.ts} (84%) rename src/public/app/widgets/type_widgets/{none.js => none.ts} (100%) rename src/public/app/widgets/type_widgets/{protected_session.js => protected_session.ts} (90%) diff --git a/src/public/app/components/app_context.ts b/src/public/app/components/app_context.ts index 0b0139a3a..8bcec0593 100644 --- a/src/public/app/components/app_context.ts +++ b/src/public/app/components/app_context.ts @@ -80,6 +80,7 @@ export type CommandMappings = { }; closeTocCommand: CommandData; showLaunchBarSubtree: CommandData; + showRevisions: CommandData; showOptions: CommandData & { section: string; }; diff --git a/src/public/app/widgets/buttons/revisions_button.js b/src/public/app/widgets/buttons/revisions_button.ts similarity index 94% rename from src/public/app/widgets/buttons/revisions_button.js rename to src/public/app/widgets/buttons/revisions_button.ts index 086644a46..089c6a4c6 100644 --- a/src/public/app/widgets/buttons/revisions_button.js +++ b/src/public/app/widgets/buttons/revisions_button.ts @@ -9,6 +9,6 @@ export default class RevisionsButton extends CommandButtonWidget { } isEnabled() { - return super.isEnabled() && !["launcher", "doc"].includes(this.note?.type); + return super.isEnabled() && !["launcher", "doc"].includes(this.note?.type ?? ""); } } diff --git a/src/public/app/widgets/containers/root_container.js b/src/public/app/widgets/containers/root_container.ts similarity index 51% rename from src/public/app/widgets/containers/root_container.js rename to src/public/app/widgets/containers/root_container.ts index 4eac279ac..1abde362d 100644 --- a/src/public/app/widgets/containers/root_container.js +++ b/src/public/app/widgets/containers/root_container.ts @@ -1,7 +1,8 @@ +import type BasicWidget from "../basic_widget.js"; import FlexContainer from "./flex_container.js"; -export default class RootContainer extends FlexContainer { - constructor(isHorizontalLayout) { +export default class RootContainer extends FlexContainer { + constructor(isHorizontalLayout: boolean) { super(isHorizontalLayout ? "column" : "row"); this.id("root-widget"); diff --git a/src/public/app/widgets/scroll_padding.js b/src/public/app/widgets/scroll_padding.ts similarity index 84% rename from src/public/app/widgets/scroll_padding.js rename to src/public/app/widgets/scroll_padding.ts index 7763b5138..3c10cf7b2 100644 --- a/src/public/app/widgets/scroll_padding.js +++ b/src/public/app/widgets/scroll_padding.ts @@ -3,8 +3,11 @@ import NoteContextAwareWidget from "./note_context_aware_widget.js"; const TPL = `
`; export default class ScrollPaddingWidget extends NoteContextAwareWidget { + + private $scrollingContainer!: JQuery; + isEnabled() { - return super.isEnabled() && ["text", "code"].includes(this.note?.type); + return super.isEnabled() && ["text", "code"].includes(this.note?.type ?? ""); } doRender() { @@ -25,6 +28,6 @@ export default class ScrollPaddingWidget extends NoteContextAwareWidget { refreshHeight() { const containerHeight = this.$scrollingContainer.height(); - this.$widget.css("height", Math.round(containerHeight / 2)); + this.$widget.css("height", Math.round((containerHeight ?? 0) / 2)); } } diff --git a/src/public/app/widgets/type_widgets/none.js b/src/public/app/widgets/type_widgets/none.ts similarity index 100% rename from src/public/app/widgets/type_widgets/none.js rename to src/public/app/widgets/type_widgets/none.ts diff --git a/src/public/app/widgets/type_widgets/protected_session.js b/src/public/app/widgets/type_widgets/protected_session.ts similarity index 90% rename from src/public/app/widgets/type_widgets/protected_session.js rename to src/public/app/widgets/type_widgets/protected_session.ts index c10ca555b..3575b8052 100644 --- a/src/public/app/widgets/type_widgets/protected_session.js +++ b/src/public/app/widgets/type_widgets/protected_session.ts @@ -28,6 +28,10 @@ const TPL = ` `; export default class ProtectedSessionTypeWidget extends TypeWidget { + + private $passwordForm!: JQuery; + private $passwordInput!: JQuery; + static getType() { return "protectedSession"; } @@ -38,7 +42,7 @@ export default class ProtectedSessionTypeWidget extends TypeWidget { this.$passwordInput = this.$widget.find(".protected-session-password"); this.$passwordForm.on("submit", () => { - const password = this.$passwordInput.val(); + const password = String(this.$passwordInput.val()); this.$passwordInput.val(""); protectedSessionService.setupProtectedSession(password);