import { useContext, useMemo } from "preact/hooks"; import { t } from "../../services/i18n"; import { ViewTypeOptions } from "../../services/note_list_renderer"; import FormSelect from "../react/FormSelect"; import { TabContext } from "./ribbon-interface"; import { mapToKeyValueArray } from "../../services/utils"; import { useNoteLabel } from "../react/hooks"; import { bookPropertiesConfig, BookProperty, ButtonProperty } from "../ribbon_widgets/book_properties_config"; import Button from "../react/Button"; import { ParentComponent } from "../react/react_utils"; import FNote from "../../entities/fnote"; const VIEW_TYPE_MAPPINGS: Record = { grid: t("book_properties.grid"), list: t("book_properties.list"), calendar: t("book_properties.calendar"), table: t("book_properties.table"), geoMap: t("book_properties.geo-map"), board: t("book_properties.board") }; export default function CollectionPropertiesTab({ note }: TabContext) { const [ viewType, setViewType ] = useNoteLabel(note, "viewType"); const viewTypeWithDefault = viewType ?? "grid"; const properties = bookPropertiesConfig[viewTypeWithDefault].properties; return (note &&
); } function CollectionTypeSwitcher({ viewType, setViewType }: { viewType: string, setViewType: (newValue: string) => void }) { const collectionTypes = useMemo(() => mapToKeyValueArray(VIEW_TYPE_MAPPINGS), []); return (
{t("book_properties.view_type")}:   
) } function BookProperties({ note, properties }: { note: FNote, properties: BookProperty[] }) { return (
{properties.map(property => (
{mapPropertyView({ note, property })}
))}
) } function mapPropertyView({ note, property }: { note: FNote, property: BookProperty }) { switch (property.type) { case "button": return } } function ButtonPropertyView({ note, property }: { note: FNote, property: ButtonProperty }) { const parentComponent = useContext(ParentComponent); return