Code Monkey home page Code Monkey logo

Comments (3)

mrchief avatar mrchief commented on May 24, 2024 1

BTW @mrchief an option to add default values is really a good idea

I agree. And so here's what I propose:

  • support an extra node prop called defaultValue: bool.
  • gather all defaultValue nodes while initial tree walking (one time calc, no overhead)
  • On change, see if selected nodes is empty. If so, restore tree with default values.
  • If no default values passed, do nothing

from react-dropdown-tree-select.

mrchief avatar mrchief commented on May 24, 2024

There are few ways you can go about this:

via css only:

Add a special class on the node and tag (className, tagClassName) and hide/disable the x button and checkbox (so it cannot be removed).

via events

The 2nd parameter to onChange gives you all selected nodes. If this is empty, then you know your default has been cleared. In this case, you can reset the data to the tree with your default data which will re-add the pill. This can be managed by an HoC.

Other options (these may or may not work for you based on your exact requirements, so take it with a grain of salt):

  • Depending on how you're using this data, you can always pad it with defaults before uploading/sending the data upstream.

  • Use disabled property on the node. This will disable the checkbox. So if you pass disabled: true and checked: true, it'll be selected and cannot be unset. They can still clear it using the tag's x button. @Gregcop1 should we be disabling the tag as well, in this case?

  • Enhance the component to accept default values. This will need a PR and if you're open to this, we can discuss this separately.

from react-dropdown-tree-select.

Gregcop1 avatar Gregcop1 commented on May 24, 2024

IMHO, combining disabled and checked is not a good idea. As a user, if a node is disabled, I won't understand why is it set by default. If a tag is set by default and can't be removed, the node should not appear in the list.

The solution via CSS is good and pretty easy : .tag-item:first-child .tag-remove { display: none; } but I'm not sure it fits to @amondragon. The default tag should be removable but set again if no other has been selected, isn't it? If so, the solution via events is the best.

BTW @mrchief an option to add default values is really a good idea

from react-dropdown-tree-select.

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.