This PR switches from React with Chakra UI to Svelte with Bulma to make Latreutes usable on low-power ARM64/aarch64 devices such as the NVIDIA Jetson Nano running Ubuntu 18.04. Specifically, it:
Resolves #15 by drastically reducing idle and peak CPU usage (reduced from >50% down to ~1% on the Jetson Nano) due to the inefficient way I had done the React implementation, which was redrawing everything all the time. It helps that Svelte compiles directly to DOM calls, rather than running a virtual DOM. This PR also solves a bizarre bug on the Jetson Nano, in which CSS animations involving transitions on the transform property would cause the frontend to freeze/crash. Because Chakra UI provided no way to control animation behavior, I could not work around this bug in the React+Chakra UI implementation; with Svelte, I have total control over animation behaviors.
Improves the responsive layout for small window sizes, by making the height of the navbar respond to the height of the window.
Adds animations for the "entity cards" (for networks and peers) to improve usability when an entity is added or removed from the middle of the list. These animations are disabled for the aarch64 build target.
This PR switches from React with Chakra UI to Svelte with Bulma to make Latreutes usable on low-power ARM64/aarch64 devices such as the NVIDIA Jetson Nano running Ubuntu 18.04. Specifically, it:
transform
property would cause the frontend to freeze/crash. Because Chakra UI provided no way to control animation behavior, I could not work around this bug in the React+Chakra UI implementation; with Svelte, I have total control over animation behaviors.