Giter Site home page Giter Site logo

kappelmann / actnow_email Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 2.86 MB

Create email templates and share them with others; supports contact data backends.

Home Page: https://actnow.email

License: MIT License

HTML 0.61% TypeScript 97.21% JavaScript 1.73% Shell 0.45%

actnow_email's Introduction

actnow.email

A frontend to create email templates and share them with others via standard browser or mailto links. It also supports contact data backends. An example of the template creator can be found on actnow.email and an example integration of backend data on actnow.email/meps.

The app uses sql.js: contact databases are fetched from a server but all queries are run locally. This makes the service easy to host as no database backend service needs to be deployed.

Features:

  1. Create email templates
  2. Quickly share templates via URL, QR code, or social media integration
  3. Supports contact data backends
  4. Multi-language support

Building

  1. You need to install npm.
  2. Clone and navigate into this repository
  3. Run git submodule sync and git submodule update to initialise the git submodules
  4. Run npm install to install the npm dependencies
  5. (optional) Run ./update_db.sh to scrape and build the backend data
  6. Build the app npm run build. Files will be put into dist/.
  7. Run the app on a local webserver by running npm run start.

URL shortener

The default setup creates short links using https://actnow.link. Said service is powered by YOURLS. You may change the service by replacing the corresponding URLs in src/consts/urls.ts and updating the client src/shortLinkClient.ts and the corresponding client calls in other files.

If you also decide to use YOURLS, then note that an initial credential retrival call to credentials.php is made, the content of which is as follows:

<?php
$signature_token = <ADD_TOKEN_HERE>;
$hash_type = "sha512";
$timestamp = time();
$signature = hash($hash_type, $timestamp . $signature_token);
$result = (object) [
  "signature" => $signature,
  "timestamp" => $timestamp,
  "hash" => $hash_type
];
header("Content-type: application/json");
echo json_encode($result);
?>

Development & Contribute

Contributions are very welcome. Please follow the existing code structure and patterns. Note that though integrating new contact data backends should be moderately straightforward, a few places (e.g. the footer) are currently assuming that only the European parliament (actnow.email/meps) is supported. The search form FormMepsSelect.tsx may be abstracted in certain places when integratin a second backend.

actnow_email's People

Contributors

kappelmann avatar dependabot[bot] avatar

Stargazers

Kiara Grouwstra avatar

Watchers

 avatar

actnow_email's Issues

Page doesn't load if url is too long to generate QR Code

Example URL (with 705 MEPs)

https://actnow.email/mailto/?version=2020-08-10&mep_ids%5B%5D=840&mep_ids%5B%5D=1854&mep_ids%5B%5D=1909&mep_ids%5B%5D=1913&mep_ids%5B%5D=1917&mep_ids%5B%5D=1927&mep_ids%5B%5D=1992&mep_ids%5B%5D=2054&mep_ids%5B%5D=2187&mep_ids%5B%5D=2323&mep_ids%5B%5D=2341&mep_ids%5B%5D=4246&mep_ids%5B%5D=4253&mep_ids%5B%5D=4267&mep_ids%5B%5D=4289&mep_ids%5B%5D=4344&mep_ids%5B%5D=4391&mep_ids%5B%5D=4465&mep_ids%5B%5D=4560&mep_ids%5B%5D=4746&mep_ids%5B%5D=5392&mep_ids%5B%5D=5565&mep_ids%5B%5D=5729&mep_ids%5B%5D=22858&mep_ids%5B%5D=23699&mep_ids%5B%5D=23712&mep_ids%5B%5D=23768&mep_ids%5B%5D=23781&mep_ids%5B%5D=23788&mep_ids%5B%5D=23816&mep_ids%5B%5D=23821&mep_ids%5B%5D=23868&mep_ids%5B%5D=24505&mep_ids%5B%5D=24594&mep_ids%5B%5D=24922&mep_ids%5B%5D=26837&mep_ids%5B%5D=27714&mep_ids%5B%5D=28115&mep_ids%5B%5D=28122&mep_ids%5B%5D=28141&mep_ids%5B%5D=28150&mep_ids%5B%5D=28161&mep_ids%5B%5D=28219&mep_ids%5B%5D=28223&mep_ids%5B%5D=28224&mep_ids%5B%5D=28226&mep_ids%5B%5D=28229&mep_ids%5B%5D=28266&mep_ids%5B%5D=28269&mep_ids%5B%5D=28288&mep_ids%5B%5D=28294&mep_ids%5B%5D=28297&mep_ids%5B%5D=28298&mep_ids%5B%5D=28340&mep_ids%5B%5D=28347&mep_ids%5B%5D=28353&mep_ids%5B%5D=28372&mep_ids%5B%5D=28389&mep_ids%5B%5D=28390&mep_ids%5B%5D=28399&mep_ids%5B%5D=28400&mep_ids%5B%5D=28586&mep_ids%5B%5D=28615&mep_ids%5B%5D=28617&mep_ids%5B%5D=28619&mep_ids%5B%5D=29579&mep_ids%5B%5D=30482&mep_ids%5B%5D=33982&mep_ids%5B%5D=33997&mep_ids%5B%5D=34578&mep_ids%5B%5D=35016&mep_ids%5B%5D=36392&mep_ids%5B%5D=37229&mep_ids%5B%5D=37312&mep_ids%5B%5D=38398&mep_ids%5B%5D=38420&mep_ids%5B%5D=38511&mep_ids%5B%5D=38542&mep_ids%5B%5D=38595&mep_ids%5B%5D=39725&mep_ids%5B%5D=40599&mep_ids%5B%5D=58766&mep_ids%5B%5D=58789&mep_ids%5B%5D=72779&mep_ids%5B%5D=86793&mep_ids%5B%5D=88715&mep_ids%5B%5D=88882&mep_ids%5B%5D=94649&mep_ids%5B%5D=95074&mep_ids%5B%5D=96646&mep_ids%5B%5D=96648&mep_ids%5B%5D=96668&mep_ids%5B%5D=96681&mep_ids%5B%5D=96697&mep_ids%5B%5D=96698&mep_ids%5B%5D=96706&mep_ids%5B%5D=96709&mep_ids%5B%5D=96711&mep_ids%5B%5D=96713&mep_ids%5B%5D=96725&mep_ids%5B%5D=96730&mep_ids%5B%5D=96734&mep_ids%5B%5D=96739&mep_ids%5B%5D=96740&mep_ids%5B%5D=96743&mep_ids%5B%5D=96747&mep_ids%5B%5D=96750&mep_ids%5B%5D=96752&mep_ids%5B%5D=96756&mep_ids%5B%5D=96761&mep_ids%5B%5D=96771&mep_ids%5B%5D=96772&mep_ids%5B%5D=96776&mep_ids%5B%5D=96779&mep_ids%5B%5D=96780&mep_ids%5B%5D=96787&mep_ids%5B%5D=96791&mep_ids%5B%5D=96796&mep_ids%5B%5D=96801&mep_ids%5B%5D=96808&mep_ids%5B%5D=96809&mep_ids%5B%5D=96810&mep_ids%5B%5D=96811&mep_ids%5B%5D=96812&mep_ids%5B%5D=96820&mep_ids%5B%5D=96826&mep_ids%5B%5D=96829&mep_ids%5B%5D=96830&mep_ids%5B%5D=96833&mep_ids%5B%5D=96837&mep_ids%5B%5D=96842&mep_ids%5B%5D=96844&mep_ids%5B%5D=96852&mep_ids%5B%5D=96864&mep_ids%5B%5D=96867&mep_ids%5B%5D=96868&mep_ids%5B%5D=96880&mep_ids%5B%5D=96885&mep_ids%5B%5D=96891&mep_ids%5B%5D=96899&mep_ids%5B%5D=96903&mep_ids%5B%5D=96911&mep_ids%5B%5D=96922&mep_ids%5B%5D=96932&mep_ids%5B%5D=96933&mep_ids%5B%5D=96934&mep_ids%5B%5D=96936&mep_ids%5B%5D=96952&mep_ids%5B%5D=96978&mep_ids%5B%5D=96991&mep_ids%5B%5D=96998&mep_ids%5B%5D=97058&mep_ids%5B%5D=97133&mep_ids%5B%5D=97198&mep_ids%5B%5D=97236&mep_ids%5B%5D=97968&mep_ids%5B%5D=98341&mep_ids%5B%5D=98582&mep_ids%5B%5D=99283&mep_ids%5B%5D=99945&mep_ids%5B%5D=101039&mep_ids%5B%5D=101585&mep_ids%5B%5D=103381&mep_ids%5B%5D=103746&mep_ids%5B%5D=106936&mep_ids%5B%5D=107212&mep_ids%5B%5D=112611&mep_ids%5B%5D=112744&mep_ids%5B%5D=112747&mep_ids%5B%5D=112748&mep_ids%5B%5D=113892&mep_ids%5B%5D=114268&mep_ids%5B%5D=118859&mep_ids%5B%5D=118949&mep_ids%5B%5D=119431&mep_ids%5B%5D=120478&mep_ids%5B%5D=122978&mep_ids%5B%5D=123562&mep_ids%5B%5D=124586&mep_ids%5B%5D=124691&mep_ids%5B%5D=124692&mep_ids%5B%5D=124693&mep_ids%5B%5D=124696&mep_ids%5B%5D=124700&mep_ids%5B%5D=124701&mep_ids%5B%5D=124704&mep_ids%5B%5D=124705&mep_ids%5B%5D=124708&mep_ids%5B%5D=124709&mep_ids%5B%5D=124710&mep_ids%5B%5D=124712&mep_ids%5B%5D=124713&mep_ids%5B%5D=124714&mep_ids%5B%5D=124715&mep_ids%5B%5D=124722&mep_ids%5B%5D=124726&mep_ids%5B%5D=124734&mep_ids%5B%5D=124735&mep_ids%5B%5D=124738&mep_ids%5B%5D=124739&mep_ids%5B%5D=124747&mep_ids%5B%5D=124760&mep_ids%5B%5D=124765&mep_ids%5B%5D=124766&mep_ids%5B%5D=124770&mep_ids%5B%5D=124771&mep_ids%5B%5D=124777&mep_ids%5B%5D=124779&mep_ids%5B%5D=124780&mep_ids%5B%5D=124781&mep_ids%5B%5D=124784&mep_ids%5B%5D=124785&mep_ids%5B%5D=124799&mep_ids%5B%5D=124802&mep_ids%5B%5D=124806&mep_ids%5B%5D=124807&mep_ids%5B%5D=124808&mep_ids%5B%5D=124809&mep_ids%5B%5D=124812&mep_ids%5B%5D=124814&mep_ids%5B%5D=124821&mep_ids%5B%5D=124822&mep_ids%5B%5D=124828&mep_ids%5B%5D=124831&mep_ids%5B%5D=124833&mep_ids%5B%5D=124834&mep_ids%5B%5D=124835&mep_ids%5B%5D=124836&mep_ids%5B%5D=124837&mep_ids%5B%5D=124844&mep_ids%5B%5D=124846&mep_ids%5B%5D=124850&mep_ids%5B%5D=124852&mep_ids%5B%5D=124856&mep_ids%5B%5D=124861&mep_ids%5B%5D=124862&mep_ids%5B%5D=124866&mep_ids%5B%5D=124867&mep_ids%5B%5D=124872&mep_ids%5B%5D=124873&mep_ids%5B%5D=124877&mep_ids%5B%5D=124884&mep_ids%5B%5D=124887&mep_ids%5B%5D=124891&mep_ids%5B%5D=124895&mep_ids%5B%5D=124929&mep_ids%5B%5D=124934&mep_ids%5B%5D=124936&mep_ids%5B%5D=124970&mep_ids%5B%5D=124972&mep_ids%5B%5D=124973&mep_ids%5B%5D=124985&mep_ids%5B%5D=124988&mep_ids%5B%5D=124989&mep_ids%5B%5D=124991&mep_ids%5B%5D=124992&mep_ids%5B%5D=124996&mep_ids%5B%5D=125001&mep_ids%5B%5D=125004&mep_ids%5B%5D=125005&mep_ids%5B%5D=125012&mep_ids%5B%5D=125020&mep_ids%5B%5D=125021&mep_ids%5B%5D=125023&mep_ids%5B%5D=125025&mep_ids%5B%5D=125027&mep_ids%5B%5D=125030&mep_ids%5B%5D=125038&mep_ids%5B%5D=125042&mep_ids%5B%5D=125043&mep_ids%5B%5D=125045&mep_ids%5B%5D=125046&mep_ids%5B%5D=125063&mep_ids%5B%5D=125064&mep_ids%5B%5D=125065&mep_ids%5B%5D=125067&mep_ids%5B%5D=125068&mep_ids%5B%5D=125093&mep_ids%5B%5D=125104&mep_ids%5B%5D=125106&mep_ids%5B%5D=125109&mep_ids%5B%5D=125110&mep_ids%5B%5D=125128&mep_ids%5B%5D=125214&mep_ids%5B%5D=125237&mep_ids%5B%5D=125670&mep_ids%5B%5D=125706&mep_ids%5B%5D=126644&mep_ids%5B%5D=127096&mep_ids%5B%5D=128483&mep_ids%5B%5D=129073&mep_ids%5B%5D=130100&mep_ids%5B%5D=130256&mep_ids%5B%5D=130833&mep_ids%5B%5D=131507&mep_ids%5B%5D=131580&mep_ids%5B%5D=132191&mep_ids%5B%5D=134605&mep_ids%5B%5D=135511&mep_ids%5B%5D=182995&mep_ids%5B%5D=183338&mep_ids%5B%5D=183793&mep_ids%5B%5D=183916&mep_ids%5B%5D=185341&mep_ids%5B%5D=185619&mep_ids%5B%5D=185771&mep_ids%5B%5D=185974&mep_ids%5B%5D=187917&mep_ids%5B%5D=188945&mep_ids%5B%5D=189065&mep_ids%5B%5D=189525&mep_ids%5B%5D=190464&mep_ids%5B%5D=190517&mep_ids%5B%5D=190518&mep_ids%5B%5D=190519&mep_ids%5B%5D=190713&mep_ids%5B%5D=190774&mep_ids%5B%5D=191693&mep_ids%5B%5D=192634&mep_ids%5B%5D=192635&mep_ids%5B%5D=193273&mep_ids%5B%5D=193292&mep_ids%5B%5D=193419&mep_ids%5B%5D=197390&mep_ids%5B%5D=197391&mep_ids%5B%5D=197392&mep_ids%5B%5D=197393&mep_ids%5B%5D=197394&mep_ids%5B%5D=197395&mep_ids%5B%5D=197396&mep_ids%5B%5D=197398&mep_ids%5B%5D=197399&mep_ids%5B%5D=197400&mep_ids%5B%5D=197401&mep_ids%5B%5D=197402&mep_ids%5B%5D=197403&mep_ids%5B%5D=197404&mep_ids%5B%5D=197405&mep_ids%5B%5D=197406&mep_ids%5B%5D=197408&mep_ids%5B%5D=197410&mep_ids%5B%5D=197412&mep_ids%5B%5D=197413&mep_ids%5B%5D=197414&mep_ids%5B%5D=197415&mep_ids%5B%5D=197416&mep_ids%5B%5D=197417&mep_ids%5B%5D=197418&mep_ids%5B%5D=197419&mep_ids%5B%5D=197420&mep_ids%5B%5D=197421&mep_ids%5B%5D=197422&mep_ids%5B%5D=197423&mep_ids%5B%5D=197425&mep_ids%5B%5D=197426&mep_ids%5B%5D=197427&mep_ids%5B%5D=197429&mep_ids%5B%5D=197430&mep_ids%5B%5D=197431&mep_ids%5B%5D=197432&mep_ids%5B%5D=197433&mep_ids%5B%5D=197434&mep_ids%5B%5D=197435&mep_ids%5B%5D=197436&mep_ids%5B%5D=197437&mep_ids%5B%5D=197438&mep_ids%5B%5D=197439&mep_ids%5B%5D=197440&mep_ids%5B%5D=197441&mep_ids%5B%5D=197443&mep_ids%5B%5D=197444&mep_ids%5B%5D=197445&mep_ids%5B%5D=197446&mep_ids%5B%5D=197447&mep_ids%5B%5D=197448&mep_ids%5B%5D=197449&mep_ids%5B%5D=197451&mep_ids%5B%5D=197452&mep_ids%5B%5D=197453&mep_ids%5B%5D=197455&mep_ids%5B%5D=197457&mep_ids%5B%5D=197458&mep_ids%5B%5D=197459&mep_ids%5B%5D=197460&mep_ids%5B%5D=197461&mep_ids%5B%5D=197462&mep_ids%5B%5D=197463&mep_ids%5B%5D=197464&mep_ids%5B%5D=197465&mep_ids%5B%5D=197466&mep_ids%5B%5D=197467&mep_ids%5B%5D=197468&mep_ids%5B%5D=197469&mep_ids%5B%5D=197470&mep_ids%5B%5D=197471&mep_ids%5B%5D=197472&mep_ids%5B%5D=197473&mep_ids%5B%5D=197475&mep_ids%5B%5D=197478&mep_ids%5B%5D=197480&mep_ids%5B%5D=197481&mep_ids%5B%5D=197482&mep_ids%5B%5D=197483&mep_ids%5B%5D=197488&mep_ids%5B%5D=197489&mep_ids%5B%5D=197490&mep_ids%5B%5D=197491&mep_ids%5B%5D=197492&mep_ids%5B%5D=197493&mep_ids%5B%5D=197494&mep_ids%5B%5D=197495&mep_ids%5B%5D=197496&mep_ids%5B%5D=197497&mep_ids%5B%5D=197498&mep_ids%5B%5D=197499&mep_ids%5B%5D=197500&mep_ids%5B%5D=197501&mep_ids%5B%5D=197502&mep_ids%5B%5D=197503&mep_ids%5B%5D=197504&mep_ids%5B%5D=197505&mep_ids%5B%5D=197506&mep_ids%5B%5D=197507&mep_ids%5B%5D=197508&mep_ids%5B%5D=197510&mep_ids%5B%5D=197511&mep_ids%5B%5D=197512&mep_ids%5B%5D=197513&mep_ids%5B%5D=197514&mep_ids%5B%5D=197515&mep_ids%5B%5D=197516&mep_ids%5B%5D=197517&mep_ids%5B%5D=197518&mep_ids%5B%5D=197519&mep_ids%5B%5D=197520&mep_ids%5B%5D=197521&mep_ids%5B%5D=197522&mep_ids%5B%5D=197523&mep_ids%5B%5D=197525&mep_ids%5B%5D=197526&mep_ids%5B%5D=197527&mep_ids%5B%5D=197528&mep_ids%5B%5D=197529&mep_ids%5B%5D=197530&mep_ids%5B%5D=197531&mep_ids%5B%5D=197532&mep_ids%5B%5D=197533&mep_ids%5B%5D=197534&mep_ids%5B%5D=197535&mep_ids%5B%5D=197536&mep_ids%5B%5D=197537&mep_ids%5B%5D=197538&mep_ids%5B%5D=197539&mep_ids%5B%5D=197540&mep_ids%5B%5D=197541&mep_ids%5B%5D=197542&mep_ids%5B%5D=197543&mep_ids%5B%5D=197544&mep_ids%5B%5D=197545&mep_ids%5B%5D=197546&mep_ids%5B%5D=197547&mep_ids%5B%5D=197548&mep_ids%5B%5D=197549&mep_ids%5B%5D=197550&mep_ids%5B%5D=197551&mep_ids%5B%5D=197552&mep_ids%5B%5D=197553&mep_ids%5B%5D=197554&mep_ids%5B%5D=197555&mep_ids%5B%5D=197556&mep_ids%5B%5D=197557&mep_ids%5B%5D=197558&mep_ids%5B%5D=197559&mep_ids%5B%5D=197563&mep_ids%5B%5D=197564&mep_ids%5B%5D=197566&mep_ids%5B%5D=197567&mep_ids%5B%5D=197570&mep_ids%5B%5D=197571&mep_ids%5B%5D=197572&mep_ids%5B%5D=197573&mep_ids%5B%5D=197574&mep_ids%5B%5D=197576&mep_ids%5B%5D=197577&mep_ids%5B%5D=197578&mep_ids%5B%5D=197579&mep_ids%5B%5D=197580&mep_ids%5B%5D=197581&mep_ids%5B%5D=197582&mep_ids%5B%5D=197584&mep_ids%5B%5D=197585&mep_ids%5B%5D=197586&mep_ids%5B%5D=197587&mep_ids%5B%5D=197588&mep_ids%5B%5D=197589&mep_ids%5B%5D=197590&mep_ids%5B%5D=197591&mep_ids%5B%5D=197592&mep_ids%5B%5D=197593&mep_ids%5B%5D=197594&mep_ids%5B%5D=197595&mep_ids%5B%5D=197596&mep_ids%5B%5D=197597&mep_ids%5B%5D=197606&mep_ids%5B%5D=197607&mep_ids%5B%5D=197608&mep_ids%5B%5D=197610&mep_ids%5B%5D=197611&mep_ids%5B%5D=197614&mep_ids%5B%5D=197615&mep_ids%5B%5D=197616&mep_ids%5B%5D=197617&mep_ids%5B%5D=197618&mep_ids%5B%5D=197619&mep_ids%5B%5D=197621&mep_ids%5B%5D=197623&mep_ids%5B%5D=197624&mep_ids%5B%5D=197626&mep_ids%5B%5D=197627&mep_ids%5B%5D=197628&mep_ids%5B%5D=197629&mep_ids%5B%5D=197631&mep_ids%5B%5D=197632&mep_ids%5B%5D=197634&mep_ids%5B%5D=197635&mep_ids%5B%5D=197636&mep_ids%5B%5D=197637&mep_ids%5B%5D=197638&mep_ids%5B%5D=197641&mep_ids%5B%5D=197645&mep_ids%5B%5D=197646&mep_ids%5B%5D=197647&mep_ids%5B%5D=197648&mep_ids%5B%5D=197649&mep_ids%5B%5D=197650&mep_ids%5B%5D=197651&mep_ids%5B%5D=197652&mep_ids%5B%5D=197653&mep_ids%5B%5D=197654&mep_ids%5B%5D=197655&mep_ids%5B%5D=197656&mep_ids%5B%5D=197657&mep_ids%5B%5D=197658&mep_ids%5B%5D=197661&mep_ids%5B%5D=197662&mep_ids%5B%5D=197663&mep_ids%5B%5D=197664&mep_ids%5B%5D=197665&mep_ids%5B%5D=197667&mep_ids%5B%5D=197668&mep_ids%5B%5D=197670&mep_ids%5B%5D=197671&mep_ids%5B%5D=197672&mep_ids%5B%5D=197675&mep_ids%5B%5D=197677&mep_ids%5B%5D=197678&mep_ids%5B%5D=197679&mep_ids%5B%5D=197680&mep_ids%5B%5D=197681&mep_ids%5B%5D=197682&mep_ids%5B%5D=197683&mep_ids%5B%5D=197684&mep_ids%5B%5D=197686&mep_ids%5B%5D=197687&mep_ids%5B%5D=197690&mep_ids%5B%5D=197691&mep_ids%5B%5D=197692&mep_ids%5B%5D=197694&mep_ids%5B%5D=197695&mep_ids%5B%5D=197697&mep_ids%5B%5D=197698&mep_ids%5B%5D=197699&mep_ids%5B%5D=197701&mep_ids%5B%5D=197702&mep_ids%5B%5D=197709&mep_ids%5B%5D=197711&mep_ids%5B%5D=197717&mep_ids%5B%5D=197718&mep_ids%5B%5D=197719&mep_ids%5B%5D=197720&mep_ids%5B%5D=197721&mep_ids%5B%5D=197722&mep_ids%5B%5D=197728&mep_ids%5B%5D=197731&mep_ids%5B%5D=197732&mep_ids%5B%5D=197734&mep_ids%5B%5D=197735&mep_ids%5B%5D=197737&mep_ids%5B%5D=197738&mep_ids%5B%5D=197740&mep_ids%5B%5D=197742&mep_ids%5B%5D=197743&mep_ids%5B%5D=197746&mep_ids%5B%5D=197754&mep_ids%5B%5D=197756&mep_ids%5B%5D=197761&mep_ids%5B%5D=197763&mep_ids%5B%5D=197764&mep_ids%5B%5D=197765&mep_ids%5B%5D=197766&mep_ids%5B%5D=197767&mep_ids%5B%5D=197769&mep_ids%5B%5D=197770&mep_ids%5B%5D=197771&mep_ids%5B%5D=197772&mep_ids%5B%5D=197773&mep_ids%5B%5D=197776&mep_ids%5B%5D=197777&mep_ids%5B%5D=197778&mep_ids%5B%5D=197779&mep_ids%5B%5D=197780&mep_ids%5B%5D=197781&mep_ids%5B%5D=197782&mep_ids%5B%5D=197783&mep_ids%5B%5D=197784&mep_ids%5B%5D=197785&mep_ids%5B%5D=197786&mep_ids%5B%5D=197787&mep_ids%5B%5D=197788&mep_ids%5B%5D=197789&mep_ids%5B%5D=197790&mep_ids%5B%5D=197791&mep_ids%5B%5D=197792&mep_ids%5B%5D=197794&mep_ids%5B%5D=197795&mep_ids%5B%5D=197796&mep_ids%5B%5D=197797&mep_ids%5B%5D=197798&mep_ids%5B%5D=197799&mep_ids%5B%5D=197800&mep_ids%5B%5D=197801&mep_ids%5B%5D=197802&mep_ids%5B%5D=197804&mep_ids%5B%5D=197805&mep_ids%5B%5D=197806&mep_ids%5B%5D=197808&mep_ids%5B%5D=197810&mep_ids%5B%5D=197817&mep_ids%5B%5D=197818&mep_ids%5B%5D=197819&mep_ids%5B%5D=197820&mep_ids%5B%5D=197822&mep_ids%5B%5D=197824&mep_ids%5B%5D=197825&mep_ids%5B%5D=197826&mep_ids%5B%5D=197827&mep_ids%5B%5D=197828&mep_ids%5B%5D=197829&mep_ids%5B%5D=197831&mep_ids%5B%5D=197832&mep_ids%5B%5D=197835&mep_ids%5B%5D=197836&mep_ids%5B%5D=197837&mep_ids%5B%5D=197838&mep_ids%5B%5D=197839&mep_ids%5B%5D=197840&mep_ids%5B%5D=197841&mep_ids%5B%5D=197842&mep_ids%5B%5D=197843&mep_ids%5B%5D=197844&mep_ids%5B%5D=197845&mep_ids%5B%5D=197846&mep_ids%5B%5D=197848&mep_ids%5B%5D=197849&mep_ids%5B%5D=197863&mep_ids%5B%5D=197868&mep_ids%5B%5D=197869&mep_ids%5B%5D=197870&mep_ids%5B%5D=197889&mep_ids%5B%5D=197894&mep_ids%5B%5D=197935&mep_ids%5B%5D=198063&mep_ids%5B%5D=198096&mep_ids%5B%5D=198176&mep_ids%5B%5D=198183&mep_ids%5B%5D=198329&mep_ids%5B%5D=198490&mep_ids%5B%5D=199941&mep_ids%5B%5D=199996&mep_ids%5B%5D=202036&mep_ids%5B%5D=202073&mep_ids%5B%5D=202112&mep_ids%5B%5D=202351&mep_ids%5B%5D=202352&mep_ids%5B%5D=204331&mep_ids%5B%5D=204332&mep_ids%5B%5D=204333&mep_ids%5B%5D=204334&mep_ids%5B%5D=204335&mep_ids%5B%5D=204336&mep_ids%5B%5D=204346&mep_ids%5B%5D=204368&mep_ids%5B%5D=204400&mep_ids%5B%5D=204413&mep_ids%5B%5D=204414&mep_ids%5B%5D=204416&mep_ids%5B%5D=204418&mep_ids%5B%5D=204419&mep_ids%5B%5D=204420&mep_ids%5B%5D=204421&mep_ids%5B%5D=204443&mep_ids%5B%5D=204449&mep_ids%5B%5D=204733&mep_ids%5B%5D=205452&mep_ids%5B%5D=206158

The page doesn't load because the URL is too long to be encoded in a QR code.

image

Potential solutions:

  1. Add an error boundary to prevent the error from the QR code generation from bubbling up (sub-optimal because that means email templates with many MEPs cannot be shared via a QR code)
  2. Store email templates in a backend and create the QR code from a shorter URL
  3. Use an URL shortener and create the QR code from the shorter URL

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.