This won't work, not in the long term, but it's a better direction. I've created proxy classes for the classes coming from the JMAP client. The issue here is that this client is likely to have a bunch of things wrong. Specifically, the standard indicates that the client can be extremely stateful, to the point where it's just getting a stream of updates and keeping most of the structure in memory. The client, as presently built, does not make it easy to honor this part of the standard, so I'm going to have to structure the client interaction differently. However, what I've done here, while interesting, is not good. The problem is that I am correctly telling the client "I need the list of mailboxes" when I render the mailbox list, but I'm not able to propogate that information back to the client since it's passed down through props. I'm going to need to separate out the client into its own class and have an eventing system of some kind between it and the app. |
||
---|---|---|
public | ||
src | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.prettierrc | ||
LICENSE | ||
README.md | ||
default.nix | ||
package-lock.json | ||
package.json | ||
tsconfig.json |
README.md
Drishti
This a JMAP browser email client.
Incantations
In the project directory, you can run:
Run Development Server
npm start
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Run Tests
npm test
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Build for production
npm run build
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
Format all the code
npx prettier . --write