1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Highlight general entities in hotbar if their route matches

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2021-09-06 13:54:12 +03:00
parent 2705519932
commit 0047289e8d
2 changed files with 20 additions and 13 deletions

View File

@ -19,7 +19,9 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import { navigate } from "../../renderer/navigation";
import { reaction, when } from "mobx";
import { catalogEntityRegistry } from "../../renderer/api/catalog-entity-registry";
import { isActiveRoute, navigate, navigation } from "../../renderer/navigation";
import { CatalogCategory, CatalogEntity, CatalogEntityMetadata, CatalogEntitySpec, CatalogEntityStatus } from "../catalog";
import { catalogCategoryRegistry } from "../catalog/catalog-category-registry";
@ -71,6 +73,23 @@ export class GeneralCategory extends CatalogCategory {
kind: "General"
}
};
constructor() {
super();
reaction(() => navigation.location, () => this.setEntityOnRouteMatch(), { fireImmediately: true });
}
async setEntityOnRouteMatch() {
await when(() => catalogEntityRegistry.entities.size > 0);
const entities = catalogEntityRegistry.getItemsForCategory(this);
const activeEntity = entities.find(entity => isActiveRoute(entity.spec.path));
if (activeEntity) {
catalogEntityRegistry.activeEntity = activeEntity;
}
}
}
catalogCategoryRegistry.add(new GeneralCategory());

View File

@ -103,21 +103,9 @@ export class Catalog extends React.Component<Props> {
Notifications.error(<p>Unknown category: {routeTab}</p>);
}
}, {fireImmediately: true}),
reaction(() => catalogEntityRegistry.getById("catalog-entity"), () => {
this.setActiveEntity();
}, {fireImmediately: true})
]);
}
componentWillUnmount() {
this.removeActiveEntity();
}
setActiveEntity() {
catalogEntityRegistry.activeEntity = catalogEntityRegistry.getById("catalog-entity");
}
removeActiveEntity() {
catalogEntityRegistry.activeEntity = null;
}