import React from "react"; import { GroupedStatuses, NoteStatus } from "@/types/noteStatus"; import { StatusSelectorGroup, Props as StatusSelectorGroupProps, } from "./StatusSelectorGroup"; import { StatusTemplate } from "@/types/pluginSettings"; export interface Props { currentStatuses: GroupedStatuses; filesQuantity: number; availableStatuses: NoteStatus[]; templates: StatusTemplate[]; iconFrameMode?: "always" | "never"; iconColorMode?: "status" | "theme"; onRemoveStatus: ( frontmatterTagName: string, status: NoteStatus, ) => Promise; onSelectStatus: ( frontmatterTagName: string, status: NoteStatus, ) => Promise; } export const ChangeStatusModal: React.FC = ({ currentStatuses: initialStatuses, filesQuantity, availableStatuses, templates, iconFrameMode = "never", iconColorMode = "status", onRemoveStatus, onSelectStatus, }) => { const currentStatuses = Object.entries(initialStatuses); const handleSelectedState: StatusSelectorGroupProps["onSelectedState"] = ( frontmatterTagName, status, action, ) => { if (action === "select") { onSelectStatus(frontmatterTagName, status); } else { onRemoveStatus(frontmatterTagName, status); } }; return ( <>

Change note status ({filesQuantity} file {filesQuantity !== 1 ? "s" : ""})

{currentStatuses.map(([frontmatterTagName, statusList]) => ( ))} ); };