diff --git a/components/ChangeStatusModal/ChangeStatusModal.tsx b/components/ChangeStatusModal/ChangeStatusModal.tsx index 2f3ef6e..66dc748 100644 --- a/components/ChangeStatusModal/ChangeStatusModal.tsx +++ b/components/ChangeStatusModal/ChangeStatusModal.tsx @@ -11,6 +11,8 @@ export interface Props { filesQuantity: number; availableStatuses: NoteStatus[]; templates: StatusTemplate[]; + iconFrameMode?: "always" | "never"; + iconColorMode?: "status" | "theme"; onRemoveStatus: ( frontmatterTagName: string, status: NoteStatus, @@ -26,6 +28,8 @@ export const ChangeStatusModal: React.FC = ({ filesQuantity, availableStatuses, templates, + iconFrameMode = "never", + iconColorMode = "status", onRemoveStatus, onSelectStatus, }) => { @@ -57,6 +61,8 @@ export const ChangeStatusModal: React.FC = ({ availableStatuses={availableStatuses} currentStatuses={statusList} templates={templates} + iconFrameMode={iconFrameMode} + iconColorMode={iconColorMode} onSelectedState={handleSelectedState} /> ))} diff --git a/components/ChangeStatusModal/StatusSelectorGroup.tsx b/components/ChangeStatusModal/StatusSelectorGroup.tsx index b7821f1..7ae5d26 100644 --- a/components/ChangeStatusModal/StatusSelectorGroup.tsx +++ b/components/ChangeStatusModal/StatusSelectorGroup.tsx @@ -12,6 +12,8 @@ export interface Props { currentStatuses: NoteStatus[]; availableStatuses: NoteStatus[]; templates: StatusTemplate[]; + iconFrameMode: "always" | "never"; + iconColorMode: "status" | "theme"; onSelectedState: ( frontmatterTagName: string, status: NoteStatus, @@ -24,6 +26,8 @@ export const StatusSelectorGroup: React.FC = ({ availableStatuses, templates, frontmatterTagName, + iconFrameMode, + iconColorMode, onSelectedState, }) => { const TEMPLATE_ALL_VIEW = "__all__"; @@ -201,6 +205,8 @@ export const StatusSelectorGroup: React.FC = ({ availableStatuses={filteredStatuses} currentStatuses={currentStatuses} focusedIndex={focusedIndex} + iconFrameMode={iconFrameMode} + iconColorMode={iconColorMode} onToggleStatus={(status, selected) => selected ? handleSelectStatus(status) diff --git a/components/atoms/StatusSelector.tsx b/components/atoms/StatusSelector.tsx index 5703b96..b3dc9e4 100644 --- a/components/atoms/StatusSelector.tsx +++ b/components/atoms/StatusSelector.tsx @@ -3,24 +3,28 @@ import { NoteStatus } from "@/types/noteStatus"; import { SelectableListItem } from "./SelectableListItem"; import { getStatusTooltip, isStatusSelected } from "@/utils/statusUtils"; import { StatusIconPreview } from "./StatusIconPreview"; -import settingsService from "@/core/settingsService"; interface StatusOptionProps { status: NoteStatus; isSelected: boolean; isFocused: boolean; onSelect: () => void; + iconFrameMode: "always" | "never"; + iconColorMode: "status" | "theme"; } export const StatusModalOption: React.FC = memo( - ({ status, isSelected, isFocused, onSelect }) => { + ({ + status, + isSelected, + isFocused, + onSelect, + iconFrameMode, + iconColorMode, + }) => { const displayName = status.templateId ? `${status.name} (${status.templateId})` : status.name; - const { fileExplorerIconFrame, fileExplorerIconColorMode } = - settingsService.settings; - const iconFrameMode = fileExplorerIconFrame || "never"; - const iconColorMode = fileExplorerIconColorMode || "status"; return ( void; + iconFrameMode?: "always" | "never"; + iconColorMode?: "status" | "theme"; } export const StatusSelector: React.FC = ({ @@ -71,6 +77,8 @@ export const StatusSelector: React.FC = ({ availableStatuses, focusedIndex = -1, onToggleStatus, + iconFrameMode = "never", + iconColorMode = "status", }) => { const handleSelectStatus = useCallback( async (status: NoteStatus) => { @@ -98,6 +106,8 @@ export const StatusSelector: React.FC = ({ isSelected={isStatusSelected(status, currentStatuses)} isFocused={index === focusedIndex} onSelect={() => handleSelectStatus(status)} + iconFrameMode={iconFrameMode} + iconColorMode={iconColorMode} /> ))} diff --git a/integrations/modals/statusModalIntegration.tsx b/integrations/modals/statusModalIntegration.tsx index 7ddf11e..19b9c2a 100644 --- a/integrations/modals/statusModalIntegration.tsx +++ b/integrations/modals/statusModalIntegration.tsx @@ -118,6 +118,13 @@ export class StatusModalIntegration extends Modal { } filesQuantity={filesQuantity} templates={settingsService.settings.templates} + iconFrameMode={ + settingsService.settings.fileExplorerIconFrame || "never" + } + iconColorMode={ + settingsService.settings.fileExplorerIconColorMode || + "status" + } onRemoveStatus={this.onRemoveStatus} onSelectStatus={this.onSelectStatus} />,