Git Product home page Git Product logo

Comments (2)

miroiu avatar miroiu commented on June 13, 2024

Hi! The provided controls do not hold too much state because everything is intended to be controlled by the view model. Of course, I could have an undo action for basic things like moving a node or zooming the canvas, etc. But that would surely interfere with your custom-made undo-redo solution, over-complicating things. Then we need to think about what stays in memory and for how long, then make sure that the view does not get out of sync with the view model. In the case of copy-paste, how would you validate that copy-paste is allowed? The graph may be read-only or some of the nodes should be unique. These rules are application-specific. Even if I tried implementing something in the library, it wouldn't be generic enough to cover all cases.

However, I had an attempt at creating a separate library at some point in time which would implement most of the common functionality you see in a node editor in a generic way so you can use it as a base. Here's the PR if you are interested: #36 . And here are the relevant files for undo/redo: https://github.com/miroiu/nodify/tree/feature/new-blueprint/Nodifier/UndoRedo

from nodify.

miroiu avatar miroiu commented on June 13, 2024

Closing this as not planned. Please feel free to reopen the issue if you need more information.

from nodify.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.