import "./NoteTitleActions.css"; import clsx from "clsx"; import { useEffect, useState } from "preact/hooks"; import NoteContext from "../../components/note_context"; import FNote from "../../entities/fnote"; import { t } from "../../services/i18n"; import CollectionProperties from "../note_bars/CollectionProperties"; import { checkFullHeight, getExtendedWidgetType } from "../NoteDetail"; import { PromotedAttributesContent, usePromotedAttributeData } from "../PromotedAttributes"; import Collapsible, { ExternallyControlledCollapsible } from "../react/Collapsible"; import { useNoteContext, useNoteProperty } from "../react/hooks"; import SearchDefinitionTab from "../ribbon/SearchDefinitionTab"; export default function NoteTitleActions() { const { note, ntxId, componentId, noteContext } = useNoteContext(); const isHiddenNote = note && note.noteId !== "_search" && note.noteId.startsWith("_"); const noteType = useNoteProperty(note, "type"); const items = [ note && , note && noteType === "search" && , note && !isHiddenNote && noteType === "book" && ].filter(Boolean); return (
0 && "visible")}> {items}
); } function SearchProperties({ note, ntxId }: { note: FNote, ntxId: string | null | undefined }) { return (note && ); } function PromotedAttributes({ note, componentId, noteContext }: { note: FNote | null | undefined, componentId: string, noteContext: NoteContext | undefined }) { const [ cells, setCells ] = usePromotedAttributeData(note, componentId); const [ expanded, setExpanded ] = useState(false); useEffect(() => { getExtendedWidgetType(note, noteContext).then(extendedNoteType => { const fullHeight = checkFullHeight(noteContext, extendedNoteType); setExpanded(!fullHeight); }); }, [ note, noteContext ]); if (!cells?.length) return false; return (note && ( )); }