mirror of
https://github.com/zadam/trilium.git
synced 2025-12-16 13:19:54 +01:00
chore(layout/formatting_toolbar): render without adapter
This commit is contained in:
@@ -1,58 +1,57 @@
|
|||||||
import { applyModals } from "./layout_commons.js";
|
import type { AppContext } from "../components/app_context.js";
|
||||||
import { DESKTOP_FLOATING_BUTTONS } from "../widgets/FloatingButtonsDefinitions.jsx";
|
import type { WidgetsByParent } from "../services/bundle.js";
|
||||||
|
import { isExperimentalFeatureEnabled } from "../services/experimental_features.js";
|
||||||
|
import options from "../services/options.js";
|
||||||
|
import utils from "../services/utils.js";
|
||||||
import ApiLog from "../widgets/api_log.jsx";
|
import ApiLog from "../widgets/api_log.jsx";
|
||||||
import ClosePaneButton from "../widgets/buttons/close_pane_button.js";
|
import ClosePaneButton from "../widgets/buttons/close_pane_button.js";
|
||||||
import CloseZenModeButton from "../widgets/close_zen_button.jsx";
|
|
||||||
import ContentHeader from "../widgets/containers/content_header.js";
|
|
||||||
import CreatePaneButton from "../widgets/buttons/create_pane_button.js";
|
import CreatePaneButton from "../widgets/buttons/create_pane_button.js";
|
||||||
import FindWidget from "../widgets/find.js";
|
|
||||||
import FlexContainer from "../widgets/containers/flex_container.js";
|
|
||||||
import FloatingButtons from "../widgets/FloatingButtons.jsx";
|
|
||||||
import GlobalMenu from "../widgets/buttons/global_menu.jsx";
|
import GlobalMenu from "../widgets/buttons/global_menu.jsx";
|
||||||
import HighlightsListWidget from "../widgets/highlights_list.js";
|
|
||||||
import LeftPaneContainer from "../widgets/containers/left_pane_container.js";
|
|
||||||
import LeftPaneToggle from "../widgets/buttons/left_pane_toggle.js";
|
import LeftPaneToggle from "../widgets/buttons/left_pane_toggle.js";
|
||||||
import MovePaneButton from "../widgets/buttons/move_pane_button.js";
|
import MovePaneButton from "../widgets/buttons/move_pane_button.js";
|
||||||
import NoteIconWidget from "../widgets/note_icon.jsx";
|
import CloseZenModeButton from "../widgets/close_zen_button.jsx";
|
||||||
import NoteList from "../widgets/collections/NoteList.jsx";
|
import NoteList from "../widgets/collections/NoteList.jsx";
|
||||||
import NoteTitleWidget from "../widgets/note_title.jsx";
|
import ContentHeader from "../widgets/containers/content_header.js";
|
||||||
import NoteTreeWidget from "../widgets/note_tree.js";
|
import FlexContainer from "../widgets/containers/flex_container.js";
|
||||||
import NoteWrapperWidget from "../widgets/note_wrapper.js";
|
import LeftPaneContainer from "../widgets/containers/left_pane_container.js";
|
||||||
import options from "../services/options.js";
|
|
||||||
import PasswordNoteSetDialog from "../widgets/dialogs/password_not_set.js";
|
|
||||||
import QuickSearchWidget from "../widgets/quick_search.js";
|
|
||||||
import ReadOnlyNoteInfoBar from "../widgets/ReadOnlyNoteInfoBar.jsx";
|
|
||||||
import Ribbon from "../widgets/ribbon/Ribbon.jsx";
|
|
||||||
import RightPaneContainer from "../widgets/containers/right_pane_container.js";
|
import RightPaneContainer from "../widgets/containers/right_pane_container.js";
|
||||||
import RootContainer from "../widgets/containers/root_container.js";
|
import RootContainer from "../widgets/containers/root_container.js";
|
||||||
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
|
import ScrollingContainer from "../widgets/containers/scrolling_container.js";
|
||||||
import ScrollPadding from "../widgets/scroll_padding.js";
|
|
||||||
import SearchResult from "../widgets/search_result.jsx";
|
|
||||||
import SharedInfo from "../widgets/shared_info.jsx";
|
|
||||||
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
|
import SplitNoteContainer from "../widgets/containers/split_note_container.js";
|
||||||
import SqlResults from "../widgets/sql_result.js";
|
import PasswordNoteSetDialog from "../widgets/dialogs/password_not_set.js";
|
||||||
import SqlTableSchemas from "../widgets/sql_table_schemas.js";
|
|
||||||
import TabRowWidget from "../widgets/tab_row.js";
|
|
||||||
import TitleBarButtons from "../widgets/title_bar_buttons.jsx";
|
|
||||||
import TocWidget from "../widgets/toc.js";
|
|
||||||
import type { AppContext } from "../components/app_context.js";
|
|
||||||
import type { WidgetsByParent } from "../services/bundle.js";
|
|
||||||
import UploadAttachmentsDialog from "../widgets/dialogs/upload_attachments.js";
|
import UploadAttachmentsDialog from "../widgets/dialogs/upload_attachments.js";
|
||||||
import utils from "../services/utils.js";
|
import FindWidget from "../widgets/find.js";
|
||||||
import WatchedFileUpdateStatusWidget from "../widgets/watched_file_update_status.js";
|
import FloatingButtons from "../widgets/FloatingButtons.jsx";
|
||||||
import NoteDetail from "../widgets/NoteDetail.jsx";
|
import { DESKTOP_FLOATING_BUTTONS } from "../widgets/FloatingButtonsDefinitions.jsx";
|
||||||
import PromotedAttributes from "../widgets/PromotedAttributes.jsx";
|
import HighlightsListWidget from "../widgets/highlights_list.js";
|
||||||
import SpacerWidget from "../widgets/launch_bar/SpacerWidget.jsx";
|
|
||||||
import LauncherContainer from "../widgets/launch_bar/LauncherContainer.jsx";
|
import LauncherContainer from "../widgets/launch_bar/LauncherContainer.jsx";
|
||||||
import TabHistoryNavigationButtons from "../widgets/TabHistoryNavigationButtons.jsx";
|
import SpacerWidget from "../widgets/launch_bar/SpacerWidget.jsx";
|
||||||
import { isExperimentalFeatureEnabled } from "../services/experimental_features.js";
|
import InlineTitle from "../widgets/layout/InlineTitle.jsx";
|
||||||
import NoteActions from "../widgets/ribbon/NoteActions.jsx";
|
|
||||||
import FormattingToolbar from "../widgets/ribbon/FormattingToolbar.jsx";
|
|
||||||
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
|
|
||||||
import NoteBadges from "../widgets/layout/NoteBadges.jsx";
|
import NoteBadges from "../widgets/layout/NoteBadges.jsx";
|
||||||
import NoteTitleActions from "../widgets/layout/NoteTitleActions.jsx";
|
import NoteTitleActions from "../widgets/layout/NoteTitleActions.jsx";
|
||||||
import StatusBar from "../widgets/layout/StatusBar.jsx";
|
import StatusBar from "../widgets/layout/StatusBar.jsx";
|
||||||
import InlineTitle from "../widgets/layout/InlineTitle.jsx";
|
import NoteIconWidget from "../widgets/note_icon.jsx";
|
||||||
|
import NoteTitleWidget from "../widgets/note_title.jsx";
|
||||||
|
import NoteTreeWidget from "../widgets/note_tree.js";
|
||||||
|
import NoteWrapperWidget from "../widgets/note_wrapper.js";
|
||||||
|
import NoteDetail from "../widgets/NoteDetail.jsx";
|
||||||
|
import PromotedAttributes from "../widgets/PromotedAttributes.jsx";
|
||||||
|
import QuickSearchWidget from "../widgets/quick_search.js";
|
||||||
|
import ReadOnlyNoteInfoBar from "../widgets/ReadOnlyNoteInfoBar.jsx";
|
||||||
|
import { FixedFormattingToolbar } from "../widgets/ribbon/FormattingToolbar.jsx";
|
||||||
|
import NoteActions from "../widgets/ribbon/NoteActions.jsx";
|
||||||
|
import Ribbon from "../widgets/ribbon/Ribbon.jsx";
|
||||||
|
import ScrollPadding from "../widgets/scroll_padding.js";
|
||||||
|
import SearchResult from "../widgets/search_result.jsx";
|
||||||
|
import SharedInfo from "../widgets/shared_info.jsx";
|
||||||
|
import SqlResults from "../widgets/sql_result.js";
|
||||||
|
import SqlTableSchemas from "../widgets/sql_table_schemas.js";
|
||||||
|
import TabRowWidget from "../widgets/tab_row.js";
|
||||||
|
import TabHistoryNavigationButtons from "../widgets/TabHistoryNavigationButtons.jsx";
|
||||||
|
import TitleBarButtons from "../widgets/title_bar_buttons.jsx";
|
||||||
|
import TocWidget from "../widgets/toc.js";
|
||||||
|
import WatchedFileUpdateStatusWidget from "../widgets/watched_file_update_status.js";
|
||||||
|
import { applyModals } from "./layout_commons.js";
|
||||||
|
|
||||||
export default class DesktopLayout {
|
export default class DesktopLayout {
|
||||||
|
|
||||||
@@ -95,7 +94,7 @@ export default class DesktopLayout {
|
|||||||
|
|
||||||
const rootContainer = new RootContainer(true)
|
const rootContainer = new RootContainer(true)
|
||||||
.setParent(appContext)
|
.setParent(appContext)
|
||||||
.class((launcherPaneIsHorizontal ? "horizontal" : "vertical") + "-layout")
|
.class(`${launcherPaneIsHorizontal ? "horizontal" : "vertical" }-layout`)
|
||||||
.optChild(
|
.optChild(
|
||||||
fullWidthTabBar,
|
fullWidthTabBar,
|
||||||
new FlexContainer("row")
|
new FlexContainer("row")
|
||||||
@@ -141,7 +140,7 @@ export default class DesktopLayout {
|
|||||||
.filling()
|
.filling()
|
||||||
.collapsible()
|
.collapsible()
|
||||||
.id("center-pane")
|
.id("center-pane")
|
||||||
.optChild(isNewLayout, <StandaloneRibbonAdapter component={FormattingToolbar} />)
|
.optChild(isNewLayout, <FixedFormattingToolbar />)
|
||||||
.child(
|
.child(
|
||||||
new SplitNoteContainer(() =>
|
new SplitNoteContainer(() =>
|
||||||
new NoteWrapperWidget()
|
new NoteWrapperWidget()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { useRef } from "preact/hooks";
|
import { useRef } from "preact/hooks";
|
||||||
import { useTriliumEvent, useTriliumOption } from "../react/hooks";
|
|
||||||
|
import { useActiveNoteContext, useIsNoteReadOnly, useNoteProperty, useTriliumEvent, useTriliumOption } from "../react/hooks";
|
||||||
import { TabContext } from "./ribbon-interface";
|
import { TabContext } from "./ribbon-interface";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -33,5 +34,25 @@ export default function FormattingToolbar({ hidden, ntxId }: TabContext) {
|
|||||||
ref={containerRef}
|
ref={containerRef}
|
||||||
className={`classic-toolbar-widget ${hidden ? "hidden-ext" : ""}`}
|
className={`classic-toolbar-widget ${hidden ? "hidden-ext" : ""}`}
|
||||||
/>
|
/>
|
||||||
)
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export function FixedFormattingToolbar() {
|
||||||
|
const containerRef = useRef<HTMLDivElement>(null);
|
||||||
|
const [ textNoteEditorType ] = useTriliumOption("textNoteEditorType");
|
||||||
|
const { note, noteContext } = useActiveNoteContext();
|
||||||
|
const noteType = useNoteProperty(note, "type");
|
||||||
|
const { isReadOnly } = useIsNoteReadOnly(note, noteContext);
|
||||||
|
const shown = (
|
||||||
|
textNoteEditorType === "ckeditor-classic" &&
|
||||||
|
noteType === "text" &&
|
||||||
|
!isReadOnly
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
ref={containerRef}
|
||||||
|
className={`classic-toolbar-widget ${!shown ? "hidden-ext" : ""}`}
|
||||||
|
>Hi</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user