'use client';

/**
 * Salvar vista — delega para {@link ListingSavedFiltersSection} genérico.
 */

import React, { useMemo } from 'react';
import { ListingSavedFiltersSection } from '@/components/listings';
import {
    SUPORTE_LOGS_LIST_MODULE_KEY,
    suporteLogsFiltrosToPayload,
    type SuporteLogsFiltrosPayloadV1} from '@/features/suporte/logs/utils/suporteLogsFiltrosPayload';
import type { SuporteLogsResolvedFilter } from '../utils/suporteLogsListaFiltersUrl';

type Props = {
    enabled: boolean;
    level: string;
    dateFrom: string;
    dateTo: string;
    projetoId: string;
    resolved: SuporteLogsResolvedFilter;
    search: string;
};

/** @deprecated Preferir `ListingSavedFiltersSection` diretamente. */
export function SuporteLogsFiltrosSalvosSection({
    enabled,
    level,
    dateFrom,
    dateTo,
    projetoId,
    resolved,
    search}: Props) {
    const snapshotKey = useMemo(
            () =>
                JSON.stringify({
                    level,
                    dateFrom,
                    dateTo,
                    projetoId,
                    resolved,
                    search}),
            [level, dateFrom, dateTo, projetoId, resolved, search],
        );

    return (
        <ListingSavedFiltersSection
            moduleKey={SUPORTE_LOGS_LIST_MODULE_KEY}
            enabled={enabled}
            snapshotKey={snapshotKey}
            openButtonTestId="suporte-logs-salvar-vista-modal"
            modalTestId="suporte-logs-salvar-vista-modal"
            modalTitle="Salvar visualização atual"
            saveDescription="Inclui nível, período, projeto, estado de realização e texto de pesquisa aplicados no rascunho do modal."
            buildPayload={() => suporteLogsFiltrosToPayload({
            level,
            dateFrom,
            dateTo,
            projetoId,
            resolved,
            search})}
        />
    );
}
