conda-incubator / conda-store-ui

conda-store-ui is a frontend for conda-store powered by react
https://conda-incubator.github.io/conda-store-ui/
BSD 3-Clause "New" or "Revised" License
13 stars 18 forks source link

Tasks from tabs discussion #385

Open gabalafou opened 3 months ago

gabalafou commented 3 months ago
### Tasks
- [ ] https://github.com/conda-incubator/conda-store-ui/issues/386
- [x] Remove in-app tabs
- [ ] https://github.com/conda-incubator/conda-store-ui/issues/394

Discussed in https://github.com/conda-incubator/conda-store-ui/discussions/383

Originally posted by **gabalafou** March 19, 2024 In the call today, we discussed some directions for tabs. Tabs can be useful but they also come with a cost. For example, none of these issues would exist if we did not have a tabbed interface: [#333](https://github.com/conda-incubator/conda-store-ui/issues/333), [#334](https://github.com/conda-incubator/conda-store-ui/issues/334), [#382](https://github.com/conda-incubator/conda-store-ui/issues/382). There are a number of different things we can do, such as: - Remove tabs - Fix app URL routing - Refactor and [separate app state for each environment edit form](https://github.com/conda-incubator/conda-store-ui/issues/334#issuecomment-2007660940) Here's my step-by-step proposal: 1. Fix app URL routing and remove in-app tabs. This provides a stop-gap solution to the tab issues by allowing the user to leverage the browser's tabs. This also provides a number of side benefits (such as shareable URLs). 2. Give each environment edit form its own place in the app global state. In my opinion, this needs to be fixed no matter what because users expect modern web apps to be more stateful than they were in the past. They expect to be able to make a change, navigate to other parts of the app, and then come back to where they left off. This expectation is currently broken in Conda Store UI. If the user opens an environment form, makes some edits, navigates to another part of the app, then comes back to the environment form, all of their edits are lost. 3. Decide whether and how to reintroduce tabs, taking into consideration things like using Conda Store UI as a JupyterLab extension: should we have our own tabs or should we re-use JupyterLab's built-in tab functionality?