Props for the MatchingPanel component.

interface MatchingPanelProps {
matches: MangaMatchResult[];
onManualSearch: (manga: KenmeiManga) => void;
onAcceptMatch: (
match:
| MangaMatchResult
| { isBatchOperation: boolean; matches: MangaMatchResult[] },
) => void;
onRejectMatch: (
match:
| MangaMatchResult
| { isBatchOperation: boolean; matches: MangaMatchResult[] },
) => void;
onSelectAlternative: (
match: MangaMatchResult,
alternativeIndex: number,
autoAccept?: boolean,
directAccept?: boolean,
) => void;
onResetToPending: (
match:
| MangaMatchResult
| { isBatchOperation: boolean; matches: MangaMatchResult[] },
) => void;
searchQuery: string;
onProceedToSync: () => void;
onBackToImport: () => void;
onSetMatchedToPending?: () => void;
isSetMatchedToPendingDisabled?: boolean;
selectedMatchIds?: Set<number>;
onToggleSelection?: (matchId: number) => void;
onSelectAll?: (ids: number[]) => void;
onClearSelection?: () => void;
}
interface MatchingPanelProps {
    matches: MangaMatchResult[];
    onManualSearch: (manga: KenmeiManga) => void;
    onAcceptMatch: (
        match:
            | MangaMatchResult
            | { isBatchOperation: boolean; matches: MangaMatchResult[] },
    ) => void;
    onRejectMatch: (
        match:
            | MangaMatchResult
            | { isBatchOperation: boolean; matches: MangaMatchResult[] },
    ) => void;
    onSelectAlternative: (
        match: MangaMatchResult,
        alternativeIndex: number,
        autoAccept?: boolean,
        directAccept?: boolean,
    ) => void;
    onResetToPending: (
        match:
            | MangaMatchResult
            | { isBatchOperation: boolean; matches: MangaMatchResult[] },
    ) => void;
    searchQuery: string;
    onProceedToSync: () => void;
    onBackToImport: () => void;
    onSetMatchedToPending?: () => void;
    isSetMatchedToPendingDisabled?: boolean;
    selectedMatchIds?: Set<number>;
    onToggleSelection?: (matchId: number) => void;
    onSelectAll?: (ids: number[]) => void;
    onClearSelection?: () => void;
}

Properties

matches: MangaMatchResult[]

List of manga match results to display and manage.

onManualSearch: (manga: KenmeiManga) => void

Callback to trigger manual search for a Kenmei manga.

onAcceptMatch: (
    match:
        | MangaMatchResult
        | { isBatchOperation: boolean; matches: MangaMatchResult[] },
) => void

Callback when a match is accepted.

onRejectMatch: (
    match:
        | MangaMatchResult
        | { isBatchOperation: boolean; matches: MangaMatchResult[] },
) => void

Callback when a match is rejected.

onSelectAlternative: (
    match: MangaMatchResult,
    alternativeIndex: number,
    autoAccept?: boolean,
    directAccept?: boolean,
) => void

Callback to select an alternative match.

onResetToPending: (
    match:
        | MangaMatchResult
        | { isBatchOperation: boolean; matches: MangaMatchResult[] },
) => void

Callback to reset a match to pending status.

searchQuery: string

Current search query to highlight or filter.

onProceedToSync: () => void

Callback to proceed to the sync stage.

onBackToImport: () => void

Callback to return to the import stage.

onSetMatchedToPending?: () => void

Optional callback to reset matched items to pending.

isSetMatchedToPendingDisabled?: boolean

Whether to disable the pending reset button.

selectedMatchIds?: Set<number>

Optional set of selected match IDs for batch operations.

onToggleSelection?: (matchId: number) => void

Optional callback to toggle selection of a match.

onSelectAll?: (ids: number[]) => void

Optional callback to select all visible matches.

onClearSelection?: () => void

Optional callback to clear all selections.