The text plugin alone seems like it could be a whole standalone product. Offline first seems to be getting more and more interest. Pretty cool. Dropbox + git for non-tech users. I dig that idea.
I have a Hugo blog and I wish the experience for writing on my phone was better. I need a git client and a markdown editor to publish. Not streamlined, but it’s free.
I agree that it would make sense for substack to provide a good way to write from your phone.
To simply share some JavaScript you've got to consider JS runtimes, module formats, and package.json interpretations. Was it easier when cross-browser compatibility was the big headache?
Drag and drop sorting
Open/close folders
Inline renaming
Virtualized rendering
Custom styling
New Features in Version 2
Keyboard navigation
Aria attributes
Tree filtering
Selection synchronization
More callbacks (onScroll, onActivate, onSelect)
Controlled or uncontrolled trees
Looks like the start of a great component! It's amazing to me how there is not a really good tree component that already exists, considering how ubiquitous the tree is in user interfaces.
This is a controlled component, so all mutation of the tree data structure will need to happen in the tree's parent component. Add a function in your node renderer (maybe after clicking a trash icon), that deletes the node from the tree state. The component will re-renderer and your node will be gone.
I was thinking of making a generic tree manager class to provide basic functions (move, rename, add, delete) for managing the tree data structure in the parent component. Maybe I'll call it "Arborist"!
Ant tree looks like a great tree library and is certainly more mature than react-arborist. However, react-arborist supports renaming a node, has a slightly different drag and drop feel, and leaves all styling up to the user. Not just the title, icon, and expand buttons.
I agree that the hard-coded DefaultCursor styles need to be configurable. I'll soon update. You'll be able to pass in your own component to render the DropCursor (blue line indicating the new position of the node you're dragging).