Compare commits

..

3 Commits

9 changed files with 144 additions and 526 deletions

570
Cargo.lock generated
View File

@ -33,7 +33,7 @@ version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
dependencies = [ dependencies = [
"getrandom 0.2.11", "getrandom",
"once_cell", "once_cell",
"version_check 0.9.4", "version_check 0.9.4",
] ]
@ -53,7 +53,7 @@ version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170" checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170"
dependencies = [ dependencies = [
"html5ever 0.26.0", "html5ever",
"maplit", "maplit",
"once_cell", "once_cell",
"tendril", "tendril",
@ -269,20 +269,6 @@ dependencies = [
"syn 1.0.109", "syn 1.0.109",
] ]
[[package]]
name = "attohttpc"
version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f77d243921b0979fbbd728dd2d5162e68ac8252976797c24eb5b3a6af9090dc"
dependencies = [
"flate2",
"http",
"log 0.4.20",
"rustls",
"url 2.5.0",
"webpki-roots",
]
[[package]] [[package]]
name = "atty" name = "atty"
version = "0.2.14" version = "0.2.14"
@ -491,17 +477,6 @@ dependencies = [
"time 0.1.45", "time 0.1.45",
] ]
[[package]]
name = "cookie"
version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
dependencies = [
"percent-encoding 2.3.1",
"time 0.3.30",
"version_check 0.9.4",
]
[[package]] [[package]]
name = "cookie" name = "cookie"
version = "0.18.0" version = "0.18.0"
@ -528,15 +503,6 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "crc32fast"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
dependencies = [
"cfg-if 1.0.0",
]
[[package]] [[package]]
name = "crossbeam-deque" name = "crossbeam-deque"
version = "0.8.3" version = "0.8.3"
@ -580,67 +546,6 @@ dependencies = [
"typenum", "typenum",
] ]
[[package]]
name = "css-inline"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225240a4512c4e35cc6a2315a3df8865a189ebcb21a8996dcf105d6833ac4f9c"
dependencies = [
"attohttpc",
"cssparser 0.29.6",
"indexmap 1.9.3",
"kuchiki",
"memchr",
"pico-args",
"rayon",
"smallvec",
"url 2.5.0",
]
[[package]]
name = "cssparser"
version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
dependencies = [
"cssparser-macros",
"dtoa-short",
"itoa 0.4.8",
"matches",
"phf 0.8.0",
"proc-macro2 1.0.70",
"quote 1.0.33",
"smallvec",
"syn 1.0.109",
]
[[package]]
name = "cssparser"
version = "0.29.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
dependencies = [
"cssparser-macros",
"dtoa-short",
"itoa 1.0.9",
"matches",
"phf 0.10.1",
"proc-macro2 1.0.70",
"quote 1.0.33",
"smallvec",
"syn 1.0.109",
]
[[package]]
name = "cssparser-macros"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [
"quote 1.0.33",
"syn 2.0.39",
]
[[package]] [[package]]
name = "darling" name = "darling"
version = "0.10.2" version = "0.10.2"
@ -717,15 +622,6 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
[[package]]
name = "dbg"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4677188513e0e9d7adced5997cf9a1e7a3c996c994f90093325c5332c1a8b221"
dependencies = [
"version_check 0.1.5",
]
[[package]] [[package]]
name = "deranged" name = "deranged"
version = "0.3.10" version = "0.3.10"
@ -835,21 +731,6 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
[[package]]
name = "dtoa"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
[[package]]
name = "dtoa-short"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
dependencies = [
"dtoa",
]
[[package]] [[package]]
name = "dyn-cache" name = "dyn-cache"
version = "0.12.2" version = "0.12.2"
@ -942,16 +823,6 @@ dependencies = [
"windows-sys 0.52.0", "windows-sys 0.52.0",
] ]
[[package]]
name = "flate2"
version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
dependencies = [
"crc32fast",
"miniz_oxide",
]
[[package]] [[package]]
name = "fnv" name = "fnv"
version = "1.0.7" version = "1.0.7"
@ -1101,15 +972,6 @@ dependencies = [
"slab", "slab",
] ]
[[package]]
name = "fxhash"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
dependencies = [
"byteorder",
]
[[package]] [[package]]
name = "generator" name = "generator"
version = "0.7.5" version = "0.7.5"
@ -1143,17 +1005,6 @@ dependencies = [
"winapi 0.3.9", "winapi 0.3.9",
] ]
[[package]]
name = "getrandom"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
dependencies = [
"cfg-if 1.0.0",
"libc",
"wasi 0.9.0+wasi-snapshot-preview1",
]
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.11" version = "0.2.11"
@ -1221,6 +1072,27 @@ dependencies = [
"web-sys", "web-sys",
] ]
[[package]]
name = "gloo-net"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ac9e8288ae2c632fa9f8657ac70bfe38a1530f345282d7ba66a1f70b72b7dc4"
dependencies = [
"futures-channel",
"futures-core",
"futures-sink",
"gloo-utils 0.2.0",
"http",
"js-sys",
"pin-project",
"serde",
"serde_json",
"thiserror",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
]
[[package]] [[package]]
name = "gloo-timers" name = "gloo-timers"
version = "0.2.6" version = "0.2.6"
@ -1246,6 +1118,19 @@ dependencies = [
"web-sys", "web-sys",
] ]
[[package]]
name = "gloo-utils"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa"
dependencies = [
"js-sys",
"serde",
"serde_json",
"wasm-bindgen",
"web-sys",
]
[[package]] [[package]]
name = "graphql-introspection-query" name = "graphql-introspection-query"
version = "0.2.0" version = "0.2.0"
@ -1385,20 +1270,6 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
[[package]]
name = "html5ever"
version = "0.25.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148"
dependencies = [
"log 0.4.20",
"mac",
"markup5ever 0.10.1",
"proc-macro2 1.0.70",
"quote 1.0.33",
"syn 1.0.109",
]
[[package]] [[package]]
name = "html5ever" name = "html5ever"
version = "0.26.0" version = "0.26.0"
@ -1407,7 +1278,7 @@ checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
dependencies = [ dependencies = [
"log 0.4.20", "log 0.4.20",
"mac", "mac",
"markup5ever 0.11.0", "markup5ever",
"proc-macro2 1.0.70", "proc-macro2 1.0.70",
"quote 1.0.33", "quote 1.0.33",
"syn 1.0.109", "syn 1.0.109",
@ -1421,7 +1292,7 @@ checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
dependencies = [ dependencies = [
"bytes", "bytes",
"fnv", "fnv",
"itoa 1.0.9", "itoa",
] ]
[[package]] [[package]]
@ -1481,7 +1352,7 @@ dependencies = [
"http-body", "http-body",
"httparse", "httparse",
"httpdate", "httpdate",
"itoa 1.0.9", "itoa",
"pin-project-lite", "pin-project-lite",
"socket2 0.4.10", "socket2 0.4.10",
"tokio", "tokio",
@ -1656,12 +1527,6 @@ dependencies = [
"either", "either",
] ]
[[package]]
name = "itoa"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]] [[package]]
name = "itoa" name = "itoa"
version = "1.0.9" version = "1.0.9"
@ -1687,18 +1552,6 @@ dependencies = [
"winapi-build", "winapi-build",
] ]
[[package]]
name = "kuchiki"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358"
dependencies = [
"cssparser 0.27.2",
"html5ever 0.25.2",
"matches",
"selectors",
]
[[package]] [[package]]
name = "language-tags" name = "language-tags"
version = "0.2.2" version = "0.2.2"
@ -1724,12 +1577,12 @@ dependencies = [
"chrono", "chrono",
"console_error_panic_hook", "console_error_panic_hook",
"console_log", "console_log",
"css-inline", "gloo-net",
"graphql_client", "graphql_client",
"itertools", "itertools",
"log 0.4.20", "log 0.4.20",
"notmuch", "notmuch",
"seed 0.9.2", "seed 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"seed_hooks", "seed_hooks",
"serde", "serde",
"serde_json", "serde_json",
@ -1815,20 +1668,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
[[package]]
name = "markup5ever"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
dependencies = [
"log 0.4.20",
"phf 0.8.0",
"phf_codegen 0.8.0",
"string_cache",
"string_cache_codegen",
"tendril",
]
[[package]] [[package]]
name = "markup5ever" name = "markup5ever"
version = "0.11.0" version = "0.11.0"
@ -1836,8 +1675,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
dependencies = [ dependencies = [
"log 0.4.20", "log 0.4.20",
"phf 0.10.1", "phf",
"phf_codegen 0.10.0", "phf_codegen",
"string_cache", "string_cache",
"string_cache_codegen", "string_cache_codegen",
"tendril", "tendril",
@ -2020,12 +1859,6 @@ dependencies = [
"memoffset 0.6.5", "memoffset 0.6.5",
] ]
[[package]]
name = "nodrop"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
[[package]] [[package]]
name = "notify" name = "notify"
version = "4.0.17" version = "4.0.17"
@ -2256,36 +2089,13 @@ dependencies = [
"sha2", "sha2",
] ]
[[package]]
name = "phf"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
dependencies = [
"phf_macros 0.8.0",
"phf_shared 0.8.0",
"proc-macro-hack",
]
[[package]] [[package]]
name = "phf" name = "phf"
version = "0.10.1" version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
dependencies = [ dependencies = [
"phf_macros 0.10.0", "phf_shared",
"phf_shared 0.10.0",
"proc-macro-hack",
]
[[package]]
name = "phf_codegen"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
dependencies = [
"phf_generator 0.8.0",
"phf_shared 0.8.0",
] ]
[[package]] [[package]]
@ -2294,18 +2104,8 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
dependencies = [ dependencies = [
"phf_generator 0.10.0", "phf_generator",
"phf_shared 0.10.0", "phf_shared",
]
[[package]]
name = "phf_generator"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
dependencies = [
"phf_shared 0.8.0",
"rand 0.7.3",
] ]
[[package]] [[package]]
@ -2314,45 +2114,8 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
dependencies = [ dependencies = [
"phf_shared 0.10.0", "phf_shared",
"rand 0.8.5", "rand",
]
[[package]]
name = "phf_macros"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
dependencies = [
"phf_generator 0.8.0",
"phf_shared 0.8.0",
"proc-macro-hack",
"proc-macro2 1.0.70",
"quote 1.0.33",
"syn 1.0.109",
]
[[package]]
name = "phf_macros"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
dependencies = [
"phf_generator 0.10.0",
"phf_shared 0.10.0",
"proc-macro-hack",
"proc-macro2 1.0.70",
"quote 1.0.33",
"syn 1.0.109",
]
[[package]]
name = "phf_shared"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
dependencies = [
"siphasher",
] ]
[[package]] [[package]]
@ -2365,10 +2128,24 @@ dependencies = [
] ]
[[package]] [[package]]
name = "pico-args" name = "pin-project"
version = "0.3.4" version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28b9b4df73455c861d7cbf8be42f01d3b373ed7f02e378d55fa84eafc6f638b1" checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2 1.0.70",
"quote 1.0.33",
"syn 2.0.39",
]
[[package]] [[package]]
name = "pin-project-lite" name = "pin-project-lite"
@ -2444,12 +2221,6 @@ dependencies = [
"version_check 0.9.4", "version_check 0.9.4",
] ]
[[package]]
name = "proc-macro-hack"
version = "0.5.20+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "0.4.30" version = "0.4.30"
@ -2512,20 +2283,6 @@ version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49" checksum = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49"
[[package]]
name = "rand"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [
"getrandom 0.1.16",
"libc",
"rand_chacha 0.2.2",
"rand_core 0.5.1",
"rand_hc",
"rand_pcg",
]
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.8.5" version = "0.8.5"
@ -2533,18 +2290,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [ dependencies = [
"libc", "libc",
"rand_chacha 0.3.1", "rand_chacha",
"rand_core 0.6.4", "rand_core",
]
[[package]]
name = "rand_chacha"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
dependencies = [
"ppv-lite86",
"rand_core 0.5.1",
] ]
[[package]] [[package]]
@ -2554,16 +2301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [ dependencies = [
"ppv-lite86", "ppv-lite86",
"rand_core 0.6.4", "rand_core",
]
[[package]]
name = "rand_core"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
dependencies = [
"getrandom 0.1.16",
] ]
[[package]] [[package]]
@ -2572,25 +2310,7 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [ dependencies = [
"getrandom 0.2.11", "getrandom",
]
[[package]]
name = "rand_hc"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
dependencies = [
"rand_core 0.5.1",
]
[[package]]
name = "rand_pcg"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
dependencies = [
"rand_core 0.5.1",
] ]
[[package]] [[package]]
@ -2695,20 +2415,6 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
name = "ring"
version = "0.17.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866"
dependencies = [
"cc",
"getrandom 0.2.11",
"libc",
"spin",
"untrusted",
"windows-sys 0.48.0",
]
[[package]] [[package]]
name = "rocket" name = "rocket"
version = "0.4.11" version = "0.4.11"
@ -2751,7 +2457,7 @@ dependencies = [
"num_cpus", "num_cpus",
"parking_lot 0.12.1", "parking_lot 0.12.1",
"pin-project-lite", "pin-project-lite",
"rand 0.8.5", "rand",
"ref-cast", "ref-cast",
"rocket_codegen 0.5.0", "rocket_codegen 0.5.0",
"rocket_http 0.5.0", "rocket_http 0.5.0",
@ -2902,28 +2608,6 @@ dependencies = [
"windows-sys 0.52.0", "windows-sys 0.52.0",
] ]
[[package]]
name = "rustls"
version = "0.21.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
dependencies = [
"log 0.4.20",
"ring",
"rustls-webpki",
"sct",
]
[[package]]
name = "rustls-webpki"
version = "0.101.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
dependencies = [
"ring",
"untrusted",
]
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.14" version = "1.0.14"
@ -2963,36 +2647,23 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "sct"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
dependencies = [
"ring",
"untrusted",
]
[[package]] [[package]]
name = "seed" name = "seed"
version = "0.9.2" version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9352d75dd253803ce05722fe3acaafffc461d4faeaf0ebe0d8bf831059482e21" checksum = "9c0e296ea0569d20467e9a1df3cb6ed66ce3b791a7eaf1e1110ae231f75e2b46"
dependencies = [ dependencies = [
"console_error_panic_hook",
"cookie 0.16.2",
"dbg",
"enclose", "enclose",
"futures", "futures",
"getrandom 0.2.11", "getrandom",
"gloo-file", "gloo-file",
"gloo-timers", "gloo-timers",
"gloo-utils", "gloo-utils 0.1.7",
"indexmap 1.9.3", "indexmap 1.9.3",
"js-sys", "js-sys",
"rand 0.8.5", "rand",
"serde", "serde",
"serde_json", "serde-wasm-bindgen",
"uuid", "uuid",
"version_check 0.9.4", "version_check 0.9.4",
"wasm-bindgen", "wasm-bindgen",
@ -3007,13 +2678,13 @@ source = "git+https://github.com/seed-rs/seed.git?branch=master#f0fdb7005816f367
dependencies = [ dependencies = [
"enclose", "enclose",
"futures", "futures",
"getrandom 0.2.11", "getrandom",
"gloo-file", "gloo-file",
"gloo-timers", "gloo-timers",
"gloo-utils", "gloo-utils 0.1.7",
"indexmap 1.9.3", "indexmap 1.9.3",
"js-sys", "js-sys",
"rand 0.8.5", "rand",
"uuid", "uuid",
"version_check 0.9.4", "version_check 0.9.4",
"wasm-bindgen", "wasm-bindgen",
@ -3030,31 +2701,11 @@ dependencies = [
"derive_more", "derive_more",
"gloo-timers", "gloo-timers",
"lazy_static", "lazy_static",
"seed 0.10.0", "seed 0.10.0 (git+https://github.com/seed-rs/seed.git?branch=master)",
"wasm-bindgen", "wasm-bindgen",
"web-sys", "web-sys",
] ]
[[package]]
name = "selectors"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
dependencies = [
"bitflags 1.2.1",
"cssparser 0.27.2",
"derive_more",
"fxhash",
"log 0.4.20",
"matches",
"phf 0.8.0",
"phf_codegen 0.8.0",
"precomputed-hash",
"servo_arc",
"smallvec",
"thin-slice",
]
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.20" version = "1.0.20"
@ -3070,6 +2721,17 @@ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]]
name = "serde-wasm-bindgen"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
dependencies = [
"js-sys",
"serde",
"wasm-bindgen",
]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.193" version = "1.0.193"
@ -3087,7 +2749,7 @@ version = "1.0.108"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
dependencies = [ dependencies = [
"itoa 1.0.9", "itoa",
"ryu", "ryu",
"serde", "serde",
] ]
@ -3108,7 +2770,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [ dependencies = [
"form_urlencoded", "form_urlencoded",
"itoa 1.0.9", "itoa",
"ryu", "ryu",
"serde", "serde",
] ]
@ -3136,16 +2798,6 @@ dependencies = [
"urlencoding", "urlencoding",
] ]
[[package]]
name = "servo_arc"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
dependencies = [
"nodrop",
"stable_deref_trait",
]
[[package]] [[package]]
name = "sha2" name = "sha2"
version = "0.10.8" version = "0.10.8"
@ -3284,7 +2936,7 @@ dependencies = [
"new_debug_unreachable", "new_debug_unreachable",
"once_cell", "once_cell",
"parking_lot 0.12.1", "parking_lot 0.12.1",
"phf_shared 0.10.0", "phf_shared",
"precomputed-hash", "precomputed-hash",
"serde", "serde",
] ]
@ -3295,8 +2947,8 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
dependencies = [ dependencies = [
"phf_generator 0.10.0", "phf_generator",
"phf_shared 0.10.0", "phf_shared",
"proc-macro2 1.0.70", "proc-macro2 1.0.70",
"quote 1.0.33", "quote 1.0.33",
] ]
@ -3401,12 +3053,6 @@ dependencies = [
"winapi-util", "winapi-util",
] ]
[[package]]
name = "thin-slice"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.50" version = "1.0.50"
@ -3454,7 +3100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
dependencies = [ dependencies = [
"deranged", "deranged",
"itoa 1.0.9", "itoa",
"powerfmt", "powerfmt",
"serde", "serde",
"time-core", "time-core",
@ -3827,12 +3473,6 @@ dependencies = [
"traitobject", "traitobject",
] ]
[[package]]
name = "untrusted"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]] [[package]]
name = "url" name = "url"
version = "1.7.2" version = "1.7.2"
@ -3873,7 +3513,7 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
dependencies = [ dependencies = [
"getrandom 0.2.11", "getrandom",
] ]
[[package]] [[package]]
@ -3919,12 +3559,6 @@ dependencies = [
"try-lock", "try-lock",
] ]
[[package]]
name = "wasi"
version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]] [[package]]
name = "wasi" name = "wasi"
version = "0.10.0+wasi-snapshot-preview1" version = "0.10.0+wasi-snapshot-preview1"
@ -3944,8 +3578,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"serde",
"serde_json",
"wasm-bindgen-macro", "wasm-bindgen-macro",
] ]
@ -4055,12 +3687,6 @@ dependencies = [
"wasm-bindgen", "wasm-bindgen",
] ]
[[package]]
name = "webpki-roots"
version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
[[package]] [[package]]
name = "whoami" name = "whoami"
version = "1.4.1" version = "1.4.1"

View File

@ -18,7 +18,8 @@ wasm-bindgen-test = "0.3.33"
[dependencies] [dependencies]
console_error_panic_hook = "0.1.7" console_error_panic_hook = "0.1.7"
log = "0.4.17" log = "0.4.17"
seed = "0.9.2" seed = { version = "0.10.0", features = ["routing"] }
#seed = "0.9.2"
console_log = {git = "http://git-private.h.xinu.tv/wathiede/console_log.git"} console_log = {git = "http://git-private.h.xinu.tv/wathiede/console_log.git"}
serde = { version = "1.0.147", features = ["derive"] } serde = { version = "1.0.147", features = ["derive"] }
notmuch = {path = "../notmuch"} notmuch = {path = "../notmuch"}
@ -26,11 +27,11 @@ shared = {path = "../shared"}
itertools = "0.10.5" itertools = "0.10.5"
serde_json = { version = "1.0.93", features = ["unbounded_depth"] } serde_json = { version = "1.0.93", features = ["unbounded_depth"] }
wasm-timer = "0.2.5" wasm-timer = "0.2.5"
css-inline = "0.8.5"
chrono = "0.4.31" chrono = "0.4.31"
graphql_client = "0.13.0" graphql_client = "0.13.0"
thiserror = "1.0.50" thiserror = "1.0.50"
seed_hooks = { git = "https://github.com/seed-rs/styles_hooks", package = "seed_hooks", branch = "main" } seed_hooks = { git = "https://github.com/seed-rs/styles_hooks", package = "seed_hooks", branch = "main" }
gloo-net = { version = "0.4.0", features = ["json", "serde_json"] }
[package.metadata.wasm-pack.profile.release] [package.metadata.wasm-pack.profile.release]

View File

@ -1,6 +1,7 @@
use gloo_net::{http::Request, Error};
use log::info; use log::info;
use notmuch::ThreadSet; use notmuch::ThreadSet;
use seed::{prelude::*, Url}; use seed::Url;
const BASE_URL: &str = "/api"; const BASE_URL: &str = "/api";
pub fn refresh() -> String { pub fn refresh() -> String {
@ -35,34 +36,20 @@ pub async fn search_request(
query: &str, query: &str,
page: usize, page: usize,
results_per_page: usize, results_per_page: usize,
) -> fetch::Result<shared::SearchResult> { ) -> Result<shared::SearchResult, Error> {
Request::new(search(query, page, results_per_page)) Request::get(&search(query, page, results_per_page))
.method(Method::Get) .send()
.fetch()
.await? .await?
.check_status()?
.json() .json()
.await .await
} }
pub async fn refresh_request() -> fetch::Result<()> { pub async fn refresh_request() -> Result<(), Error> {
let t = Request::new(refresh()) let t = Request::get(&refresh()).send().await?.text().await?;
.method(Method::Get)
.fetch()
.await?
.check_status()?
.text()
.await?;
info!("refresh {t}"); info!("refresh {t}");
Ok(()) Ok(())
} }
pub async fn show_pretty_request(tid: &str) -> fetch::Result<ThreadSet> { pub async fn show_pretty_request(tid: &str) -> Result<ThreadSet, Error> {
Request::new(show_pretty(tid)) Request::get(&show_pretty(tid)).send().await?.json().await
.method(Method::Get)
.fetch()
.await?
.check_status()?
.json()
.await
} }

View File

@ -1,8 +1,5 @@
use gloo_net::{http::Request, Error};
use graphql_client::GraphQLQuery; use graphql_client::GraphQLQuery;
use seed::{
fetch,
fetch::{Header, Method, Request},
};
use serde::{de::DeserializeOwned, Serialize}; use serde::{de::DeserializeOwned, Serialize};
// The paths are relative to the directory where your `Cargo.toml` is located. // The paths are relative to the directory where your `Cargo.toml` is located.
@ -23,21 +20,18 @@ pub struct FrontPageQuery;
)] )]
pub struct ShowThreadQuery; pub struct ShowThreadQuery;
pub async fn send_graphql<Body, Resp>(body: Body) -> fetch::Result<graphql_client::Response<Resp>> pub async fn send_graphql<Body, Resp>(body: Body) -> Result<graphql_client::Response<Resp>, Error>
where where
Body: Serialize, Body: Serialize,
Resp: DeserializeOwned + 'static, Resp: DeserializeOwned + 'static,
{ {
use web_sys::RequestMode; use web_sys::RequestMode;
Request::new("/graphql/") Request::post("/graphql/")
.method(Method::Post)
.header(Header::content_type("application/json"))
.mode(RequestMode::Cors) .mode(RequestMode::Cors)
.json(&body)? .json(&body)?
.fetch() .send()
.await? .await?
.check_status()?
.json() .json()
.await .await
} }

View File

@ -4,7 +4,7 @@
#![allow(clippy::wildcard_imports)] #![allow(clippy::wildcard_imports)]
use log::Level; use log::Level;
use seed::prelude::*; use seed::{prelude::wasm_bindgen, App};
mod api; mod api;
mod consts; mod consts;

View File

@ -1,7 +1,7 @@
use graphql_client::GraphQLQuery; use graphql_client::GraphQLQuery;
use log::{debug, error, info}; use log::{debug, error, info};
use notmuch::ThreadSet; use notmuch::ThreadSet;
use seed::{prelude::*, *}; use seed::{app::subs, prelude::*, *};
use thiserror::Error; use thiserror::Error;
use crate::{ use crate::{
@ -321,7 +321,7 @@ pub enum UIError {
#[error("No error, this should never be presented to user")] #[error("No error, this should never be presented to user")]
NoError, NoError,
#[error("failed to fetch {0}: {1:?}")] #[error("failed to fetch {0}: {1:?}")]
FetchError(&'static str, FetchError), FetchError(&'static str, gloo_net::Error),
#[error("{0} error decoding: {1:?}")] #[error("{0} error decoding: {1:?}")]
FetchDecodeError(&'static str, Vec<graphql_client::Error>), FetchDecodeError(&'static str, Vec<graphql_client::Error>),
#[error("no data or errors for {0}")] #[error("no data or errors for {0}")]
@ -363,15 +363,15 @@ pub enum Msg {
OnResize, OnResize,
// Tell the server to update state // Tell the server to update state
RefreshStart, RefreshStart,
RefreshDone(Option<FetchError>), RefreshDone(Option<gloo_net::Error>),
SearchRequest { SearchRequest {
query: String, query: String,
page: usize, page: usize,
results_per_page: usize, results_per_page: usize,
}, },
SearchResult(fetch::Result<shared::SearchResult>), SearchResult(Result<shared::SearchResult, gloo_net::Error>),
ShowPrettyRequest(String), ShowPrettyRequest(String),
ShowPrettyResult(fetch::Result<ThreadSet>), ShowPrettyResult(Result<ThreadSet, gloo_net::Error>),
NextPage, NextPage,
PreviousPage, PreviousPage,
UpdateQuery(String), UpdateQuery(String),
@ -385,12 +385,12 @@ pub enum Msg {
last: Option<i64>, last: Option<i64>,
}, },
FrontPageResult( FrontPageResult(
fetch::Result<graphql_client::Response<graphql::front_page_query::ResponseData>>, Result<graphql_client::Response<graphql::front_page_query::ResponseData>, gloo_net::Error>,
), ),
ShowThreadRequest { ShowThreadRequest {
thread_id: String, thread_id: String,
}, },
ShowThreadResult( ShowThreadResult(
fetch::Result<graphql_client::Response<graphql::show_thread_query::ResponseData>>, Result<graphql_client::Response<graphql::show_thread_query::ResponseData>, gloo_net::Error>,
), ),
} }

View File

@ -23,10 +23,15 @@ pub(super) fn view(model: &Model) -> Node<Msg> {
pager, pager,
} => view_search_results(&query, results.as_slice(), *count, pager), } => view_search_results(&query, results.as_slice(), *count, pager),
}; };
fn view_tag_li(display_name: &str, indent: usize, t: &Tag) -> Node<Msg> { fn view_tag_li(display_name: &str, indent: usize, t: &Tag, search_unread: bool) -> Node<Msg> {
let href = if search_unread {
urls::search(&format!("is:unread tag:{}", t.name), 0)
} else {
urls::search(&format!("tag:{}", t.name), 0)
};
li![a![ li![a![
attrs! { attrs! {
At::Href => urls::search(&format!("tag:{}", t.name), 0) At::Href => href
}, },
(0..indent).map(|_| span![C!["tag-indent"], ""]), (0..indent).map(|_| span![C!["tag-indent"], ""]),
i![ i![
@ -45,15 +50,15 @@ pub(super) fn view(model: &Model) -> Node<Msg> {
.take_while(|(a, b)| a == b) .take_while(|(a, b)| a == b)
.count() .count()
} }
fn view_tag_list<'a>(tags: impl Iterator<Item = &'a Tag>) -> Vec<Node<Msg>> { fn view_tag_list<'a>(
tags: impl Iterator<Item = &'a Tag>,
search_unread: bool,
) -> Vec<Node<Msg>> {
let mut lis = Vec::new(); let mut lis = Vec::new();
let mut last = Vec::new(); let mut last = Vec::new();
for t in tags { for t in tags {
let parts: Vec<_> = t.name.split('/').collect(); let parts: Vec<_> = t.name.split('/').collect();
let mut n = matches(&last, &parts); let mut n = matches(&last, &parts);
if t.name.starts_with("ZZCrap/Free") {
info!("n: {n}, parts: {parts:?} last: {last:?}");
}
if n <= parts.len() - 2 && parts.len() > 1 { if n <= parts.len() - 2 && parts.len() > 1 {
// Synthesize fake tags for proper indenting. // Synthesize fake tags for proper indenting.
for i in n..parts.len() - 1 { for i in n..parts.len() - 1 {
@ -67,13 +72,14 @@ pub(super) fn view(model: &Model) -> Node<Msg> {
fg_color: "#000".to_string(), fg_color: "#000".to_string(),
unread: 0, unread: 0,
}, },
search_unread,
)); ));
} }
last = parts[..parts.len() - 1].to_vec(); last = parts[..parts.len() - 1].to_vec();
n = parts.len() - 1; n = parts.len() - 1;
} }
let display_name = parts[n]; let display_name = parts[n];
lis.push(view_tag_li(&display_name, n, t)); lis.push(view_tag_li(&display_name, n, t, search_unread));
last = parts; last = parts;
} }
lis lis
@ -90,7 +96,7 @@ pub(super) fn view(model: &Model) -> Node<Msg> {
aside![ aside![
C!["tags-menu", "menu"], C!["tags-menu", "menu"],
IF!(!unread.is_empty() => p![C!["menu-label"], "Unread"]), IF!(!unread.is_empty() => p![C!["menu-label"], "Unread"]),
IF!(!unread.is_empty() => ul![C!["menu-list"], view_tag_list(unread.into_iter())]), IF!(!unread.is_empty() => ul![C!["menu-list"], view_tag_list(unread.into_iter(),true)]),
p![ p![
C!["menu-label"], C!["menu-label"],
IF!(!force_tags_open => IF!(!force_tags_open =>
@ -109,7 +115,7 @@ pub(super) fn view(model: &Model) -> Node<Msg> {
], ],
ul![ ul![
C!["menu-list"], C!["menu-list"],
IF!(force_tags_open||tags_open.get() => model.tags.as_ref().map(|tags| view_tag_list(tags.iter()))), IF!(force_tags_open||tags_open.get() => model.tags.as_ref().map(|tags| view_tag_list(tags.iter(),false))),
] ]
], ],
div![ div![

View File

@ -194,13 +194,15 @@ fn view_part(part: &Part) -> Node<Msg> {
"text/plain" => view_text_plain(&part.content), "text/plain" => view_text_plain(&part.content),
"text/html" => { "text/html" => {
if let Some(Content::String(html)) = &part.content { if let Some(Content::String(html)) = &part.content {
/* Build problems w/ css_inline. TODO(wathiede): move to server
let inliner = css_inline::CSSInliner::options() let inliner = css_inline::CSSInliner::options()
.load_remote_stylesheets(false) .load_remote_stylesheets(false)
.remove_style_tags(true) .remove_style_tags(true)
.build(); .build();
let inlined = inliner.inline(html).expect("failed to inline CSS"); let inlined = inliner.inline(html).expect("failed to inline CSS");
*/
return div![C!["view-part-text-html"], raw![&inlined]]; return div![C!["view-part-text-html"], raw![&html]];
} else { } else {
div![ div![
C!["error"], C!["error"],
@ -218,12 +220,14 @@ fn view_part(part: &Part) -> Node<Msg> {
for part in parts.iter().rev() { for part in parts.iter().rev() {
if part.content_type == "text/html" { if part.content_type == "text/html" {
if let Some(Content::String(html)) = &part.content { if let Some(Content::String(html)) = &part.content {
/*
let inliner = css_inline::CSSInliner::options() let inliner = css_inline::CSSInliner::options()
.load_remote_stylesheets(false) .load_remote_stylesheets(false)
.remove_style_tags(true) .remove_style_tags(true)
.build(); .build();
let inlined = inliner.inline(html).expect("failed to inline CSS"); let inlined = inliner.inline(html).expect("failed to inline CSS");
return div![Node::from_html(None, &inlined)]; */
return div![Node::from_html(None, &html)];
} }
} }
if part.content_type == "text/plain" { if part.content_type == "text/plain" {

View File

@ -5,7 +5,7 @@ use std::{
use chrono::{DateTime, Datelike, Duration, Local, Utc}; use chrono::{DateTime, Datelike, Duration, Local, Utc};
use itertools::Itertools; use itertools::Itertools;
use log::info; use log::{error, info};
use seed::{prelude::*, *}; use seed::{prelude::*, *};
use wasm_timer::Instant; use wasm_timer::Instant;