From a1f9fe5a861eb9c2d7863223955b986b19ff9cc8 Mon Sep 17 00:00:00 2001 From: Badri Sunderarajan Date: Fri, 14 May 2021 18:47:06 +0530 Subject: [PATCH] Display TK-filled preview based on table data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This preview is as yet unformatted...but stay tuned; we're soon to add Markdown! 😉 --- src/App.svelte | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/App.svelte b/src/App.svelte index 5a0eff5..4da0a15 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -9,6 +9,9 @@ let step = 0 let tkList = [] + let cookiePreviewText = '' + let cookiePreviewRow = 0 + function showEmail() { step = 1 } @@ -53,6 +56,9 @@ sheetOne = new Importabular({ node: editor, columns: columns, + onChange(data) { + cookiePreviewText = getPreview() + } }) step = 2 @@ -61,6 +67,59 @@ window.sheetOne = sheetOne } + function incrementPreviewRow() { + let sheetLength = sheetOne.getData().length + + // make sure it's not too big... + if (cookiePreviewRow >= sheetLength-1) { + cookiePreviewRow = sheetLength - 1 + } else if (cookiePreviewRow < 0) { + // ...and not too small + cookiePreviewRow = 0 + } else { + // if not, then make it "just right"! :) + cookiePreviewRow++ + } + } + + function decrementPreviewRow() { + let sheetLength = sheetOne.getData().length + // make sure it's not too small... + if (cookiePreviewRow >= sheetLength) { + // ...and not too big + cookiePreviewRow = sheetLength - 1 + } else if (cookiePreviewRow <= 0) { + // if not, then make it "just right"! :) + cookiePreviewRow = 0 + } else { + cookiePreviewRow-- + } + } + + function getPreview(row) { + if (!row) row = cookiePreviewRow + let previewText = emailContent + + // get the row we're working on + if (!sheetOne) return '' // no sheet to get data from :( + let data = sheetOne.getData() + if (row < 0 || data.length < row) return previewText // no row to apply :( + let r = data[row] + + for (let tk of tkList) { + // figure out which column holds values for this TK + let tkIndex = window.sheetOne.columns.findIndex(t => t.label == tk) + + // replace it! + previewText = previewText.replace(new RegExp(`\\[TK ${tk}\\]`, 'g'), r[tkIndex]) + } + + return previewText + } + + // automatically update + $: cookiePreviewText = getPreview(cookiePreviewRow) + function next() { step += 1 } @@ -104,6 +163,13 @@ {#if step == 1} {/if} + + {#if step == 2} + + +
{cookiePreviewText}
+ {/if} +