jabyess / mailroad Goto Github PK
View Code? Open in Web Editor NEWReact + slate + MJML + express to make drafting complex emails easier.
React + slate + MJML + express to make drafting complex emails easier.
Options:
https://github.com/pburtchaell/react-notification
https://github.com/igorprado/react-notification-system (except it uses refs)
Roll my own with some simple system.
For example, data structure is now:
"content": [
{
"content": "
Just start typing
",should be:
"contents": [
{
"content": "
Just start typing
",This change needs to be made in a whole bunch of places, both front and backend and database views.
I don't know why I didn't do this a long time ago.
CSS sourcemaps currently do not exist.
Should be simple enough.
I thought it was working fine but it is not.
No mockup currently, but i believe we can do better.
Should insert an empty node of some kind after image.
Need at least:
Spacing between them
Better visual rhythm, might include Section titles at the top of each one, maybe a title-like section.
Only templates at the top level should show up in Editor dropdowns. Or rearrange the folder structure to make it easier.
Export first argument should be the name of the component being exported. Somehow.
Not showing when adding new images.
Should use the copy function from couchdb. Only one email should be able to be copied at a time, so if you select more than one email in the list, disable the copy button.
Figure it out son.
Ideally using passportjs
For example, should be able to link to /editor/uuid to edit an email.
Add confirm on delete
Hide delete buttons when not in media gallery section
Gallery works, but should be able to paste in an external URL and have slate load it.
Because right now they don't work on production build due to path differences. GET /api/email/templates is broke because it tries to read from a relative dir. Or maybe they should just
They should be stored in the filesystem so you can easily edit/update them without making database changes. Maybe they just need to be copied with webpack build.
MJML repo: https://github.com/mjmlio/mjml
Ideally this should pick up the template name, pass the content value into a template, and return some nicely formatted html. Maybe even display the return value so you can review what the generated markup looks like.
Look at ways to allow more flexibility when building templates. Specifically how to dynamically display certain components based on section titles.
Should support 1, 2, or 3 images, maybe with an option to center things.
Prevents data loss and version conflicts.
Use the react-datepicker components. Maybe give an option to choose datepicker or datespicker.
Should be able to add a dynamic number of dates and a description for each.
Tricky part will be how to store data in content field. Maybe.
So far they are:
EditorMetaContainer title input
EventsCalendar title input & date input
SingleImage caption
should be easy enough using couchdb and total_rows and skip.
Already similarly implemented in ImageGalleryModal.
see here: http://docs.couchdb.org/en/2.0.0/couchapp/views/pagination.html
API function doesn't properly check for null value case.
Related to #14, but needs to be different somehow. Not sure how yet. Maybe include a caption.
Now that we're not using babel on the server side it should be doable.
When adding an image to SingleImage component in EditorContainer there's a props error:
Uncaught TypeError: Cannot read property 'props' of null
at setImageSizes (eval at <anonymous> (http://localhost:8888/public/react-main.js:1436:1), <anonymous>:100:12)
Image isn't rendering.
Also remove dependency on local state.
Ideally also they would populate based on the template.
Ideally we want to add an error logging system for both client and server. Choice of logging module TBD.
For client side, we should set up an API endpoint that writes to this error log as well, so we can track everything but keep separate.
The goal is to pass the serialized HTML into MJML to format it nicely into tables. Then maybe send it to an API somewhere. This is still loosely thought out but it will get resolved.
Currently in EmailTableRow, inputs are not clearing even after refreshing email list and clearing EmailContainer.selectedCheckboxes state.
Important before launch.
For migrations, should be able to read each doc, see if it exists in the database, and if not add it.
If it does exist, update the design doc from disk to database.
So we can kill babel dependency on the server.
It's messy.
Currently it only swaps component titles. Should swap all contents. Probably something with the indexes.
Should support all common HTML tags, preserving src and href for images and links.
I think the selectedCheckboxes state value doesn't clear properly.
So that way you're not confused when the page refreshes and your email is gone.
Save in top level of doc.
Should be real simple, maybe just a single input field. Possible options:
componentDidUpdate just saves the whole state. Ideally we want to manage what gets saved, like a whole compiled email? Don't need it.
Add check during route changes to prevent some users from being able to access certain tabs, like admin things.
Probably will be based off roles in MCI.
Maybe one of the first things to be added to the admin panel - Categories like Brands, Finance, Tech, etc
Each email should only belong to 1 category.
Should be easy enough by editing EditorTypes with stringed keys
Need to be able to insert images outside of the slate editors, so create a component for that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.