Skip to content

Conversation

@Gauss-Taylor-Euler
Copy link
Contributor

@Gauss-Taylor-Euler Gauss-Taylor-Euler commented Jun 24, 2025

Embedded panels

Embedded side panels, resolves #824

Demo :

demo_panel_embed.mp4

Checklist

  • PR has a descriptive title and content.
  • PR description contains references to any issues the PR resolves, e.g. Resolves #XXX.
  • PR has one of the labels: documentation, bug, enhancement, feature, maintenance
  • Checks are passing.

📚 Documentation preview: https://jupytergis--784.org.readthedocs.build/en/784/
💡 JupyterLite preview: https://jupytergis--784.org.readthedocs.build/en/784/lite

@github-actions
Copy link
Contributor

Binder 👈 Launch a Binder on branch Gauss-Taylor-Euler/jupytergis/moveable_panel

@github-actions
Copy link
Contributor

github-actions bot commented Jun 24, 2025

Integration tests report: appsharing.space

@mfisher87
Copy link
Member

mfisher87 commented Jun 24, 2025

Dang, Guy, that was quick! Nice job! (I'm working on reviewing your other PR right now 😸 )

Is this ready for a full review? If not, can you please convert to draft?

I think to make this releasable we need these panels to be completely closable, and perhaps off-by-default.

It'd be nice to come up with a descriptive name for each panel. For the left panel (layers and filters), I think we can call it the "Layers menu" and use a "layers" icon for the button to open it . The right panel is a bit harder. It includes object (layer & source) properties, annotations, and the identify results. What could we call that? "Details menu"? A "cog" icon? Or a "list" icon?

What do you all think?

I like the idea of completely removing the existing side panel icons so we can have a dedicated menu for each instance of JupyterGIS, as the user could have many open (widget, sidepanel, or project file) and it can be confusing when the side panel only shows information for one at a time. Nice :)

@mfisher87 mfisher87 added the enhancement New feature or request label Jun 24, 2025
@Gauss-Taylor-Euler Gauss-Taylor-Euler marked this pull request as draft June 24, 2025 16:03
@Gauss-Taylor-Euler
Copy link
Contributor Author

Dang, Guy, that was quick! Nice job! (I'm working on reviewing your other PR right now 😸 )

Is this ready for a full review? If not, can you please convert to draft?

I think to make this work in the main branch we need these panels to be completely closable, and perhaps off-by-default.

It'd be nice to come up with a descriptive name for each panel. For the left panel (layers and filters), I think we can call it the "Layers menu" and use a "layers" icon for the button to open it . The right panel is a bit harder. It includes object (layer & source) properties, annotations, and the identify results. What could we call that? "Details menu"? A "cog" icon? Or a "list" icon?

What do you all think?

I like the idea of completely removing the existing side panel icons so we can have a dedicated menu for each instance of JupyterGIS, as the user could have many open (widget, sidepanel, or project file) and it can be confusing when the side panel only shows information for one at a time. Nice :)

It isn't ready for a review, I have converted it to a draft request, I don't really have any thoughts for the names of the panels.

@martinRenou
Copy link
Member

martinRenou commented Jul 2, 2025

Happy to be on the same page @mfisher87 !

I really like the cleanup that this PR involves. No need to mess around with document trackers and all anymore.

Concerning the UX/UI, I had the following in mind (I'll also share ideas by @trungleduc here)

  • Panels have a toolbar with buttons:
    • "-" button to minimize
    • "TBD" button to make it floating/fixed (fixed by default makes sense to me)
  • Panels will not have those accordions tabs anymore (I hate them BTW), but use real tabs now. That will be less space taken vertically.

Note: we may want to explore wrapping those in an OpenLayers control component, that way it's more integrated into the map, does not conflict with other controls (zoom in/out), and would be visible when making the map fullscreen using the fullscreen control

Taking inspiration from Felt's UI really, I feel like they've done things right:

Screencast.from.2024-06-20.09-05-25.mp4

}
}, [ref, children]);
return (
<div id={id} ref={ref} style={{ height: height, minHeight: height }} />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<div id={id} ref={ref} style={{ height: height, minHeight: height }} />
<div ref={ref} style={{ height: height, minHeight: height }} />

};

Lumino.defaultProps = {
id: 'lumino-id',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't use an id for that component, ids are supposed to be unique in the page and it looks like this code will most eventually make duplicates.

Suggested change
id: 'lumino-id',

@mfisher87
Copy link
Member

mfisher87 commented Jul 3, 2025

Panels will not have those accordions tabs anymore (I hate them BTW), but use real tabs now

💯 💯 💯

One thing I think we should watch out for is that some updates may not be visible to the user anymore. For example the "Annotations" tab might be deselected most of the time. When the annotations list changes, it would be really nice to present an indicator that this tab has new information, e.g. like GitHub presents a blue circle on the notifications button when there are new notifications. When using the "identify" tool, I think we should just auto-open that tab when the user identifies a feature; they always want to see the result of that operation (or they wouldn't be doing it ;) ).

@martinRenou
Copy link
Member

Agreed 100% with everything you said.

We were having a pair programming session with @Gauss-Taylor-Euler yesterday, we'll move all this code to pure react components along the way, no more lumino

@Gauss-Taylor-Euler Gauss-Taylor-Euler force-pushed the moveable_panel branch 2 times, most recently from 4c05acb to b891b9b Compare July 10, 2025 14:09
@Gauss-Taylor-Euler
Copy link
Contributor Author

Demo.panels.mp4

Copy link
Member

@martinRenou martinRenou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I made some more suggestions

@Gauss-Taylor-Euler
Copy link
Contributor Author

Thanks! I made some more suggestions

No problem I am looking into it.

@Gauss-Taylor-Euler
Copy link
Contributor Author

demo_panel_embed.mp4

@Gauss-Taylor-Euler Gauss-Taylor-Euler changed the title Floating side panels Embedded side panels Jul 17, 2025
@Gauss-Taylor-Euler Gauss-Taylor-Euler marked this pull request as ready for review July 17, 2025 13:06
@Gauss-Taylor-Euler Gauss-Taylor-Euler force-pushed the moveable_panel branch 2 times, most recently from c67caa6 to 94cf081 Compare July 17, 2025 13:25
@trungleduc
Copy link
Collaborator

demo_panel_embed.mp4

I think adding shadow effect to the panels can make it look better.

@Gauss-Taylor-Euler
Copy link
Contributor Author

shadow-demo.mp4

Copy link
Member

@martinRenou martinRenou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some more things I noticed while testing:

The panels should take 80% of the available height and we should be able to scroll through the tabs content if it goes over that available space:

See how we can't scroll through identified features if there are too many (it goes out of screen)

Screenshot From 2025-07-21 15-56-44

The temporal component is now visible anymore (hidden by the panels)

For now we could probably live with setting z-index: 99 on the temporal component so that it goes on top of the panels, but in a later PR we should make something nicer (maybe the temporal component should be yet another tab)

Screenshot From 2025-07-21 15-56-52

@mfisher87
Copy link
Member

mfisher87 commented Jul 22, 2025

Beautiful 🤩

maybe the temporal component should be yet another tab

Today in the sync meeting, Martin and I discussed that perhaps the current "Identify" panel could be an "Active tool" panel; depending on which tool the user selects, the UI for that tool can go there. E.g. if "identify" mode is active, it works as it does now; if "time controller" is active, it shows the time controller UI. (To be clear: not for this PR; created #827)

@Gauss-Taylor-Euler
Copy link
Contributor Author

Gauss-Taylor-Euler commented Jul 28, 2025

bot please update snapshots!!!

@mfisher87
Copy link
Member

Hey Guy, just wanted to double-check you noticed some of my review comments are hidden by GitHub under "N hidden conversations"?

@Gauss-Taylor-Euler
Copy link
Contributor Author

Gauss-Taylor-Euler commented Jul 28, 2025

Yes I looked into them , normally all of them are resolved.

@martinRenou martinRenou reopened this Jul 28, 2025
@mfisher87
Copy link
Member

Yes I looked into them , normally all of them are resolved.

Hey Guy, one missed suggestion hidden by the GitHub UI. You can see the hidden suggestions by clicking "Load more..." above:

#784 (comment)

It can help to keep track of them if you mark them as resolved as you go!

@Gauss-Taylor-Euler
Copy link
Contributor Author

Gauss-Taylor-Euler commented Jul 30, 2025

bot please update snapshots!!

@martinRenou
Copy link
Member

Triggering CI

@martinRenou martinRenou reopened this Jul 30, 2025
Copy link
Member

@mfisher87 mfisher87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, awesome work!

@Gauss-Taylor-Euler
Copy link
Contributor Author

bot please update snapshots!!

@arjxn-py
Copy link
Member

arjxn-py commented Aug 1, 2025

Triggering CI

@arjxn-py arjxn-py closed this Aug 1, 2025
@arjxn-py arjxn-py reopened this Aug 1, 2025
@martinRenou
Copy link
Member

Let's goooo! Thanks a ton @Gauss-Taylor-Euler for this, and thanks to @mfisher87 for the in-depth reviews ❤️

@martinRenou martinRenou merged commit 4d0075a into geojupyter:main Aug 1, 2025
13 checks passed
@arjxn-py
Copy link
Member

arjxn-py commented Aug 1, 2025

Great Success everyone 🎉 🚀
Thanks @Gauss-Taylor-Euler

@mfisher87
Copy link
Member

Awesome work @Gauss-Taylor-Euler !!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Embed side panels within map view

6 participants