I'm creating a color palette where I have a clipboard icon within a Tooltip component next to each color. On click it will copy the color's name onto the user's clipboard. When that happens, the Tooltip's message should change from "copy" to "copy success". I'm having issues trying to display the success message individually for each color.
How to properly render a success message upon clipboard click and copy
1.3k Views Asked by AudioBubble At
2
There are 2 best solutions below
0
Donnyesq
On
Try passing 'event' as a parameter to your onClick function and using the stopPropagation() method. Like so:
<Tooltip title={copyMessage} placement="right">
<span
onClick={(event) => {
event.stopPropagation()
copyNameToClipboard(color.name);
setState({
copyMessage: 'copy success',
});
}}
>
This should stop your event from 'bubbling up' to other components:
https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation
Related Questions in JAVASCRIPT
- Angular Show All When No Filter Is Supplied
- Why does a function show up as not defined
- I count the time the user takes to solve my quiz using Javascript but I want the same time displayed on another page
- Set "More" "Less" font size
- Using pagination on a table in AngularJS
- How to sort these using Javascript or Jquery Most effectively
- how to fill out the table with next values in array with one button
- State with different subviews
- Ajax jQuery firing multiple time display event for the same result
- Getting and passing MVC Model data to AngularJS controller
- Disable variable in eval
- javascript nested loops waiting for user input
- .hover() seems to overwrite .click()
- How to sort a multi-dimensional array by the second array in descending order?
- How do I find the fonts that are not loading in a CORS situation ( MoovWeb )?
Related Questions in REACTJS
- What is `_dereq_()` inside React?
- React TypeError: React.renderComponent is not a function
- React - saving a component in the ref callback
- React Rails component: manually triggering a re-render
- React, ES6 - getInitialState was defined on a plain JavaScript class
- How to get multiple selected options value in React JS?
- React.render replace container instead of inserting into
- reactjs datagrid use html
- props is not initialized in react component
- How to display xml data using Reactjs
- hooking up the data model in ReactJS - syntax
- ReactJS: How to use an immutable empty array or object
- How to use Sinon.js FakeXMLHttpRequest with superagent?
- React select onChange is not working
- ReactJS - Tutorial Comment System > Threaded commenting
Related Questions in MATERIAL-UI
- Error when trying material-ui SelectField component
- How to change style of Next/Prev Button in Griddle
- Using Material-UI muiThemeable in Typescript
- Can't reproduce example of Stepper from Material-UI properly
- Webpack + Material UI leads to css errors and non same behavior on client and server rendering
- Material-ui compatibility with other non-mui react components
- Can we just replace input field of filter component to a material UI text field
- How to wrap material-ui ListItem in react-virtualized autosizer
- Material-UI Call function when clearing autocomplete textfield
- How can I customize the color of a Checkbox in Material UI?
- Android hamburger arrow transition on new fragment / activity
- reactjs/material-ui app is whooping 917kb in production build! What do I do to decrease size?
- react component error Cannot read property of undefined
- Material UI Raised Button not working
- How to disable past dates from today date with Material ui reactjs?
Related Questions in FRONTEND
- Jquery Resize: how to check if a screen has been resized at any point
- In javaScript during a while loop how do you make the program stop to get user input?
- Nesting flex box
- Efficiently toggle visibility on multiple images
- Link remains :hover'ed when opened from JS
- Load UI app in memory without opening browser
- Can I have css of a <span> change when <span> can't fit in screen width?
- How does JS front-end framework (ember, Angular etc.) work with back-end frameworks(such as Django , Rails etc.)?
- Levels of abstraction on AngularJS Architecture
- Force all options of a select list to appear as expanded on click
- Front-end JavaScript program
- SVG as icon font alternative
- Export data from JSON to excel by preserving data type
- Could two projects use same database?
- What does it mean Bootstrap is compiled?
Related Questions in HTML5-CLIPBOARD-API
- Items written to clipboard by Navigator.clipboard.write() could not be pasted correctly
- How create link with text and paste it to telegram desktop
- Event listener 'Copy' doesn't work with "Copy Link Address"
- Jekyll Code snippet copy-to-clipboard button
- Clipboard API used in conjunction with Axios in click event
- How can I use writeText() and readText() to copy and paste text throughout browsers using my Chrome Extension?
- Copy Canvas content to clipboard in Javascript in iOS
- Using the clipboard API from a Google Apps Script Web Application
- Clipboard API copy to clipboard and then open new window? Avoid loosing window focus
- How to Integrate Copy to Clipboard with Rainbow Syntax Highlighter
- How do I prompt user for clipboard read permission in the popup of the chrome extension?
- How to fix the "Cannot find name 'ClipboardItem'" error?
- dispatching ClipboardEvent on textarea element does not work
- Send Image in WhatsApp Web with Chrome Extension
- Changing only the name of a variable appears to break JavaScript code to copy a link to the clipboard
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
All of you
Tooltipcomponents are using the same parent statethis.state.copyMessage. If you click copy on one, that setsthis.state.copyMessageto"copy success", and it gets rerendered for all other Tooltips. You need to be able to either:I'd personally go with a way to identify who was clicked.
Global declaration
Set your state onClick
Get the appropriate message for the specific color
Pass in the title
There are many ways to work around this, and this is just one I find readable!