import type { DataExtensionState, FieldArchive, ReportBI } from '@wix/bex-core'; export interface DataExtensionArchiveParams { dataExtension: DataExtensionState; reportBi: ReportBI; } /** * Adapts DataExtensionState to the source-neutral FieldArchive contract. Used by * the FieldsSource adapter and the archive-field modal. */ export const dataExtensionArchive = ({ dataExtension, reportBi, }: DataExtensionArchiveParams): FieldArchive => ({ get items() { return dataExtension.archivedItems.map((a) => ({ id: a.id, label: a.label, isPii: a.isPii, })); }, get shouldDisplay() { return dataExtension.shouldDisplayArchive ?? false; }, get isOpen() { return dataExtension.isArchivedPanelOpen; }, openPanel: () => dataExtension.openArchivedPanel(), closePanel: () => dataExtension.closeArchivedPanel(), archiveField: async (fieldId, origin) => { await dataExtension.archiveField({ id: fieldId, origin, reportBi }); }, restoreField: async (fieldId, origin) => { await dataExtension.restoreField({ id: fieldId, origin, reportBi }); }, fieldName: (fieldId) => dataExtension.extractFieldValuesFromSchema(fieldId)?.name ?? '', });