Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Selecting data on a graph is not reliable #679

Open
artemutin opened this issue Oct 13, 2023 · 1 comment
Open

Selecting data on a graph is not reliable #679

artemutin opened this issue Oct 13, 2023 · 1 comment

Comments

@artemutin
Copy link

Hello.

I'd like to report some issues with data selection and filtering in SandDance (it happens in a web version on https://microsoft.github.io/SandDance/app/ as well as Azure Data Studio extension).
IMO, this feature works counterintuitively and feels flaky. Sometimes, all it takes is a one click, and the data point gets selected. Sometimes you have to make several clicks or double clicks for it to finally work. Sometimes it gets stuck somehow - data point is already selected (colored purple), but filtering in a data menu doesn't apply no matter what. I have to reselect different data points and go back to the needed one.

There is also a separate problem with selection when SandDance graph is exported into html file. In that environment selection is broken completely, and js console contains several types of errors:

``` sanddance-embed.js:211 Uncaught TypeError: Cannot read properties of undefined (reading 'source') at Object.onCanvasClick (sanddance-embed.js:211:54) at Object.onLayerClick [as onCanvasClick] (sanddance-explorer.js:39932:60) at sanddance-explorer.js:36575:21 onCanvasClick @ sanddance-embed.js:211 onLayerClick @ sanddance-explorer.js:39932 (anonymous) @ sanddance-explorer.js:36575 setTimeout (async) (anonymous) @ sanddance-explorer.js:36574

sanddance-embed.js:221 Uncaught TypeError: Cannot read properties of undefined (reading 'source')
at Object.onCubeClick (sanddance-embed.js:221:54)
at $322b2f4239e53da8$export$2ec4afd9b3c16a85.onCubeClick (sanddance-explorer.js:39820:50)
at Object.onCubeClick (sanddance-explorer.js:36792:23)
at $c3cb5e962208053a$export$d0d38e7dec7a1a61.inputManager.pickItemCallback (sanddance-explorer.js:36581:17)
at $c3cb5e962208053a$export$d0d38e7dec7a1a61.update (sanddance-explorer.js:15813:73)
at $ef8115e67e148944$export$4143ab5b91744744.update (sanddance-explorer.js:16239:32)
at $ef8115e67e148944$export$4143ab5b91744744._tick (sanddance-explorer.js:16226:18)
at sanddance-explorer.js:16230:111
onCubeClick @ sanddance-embed.js:221
onCubeClick @ sanddance-explorer.js:39820
onCubeClick @ sanddance-explorer.js:36792
inputManager.pickItemCallback @ sanddance-explorer.js:36581
update @ sanddance-explorer.js:15813
update @ sanddance-explorer.js:16239
_tick @ sanddance-explorer.js:16226
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230
requestAnimationFrame (async)
_tick @ sanddance-explorer.js:16230
(anonymous) @ sanddance-explorer.js:16230

sanddance-embed.js:211 Uncaught TypeError: Cannot read properties of undefined (reading 'source')
at Object.onCanvasClick (sanddance-embed.js:211:54)
at Object.onLayerClick [as onCanvasClick] (sanddance-explorer.js:39932:60)
at sanddance-explorer.js:36575:21

</details>
@danmarshall
Copy link
Contributor

Thanks for the report. Perhaps we can modify the timeout value to differentiate between a click and a drag.
The purple highlight is a cursor (not a selection) to show the active item in the data browser pane, where you can use prev/next buttons to peruse data items. We're trying to balance functionality vs simplicity of the ui, so hopefully some features are discoveries if they're not immediately intuitive.

I've fixed the final issue you mentioned in #681 which should be fixed in your html pages since uses the Unpkg cdn.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants