import "./NoteBadges.css"; import { copyTextWithToast } from "../../services/clipboard_ext"; import { t } from "../../services/i18n"; import { goToLinkExt } from "../../services/link"; import { Badge, BadgeWithDropdown } from "../react/Badge"; import { FormDropdownDivider, FormListItem } from "../react/FormList"; import { useIsNoteReadOnly, useNoteContext, useNoteLabel, useNoteLabelBoolean } from "../react/hooks"; import { useShareState } from "../ribbon/BasicPropertiesTab"; import { useShareInfo } from "../shared_info"; export default function NoteBadges() { return (
); } function ReadOnlyBadge() { const { note, noteContext } = useNoteContext(); const { isReadOnly, enableEditing } = useIsNoteReadOnly(note, noteContext); const isExplicitReadOnly = note?.isLabelTruthy("readOnly"); const isTemporarilyEditable = noteContext?.ntxId !== "_popup-editor" && noteContext?.viewScope?.readOnlyTemporarilyDisabled; if (isTemporarilyEditable) { return enableEditing(false)} />; } else if (isReadOnly) { return enableEditing()} />; } } function ShareBadge() { const { note } = useNoteContext(); const [ , switchShareState ] = useShareState(note); const { isSharedExternally, linkHref } = useShareInfo(note); return (linkHref && copyTextWithToast(linkHref)} >{t("breadcrumb_badges.shared_copy_to_clipboard")} goToLinkExt(e, linkHref)} >{t("breadcrumb_badges.shared_open_in_browser")} switchShareState(false)} >{t("breadcrumb_badges.shared_unshare")} ); } function ClippedNoteBadge() { const { note } = useNoteContext(); const [ pageUrl ] = useNoteLabel(note, "pageUrl"); return (pageUrl && ); } function ExecuteBadge() { const { note, parentComponent } = useNoteContext(); const isScript = note?.isTriliumScript(); const isSql = note?.isTriliumSqlite(); const isExecutable = isScript || isSql; const [ executeDescription ] = useNoteLabel(note, "executeDescription"); const [ executeButton ] = useNoteLabelBoolean(note, "executeButton"); return (note && isExecutable && (executeDescription || executeButton) && parentComponent.triggerCommand("runActiveNote")} /> ); }