Hello again! This is probably going to be the lowest turnaround for a journal entry/post1 published on my site. But anyway! I come bearing updates.
I am making progress, I promise. I have a whole backlog of commits I’ve yet to push to the repository, so you won’t be able to view any of the changes I made yet:

Testing
This has eaten the bulk of my time.
I finally decided to look into why I couldn’t get testing for components that had popups working, and eventually figured it out. I’m not going to go into depth here―it involved SolidJS’ <Portal> component and a quirk with how Solid Testing Library (or maybe Testing Library itself?) places elements in the DOM―but you can read a little writeup I made in a GitHub issue here: https://github.com/solidjs/solid-testing-library/issues/62
Anyway, once I got that blocker out of the way, I started working through more component tests. I’ve spent over a week working on tests for a single component, and am taking a break from that to write this post.

I’ve been fighting jsdom pretty heavily. I’d use the more recent Happy DOM, but simply changing the environment in the Vitest config causes some tests to fail, as Happy DOM doesn’t support some of the browser functionality I rely on. Jsdom isn’t much better in that regard; Among other things, such as not supporting pointer-related events and having weird dragging issues, I’ve had to patch its <canvas>-handling code and replace the library that it uses―going from node-canvas to @napi-rs/canvas―as node-canvas relies on a native C++ dependency, and I loathe dealing with node-gyp.
Other
A thought that’s been making the rounds in my mind is accessibility. When it comes to screen reader accessibility in an editor-like web-app, I’m quite lost. How do I make an error view accessible? What about a sidebar that pops up when you selecting a tile? All accessibility rules I know are more applicable to traditional webpages, for things like blogs and informational sites.
I implemented the “Types” tab in the database, and you can add and remove items from each of the categories.
I’ve also finally done some work on saving! It’s still not usable and some things don’t get saved yet (there is soooo much work to do for this project), but it’s a start! I squashed some weird MV-related bugs in the process as well.
I’ve brought in Effect as a dependency to deal with some error handling. It takes a while to wrap your head around it (I’m still figuring out the ropes), but it makes error handling a lot nicer to deal with. I’m still not entirely sure how to best fit it together with SolidJS though.
As of a while ago (it’s been quite some time since the last update), I’ve finally decided on a name for the project. :) I’m not sure yet when I want to reveal it, but I’ll do it eventually. You’ll have to wait and see, heehee! :3c
One of the things that I’m not sure how I’ll implement is one of those native app-style lists of items, where you can select multiple items, drag them around, and optionally handle nesting behavior (for example, in the sidebar map view). I’m not entirely sure what that’s called, and I’m also concerned about how to do that in an accessible way. I haven’t been able to find any libraries that would handle it either.
Footnotes
-
It still feels weird to refer to this “blog” as my journal. You might’ve noticed that I tend to refer to these entries as “posts.” ↩