mirror of
https://github.com/devonthesofa/obsidian-note-status.git
synced 2026-07-22 05:45:04 +00:00
fix: remove core from component
This commit is contained in:
parent
9b36b0179a
commit
4f6adc88a1
4 changed files with 35 additions and 6 deletions
|
|
@ -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<Props> = ({
|
|||
filesQuantity,
|
||||
availableStatuses,
|
||||
templates,
|
||||
iconFrameMode = "never",
|
||||
iconColorMode = "status",
|
||||
onRemoveStatus,
|
||||
onSelectStatus,
|
||||
}) => {
|
||||
|
|
@ -57,6 +61,8 @@ export const ChangeStatusModal: React.FC<Props> = ({
|
|||
availableStatuses={availableStatuses}
|
||||
currentStatuses={statusList}
|
||||
templates={templates}
|
||||
iconFrameMode={iconFrameMode}
|
||||
iconColorMode={iconColorMode}
|
||||
onSelectedState={handleSelectedState}
|
||||
/>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -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<Props> = ({
|
|||
availableStatuses,
|
||||
templates,
|
||||
frontmatterTagName,
|
||||
iconFrameMode,
|
||||
iconColorMode,
|
||||
onSelectedState,
|
||||
}) => {
|
||||
const TEMPLATE_ALL_VIEW = "__all__";
|
||||
|
|
@ -201,6 +205,8 @@ export const StatusSelectorGroup: React.FC<Props> = ({
|
|||
availableStatuses={filteredStatuses}
|
||||
currentStatuses={currentStatuses}
|
||||
focusedIndex={focusedIndex}
|
||||
iconFrameMode={iconFrameMode}
|
||||
iconColorMode={iconColorMode}
|
||||
onToggleStatus={(status, selected) =>
|
||||
selected
|
||||
? handleSelectStatus(status)
|
||||
|
|
|
|||
|
|
@ -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<StatusOptionProps> = 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 (
|
||||
<SelectableListItem
|
||||
|
|
@ -64,6 +68,8 @@ export interface Props {
|
|||
availableStatuses: NoteStatus[];
|
||||
focusedIndex?: number;
|
||||
onToggleStatus: (status: NoteStatus, selected: boolean) => void;
|
||||
iconFrameMode?: "always" | "never";
|
||||
iconColorMode?: "status" | "theme";
|
||||
}
|
||||
|
||||
export const StatusSelector: React.FC<Props> = ({
|
||||
|
|
@ -71,6 +77,8 @@ export const StatusSelector: React.FC<Props> = ({
|
|||
availableStatuses,
|
||||
focusedIndex = -1,
|
||||
onToggleStatus,
|
||||
iconFrameMode = "never",
|
||||
iconColorMode = "status",
|
||||
}) => {
|
||||
const handleSelectStatus = useCallback(
|
||||
async (status: NoteStatus) => {
|
||||
|
|
@ -98,6 +106,8 @@ export const StatusSelector: React.FC<Props> = ({
|
|||
isSelected={isStatusSelected(status, currentStatuses)}
|
||||
isFocused={index === focusedIndex}
|
||||
onSelect={() => handleSelectStatus(status)}
|
||||
iconFrameMode={iconFrameMode}
|
||||
iconColorMode={iconColorMode}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
/>,
|
||||
|
|
|
|||
Loading…
Reference in a new issue