NASA-AMMOS / aerie-ui

The client application for Aerie.
https://nasa-ammos.github.io/aerie-docs/
MIT License
28 stars 5 forks source link

xrange display stacks up unless very wide timeline #602

Closed sschaffe closed 8 months ago

sschaffe commented 1 year ago

Checked for duplicates

No - I haven't checked

Is this a regression?

No - This is a new bug

Version

1.4.0

Describe the bug

With some kinds of x-range displays in normal window/panel sizes, the rendered bars appear to all stack up together on the left of the timeline and not at their proper times. normal includes setups where the timeline is >80% of the browser and browser is >80% of the screen.

Workaround: Widening the window/panel sufficiently (>90%) allows them to spread out properly.

https://user-images.githubusercontent.com/30133487/234877780-5f3a698d-8fa2-4cea-b000-aa6e1301acd5.mov

Reproduction

Use the clipper eurc model Simulate plan from 2025-090 to 2025-134 Set up x-range display of resource "/dsn/forecast/DSS_63/X/optimalAntennaPath" Resize window/panels

Logs

20plans-_id_-page.svelte.38758d3d.js:56 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'slice')
    at P (plans-_id_-page.svelte.38758d3d.js:56:21364)
P @ plans-_id_-page.svelte.38758d3d.js:56
await in P (async)
i.$$.update @ plans-_id_-page.svelte.38758d3d.js:56
Gt @ index.bc06f223.js:4
wt @ index.bc06f223.js:4
Promise.then (async)
gt @ index.bc06f223.js:4
Vt @ index.bc06f223.js:4
(anonymous) @ index.bc06f223.js:4
Ye @ plans-_id_-page.svelte.38758d3d.js:106
2plans-_id_-page.svelte.38758d3d.js:56 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'slice')
    at P (plans-_id_-page.svelte.38758d3d.js:56:21364)
P @ plans-_id_-page.svelte.38758d3d.js:56
await in P (async)
i.$$.update @ plans-_id_-page.svelte.38758d3d.js:56
Gt @ index.bc06f223.js:4
wt @ index.bc06f223.js:4
Promise.then (async)
gt @ index.bc06f223.js:4
Vt @ index.bc06f223.js:4
(anonymous) @ index.bc06f223.js:4
(anonymous) @ plans-_id_-page.svelte.38758d3d.js:106
f @ index.bfe4a929.js:1
l @ index.bfe4a929.js:1
jr @ modal.e05c601e.js:1360
Ve @ plans-_id_-page.svelte.38758d3d.js:106
(anonymous) @ index.bc06f223.js:4
(anonymous) @ index.bc06f223.js:4
D @ plans-_id_-page.svelte.38758d3d.js:106
(anonymous) @ index.bc06f223.js:4
(anonymous) @ index.bc06f223.js:4
T @ CssGrid.c7c5ea78.js:1
c.stopDragging @ CssGrid.c7c5ea78.js:1

System Info

MacOS 13.13.1
Chrome 112.0.5615.137
Aerie 1.4.0
Eurc feature--forecast-dish-size (PR 1809)

Severity

Annoyance

AaronPlave commented 1 year ago

Do you notice a pattern with which x-range plots/resources/values this happens with? Saw some null values in the buggy x-range plots and was curious if it had anything to do with that.

sschaffe commented 1 year ago

you're right. the boolean resource at the top of the screen has the same number of ranges but doesn't exhibit the display problem. the resource at the bottom that does have the problem is a nullable-multi-enum resource, so it is serializing its no-value periods with the special SerializedValue.NULL marker.

and watching carefully, I'm noticing that it fails to display up until the panel is wide enough that every "null" word that wants to render across all the ranges can all completely fit on screen and not get truncated. so maybe the "null" is not be allowed to truncate like user values are? (the LGA3 etc values just hide themselves if not enough space)

camargo commented 1 year ago

Just noting this issue might have been avoided if we had https://github.com/NASA-AMMOS/aerie-ui/issues/257

AaronPlave commented 8 months ago

Should these null values show up as actual segments labeled with "null"? Or would you expect them to not be rendered at all? Same question for showing this resource in a line plot.