diff --git a/src/contenteditable.ts b/src/contenteditable.ts index b812aaea..4ba662b4 100644 --- a/src/contenteditable.ts +++ b/src/contenteditable.ts @@ -9,7 +9,8 @@ import { import { HTMLTagMap, - HTMLTagName + HTMLTagName, + ProcessedCard } from './types.js'; import { @@ -464,4 +465,9 @@ export const importBodiesFromGoogleDocs = (content : string, mode : 'bulleted' | result.push(body); } return result; +}; + +export const exportContentForCards = (cards : ProcessedCard[]) : string => { + //TODO: convert markup. + return cards.map(card => card.body).join('\n'); }; \ No newline at end of file diff --git a/src/selectors.ts b/src/selectors.ts index a74df890..6392c395 100644 --- a/src/selectors.ts +++ b/src/selectors.ts @@ -160,10 +160,17 @@ import { Filters } from './types.js'; +import { + exportContentForCards +} from './contenteditable.js'; + import { TypedObject } from './typed_object.js'; -import { Timestamp } from 'firebase/firestore'; + +import { + Timestamp +} from 'firebase/firestore'; const selectState = (state : State) : State => state; @@ -1812,4 +1819,14 @@ export const selectMultiEditCardDiff = createSelector( if (todoDisablements.length) result.auto_todo_overrides_disablements = todoDisablements; return result; } +); + +export const selectBulkImportDialogExportContent = createSelector( + selectBulkImportDialogOpen, + selectBulKimportDialogMode, + selectActiveCollectionCards, + (open, mode, cards) => { + if (!open || mode != 'export') return ''; + return exportContentForCards(cards); + } ); \ No newline at end of file