mirror of
https://github.com/zadam/trilium.git
synced 2025-10-21 23:59:02 +02:00
chore(react/ribbon): add all ribbon tab titles & icon
This commit is contained in:
parent
45fbcec805
commit
5597f4e2e0
@ -1020,6 +1020,10 @@ class FNote {
|
|||||||
return this.noteId.startsWith("_options");
|
return this.noteId.startsWith("_options");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isTriliumSqlite() {
|
||||||
|
return this.mime === "text/x-sqlite;schema=trilium";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides note's date metadata.
|
* Provides note's date metadata.
|
||||||
*/
|
*/
|
||||||
|
3
apps/client/src/widgets/ribbon/BasicPropertiesTab.tsx
Normal file
3
apps/client/src/widgets/ribbon/BasicPropertiesTab.tsx
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export default function BasicPropertiesTab() {
|
||||||
|
return <p>Hi</p>;
|
||||||
|
}
|
@ -1,15 +1,112 @@
|
|||||||
|
import FNote from "../../entities/fnote";
|
||||||
import { t } from "../../services/i18n";
|
import { t } from "../../services/i18n";
|
||||||
|
import { useNoteContext } from "../react/hooks";
|
||||||
import "./style.css";
|
import "./style.css";
|
||||||
|
|
||||||
|
type TitleFn = string | ((context: TabContext) => string);
|
||||||
|
|
||||||
|
interface TabContext {
|
||||||
|
note: FNote | null | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TabConfiguration {
|
||||||
|
title: TitleFn;
|
||||||
|
icon: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const TAB_CONFIGURATION: TabConfiguration[] = [
|
||||||
|
{
|
||||||
|
title: t("classic_editor_toolbar.title"),
|
||||||
|
icon: "bx bx-text"
|
||||||
|
// ClassicEditorToolbar
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: ({ note }) => note?.isTriliumSqlite() ? t("script_executor.query") : t("script_executor.script"),
|
||||||
|
icon: "bx bx-play"
|
||||||
|
// ScriptExecutorWidget
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// SearchDefinitionWidget
|
||||||
|
title: t("search_definition.search_parameters"),
|
||||||
|
icon: "bx bx-search"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// Edited NotesWidget
|
||||||
|
title: t("edited_notes.title"),
|
||||||
|
icon: "bx bx-calendar-edit"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// BookPropertiesWidget
|
||||||
|
title: t("book_properties.book_properties"),
|
||||||
|
icon: "bx bx-book"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// NotePropertiesWidget
|
||||||
|
title: t("note_properties.info"),
|
||||||
|
icon: "bx bx-info-square"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// FilePropertiesWidget
|
||||||
|
title: t("file_properties.title"),
|
||||||
|
icon: "bx bx-file"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// ImagePropertiesWidget
|
||||||
|
title: t("image_properties.title"),
|
||||||
|
icon: "bx bx-image"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// BasicProperties
|
||||||
|
title: t("basic_properties.basic_properties"),
|
||||||
|
icon: "bx bx-slider"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// OwnedAttributeListWidget
|
||||||
|
title: t("owned_attribute_list.owned_attributes"),
|
||||||
|
icon: "bx bx-list-check"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// InheritedAttributesWidget
|
||||||
|
title: t("inherited_attribute_list.title"),
|
||||||
|
icon: "bx bx-list-plus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// NotePathsWidget
|
||||||
|
title: t("note_paths.title"),
|
||||||
|
icon: "bx bx-collection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// NoteMapRibbonWidget
|
||||||
|
title: t("note_map.title"),
|
||||||
|
icon: "bx bxs-network-chart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// SimilarNotesWidget
|
||||||
|
title: t("similar_notes.title"),
|
||||||
|
icon: "bx bx-bar-chart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// NoteInfoWidget
|
||||||
|
title: t("note_info_widget.title"),
|
||||||
|
icon: "bx bx-info-circle"
|
||||||
|
},
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
export default function Ribbon() {
|
export default function Ribbon() {
|
||||||
|
const { note } = useNoteContext();
|
||||||
|
const context: TabContext = { note };
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class="ribbon-container" style={{ contain: "none" }}>
|
<div class="ribbon-container" style={{ contain: "none" }}>
|
||||||
<div className="ribbon-top-row">
|
<div className="ribbon-top-row">
|
||||||
<div className="ribbon-tab-container">
|
<div className="ribbon-tab-container">
|
||||||
<RibbonTab
|
{TAB_CONFIGURATION.map(({ title, icon }) => (
|
||||||
title={t("basic_properties.basic_properties")}
|
<RibbonTab
|
||||||
icon="bx bx-slider"
|
icon={icon}
|
||||||
/>
|
title={typeof title === "string" ? title : title(context)}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
<div className="ribbon-button-container"></div>
|
<div className="ribbon-button-container"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -34,4 +131,5 @@ function RibbonTab({ icon, title }: { icon: string; title: string }) {
|
|||||||
<div class="ribbon-tab-spacer" />
|
<div class="ribbon-tab-spacer" />
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,8 +93,7 @@ export default class BookPropertiesWidget extends NoteContextAwareWidget {
|
|||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
title: t("book_properties.book_properties"),
|
|
||||||
icon: "bx bx-book"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,8 +64,6 @@ export default class ClassicEditorToolbar extends NoteContextAwareWidget {
|
|||||||
return {
|
return {
|
||||||
show: await this.#shouldDisplay(),
|
show: await this.#shouldDisplay(),
|
||||||
activate: true,
|
activate: true,
|
||||||
title: t("classic_editor_toolbar.title"),
|
|
||||||
icon: "bx bx-text"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,8 +49,7 @@ export default class EditedNotesWidget extends NoteContextAwareWidget {
|
|||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
// promoted attributes have priority over edited notes
|
// promoted attributes have priority over edited notes
|
||||||
activate: (this.note?.getPromotedDefinitionAttributes().length === 0 || !options.is("promotedAttributesOpenInRibbon")) && options.is("editedNotesOpenInRibbon"),
|
activate: (this.note?.getPromotedDefinitionAttributes().length === 0 || !options.is("promotedAttributesOpenInRibbon")) && options.is("editedNotesOpenInRibbon"),
|
||||||
title: t("edited_notes.title"),
|
|
||||||
icon: "bx bx-calendar-edit"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,8 +93,7 @@ export default class FilePropertiesWidget extends NoteContextAwareWidget {
|
|||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
activate: true,
|
activate: true,
|
||||||
title: t("file_properties.title"),
|
|
||||||
icon: "bx bx-file"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,8 +77,7 @@ export default class ImagePropertiesWidget extends NoteContextAwareWidget {
|
|||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
activate: true,
|
activate: true,
|
||||||
title: t("image_properties.title"),
|
|
||||||
icon: "bx bx-image"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,7 @@ export default class InheritedAttributesWidget extends NoteContextAwareWidget {
|
|||||||
|
|
||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: !this.note?.isLaunchBarConfig(),
|
show: !this.note?.isLaunchBarConfig()
|
||||||
title: t("inherited_attribute_list.title"),
|
|
||||||
icon: "bx bx-list-plus"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,8 +105,7 @@ export default class NoteInfoWidget extends NoteContextAwareWidget {
|
|||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
title: t("note_info_widget.title"),
|
|
||||||
icon: "bx bx-info-circle"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,9 +57,7 @@ export default class NoteMapRibbonWidget extends NoteContextAwareWidget {
|
|||||||
|
|
||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled()
|
||||||
title: t("note_map.title"),
|
|
||||||
icon: "bx bxs-network-chart"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,8 +55,7 @@ export default class NotePathsWidget extends NoteContextAwareWidget {
|
|||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: true,
|
show: true,
|
||||||
title: t("note_paths.title"),
|
|
||||||
icon: "bx bx-collection"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,8 +31,7 @@ export default class NotePropertiesWidget extends NoteContextAwareWidget {
|
|||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
activate: true,
|
activate: true,
|
||||||
title: t("note_properties.info"),
|
|
||||||
icon: "bx bx-info-square"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,8 +52,7 @@ export default class OwnedAttributeListWidget extends NoteContextAwareWidget {
|
|||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: !this.note?.isLaunchBarConfig(),
|
show: !this.note?.isLaunchBarConfig(),
|
||||||
title: t("owned_attribute_list.owned_attributes"),
|
|
||||||
icon: "bx bx-list-check"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,16 +37,10 @@ export default class ScriptExecutorWidget extends NoteContextAwareWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
isTriliumSqlite() {
|
|
||||||
return this.note?.mime === "text/x-sqlite;schema=trilium";
|
|
||||||
}
|
|
||||||
|
|
||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
activate: true,
|
activate: true
|
||||||
title: this.isTriliumSqlite() ? t("script_executor.query") : t("script_executor.script"),
|
|
||||||
icon: "bx bx-play"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,9 +187,7 @@ export default class SearchDefinitionWidget extends NoteContextAwareWidget {
|
|||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
activate: true,
|
activate: true
|
||||||
title: t("search_definition.search_parameters"),
|
|
||||||
icon: "bx bx-search"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,8 +61,7 @@ export default class SimilarNotesWidget extends NoteContextAwareWidget {
|
|||||||
getTitle() {
|
getTitle() {
|
||||||
return {
|
return {
|
||||||
show: this.isEnabled(),
|
show: this.isEnabled(),
|
||||||
title: t("similar_notes.title"),
|
|
||||||
icon: "bx bx-bar-chart"
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user