├── .gitignore ├── tsconfig.json ├── .eslintignore ├── viewer.html ├── .eslintrc.js ├── package.json ├── LICENSE ├── data.d.ts ├── viewer.css ├── README.md ├── viewer.tsx ├── viewer-ui.tsx └── dump-messages.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .parcel-cache 3 | yarn-error.log 4 | dist -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "noFallthroughCasesInSwitch": true, 5 | "noErrorTruncation": true, 6 | "jsx": "react" 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # don't ever lint node_modules 2 | node_modules 3 | # don't lint build output (make sure it's set to your correct build folder name) 4 | dist 5 | # don't lint nyc coverage output 6 | coverage 7 | .eslintrc.js -------------------------------------------------------------------------------- /viewer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |{s};
69 | let messageBody: React.ReactNode = unexpected("unknown message type");
70 | let quoteBody: undefined;
71 | if (message.filehash && message.mimetype) {
72 | const blob = media[message.filehash];
73 | if (blob) {
74 | messageBody =