main.rs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // This test checks the CLI optimizes assets correctly without breaking them
  2. use dioxus::prelude::*;
  3. const MONACO_FOLDER: Asset = asset!("/monaco-editor-0.52.2/package/min/vs");
  4. const SOME_IMAGE: Asset = asset!("/images/toasts.png", ImageAssetOptions::new().with_avif());
  5. const SOME_IMAGE_WITH_THE_SAME_URL: Asset =
  6. asset!("/images/toasts.png", ImageAssetOptions::new().with_jpg());
  7. fn main() {
  8. dioxus::launch(App);
  9. }
  10. #[component]
  11. fn App() -> Element {
  12. let script = format!("(() => {{
  13. require.config({{ paths: {{ vs: '{MONACO_FOLDER}' }} }});
  14. require(['vs/editor/editor.main'], () => {{
  15. var model = monaco.editor.createModel('fn main() {{\\n\\tprintln!(\\\"hi\\\")\\n}}', 'rust');
  16. var editor = monaco.editor.create(document.getElementById('editor'));
  17. editor.setModel(model);
  18. }})
  19. }})()");
  20. rsx! {
  21. div {
  22. id: "editor",
  23. width: "100vw",
  24. height: "100vw",
  25. }
  26. // Monaco script
  27. script {
  28. src: "{MONACO_FOLDER}/loader.js",
  29. "onload": script
  30. }
  31. img {
  32. id: "some_image",
  33. src: "{SOME_IMAGE}"
  34. }
  35. img {
  36. id: "some_image_with_the_same_url",
  37. src: "{SOME_IMAGE_WITH_THE_SAME_URL}"
  38. }
  39. }
  40. }