mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Tray icon #833 -- part 1 Signed-off-by: Roman <ixrock@gmail.com> * Tray icon #833 -- part 2 Signed-off-by: Roman <ixrock@gmail.com> * Tray icon #833 -- part 3 Signed-off-by: Roman <ixrock@gmail.com> * Tray icon #833 -- part 4 Signed-off-by: Roman <ixrock@gmail.com> * fix: lint / linux build failed Signed-off-by: Roman <ixrock@gmail.com> * allow to disable tray from preferences Signed-off-by: Roman <ixrock@gmail.com> * allow to tweak svg-icon before applying as tray-icon Signed-off-by: Roman <ixrock@gmail.com> * add checkbox indication, setActive workspace on cluster select Signed-off-by: Roman <ixrock@gmail.com> * fix build version (cannon find module 'react') Signed-off-by: Roman <ixrock@gmail.com> * - switching dark/light icon depending on os-x theme settings - optimization: don't re-create tray icon on menu udpates (avoid blinking) Signed-off-by: Roman <ixrock@gmail.com> * fix: refresh icon after turning on/off + switching dark-mode Signed-off-by: Roman <ixrock@gmail.com> * allow to close main window and re-open from dock or tray icon Signed-off-by: Roman <ixrock@gmail.com> * small fix Signed-off-by: Roman <ixrock@gmail.com> * fix: ensure main-window from global menu Signed-off-by: Roman <ixrock@gmail.com> * chore Signed-off-by: Roman <ixrock@gmail.com> * fix: hide traffic-light buttons for tray window Signed-off-by: Roman <ixrock@gmail.com> * removed redundant tray window Signed-off-by: Roman <ixrock@gmail.com> * removed delay from base-store Signed-off-by: Roman <ixrock@gmail.com> * adding cluster fix (reverted changes from master) Signed-off-by: Roman <ixrock@gmail.com> * - hide icon in dock when main-window closed (mac-os only) - added preferences checkbox to open app at system start-up Signed-off-by: Roman <ixrock@gmail.com> * handle quit app action from tray menu Signed-off-by: Roman <ixrock@gmail.com> * moved generating tray icons to build step Signed-off-by: Roman <ixrock@gmail.com> * Fix integration tests (#1080) * Fix integration tests Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> * Update integration/helpers/utils.ts Co-authored-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> Co-authored-by: Sebastian Malton <sebastian@malton.name> * fix-build: invisible app icon when there are more files within "build/icons/*.png" Signed-off-by: Roman <ixrock@gmail.com> * chore Signed-off-by: Roman <ixrock@gmail.com> * yarn i18n.extract Signed-off-by: Roman <ixrock@gmail.com> * clean-up Signed-off-by: Roman <ixrock@gmail.com> * navigation refactoring, move out `buildUrl` to common/utils so `react` and `react-router` not required as package.json dependecies in runtime (main) Signed-off-by: Roman <ixrock@gmail.com> * Ignore namespace query param on integration tests (#1109) Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com> * merge-conflicts fixes Signed-off-by: Roman <ixrock@gmail.com> * support page fixes Signed-off-by: Roman <ixrock@gmail.com> * make eslint happy again Signed-off-by: Roman <ixrock@gmail.com> Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com> Co-authored-by: Sebastian Malton <sebastian@malton.name>
80 lines
2.7 KiB
TypeScript
80 lines
2.7 KiB
TypeScript
import React from "react";
|
|
import { observer } from "mobx-react";
|
|
import { Redirect, Route, Switch } from "react-router";
|
|
import { Trans } from "@lingui/macro";
|
|
import { TabLayout, TabRoute } from "../layout/tab-layout";
|
|
import { ConfigMaps, configMapsRoute, configMapsURL } from "../+config-maps";
|
|
import { Secrets, secretsRoute, secretsURL } from "../+config-secrets";
|
|
import { namespaceStore } from "../+namespaces/namespace.store";
|
|
import { resourceQuotaRoute, ResourceQuotas, resourceQuotaURL } from "../+config-resource-quotas";
|
|
import { PodDisruptionBudgets, pdbRoute, pdbURL } from "../+config-pod-disruption-budgets";
|
|
import { configURL } from "./config.route";
|
|
import { HorizontalPodAutoscalers, hpaRoute, hpaURL } from "../+config-autoscalers";
|
|
import { isAllowedResource } from "../../../common/rbac"
|
|
import { buildURL } from "../../../common/utils/buildUrl";
|
|
|
|
export const certificatesURL = buildURL("/certificates");
|
|
export const issuersURL = buildURL("/issuers");
|
|
export const clusterIssuersURL = buildURL("/clusterissuers");
|
|
|
|
@observer
|
|
export class Config extends React.Component {
|
|
static get tabRoutes(): TabRoute[] {
|
|
const query = namespaceStore.getContextParams()
|
|
const routes: TabRoute[] = []
|
|
if (isAllowedResource("configmaps")) {
|
|
routes.push({
|
|
title: <Trans>ConfigMaps</Trans>,
|
|
component: ConfigMaps,
|
|
url: configMapsURL({ query }),
|
|
path: configMapsRoute.path,
|
|
})
|
|
}
|
|
if (isAllowedResource("secrets")) {
|
|
routes.push({
|
|
title: <Trans>Secrets</Trans>,
|
|
component: Secrets,
|
|
url: secretsURL({ query }),
|
|
path: secretsRoute.path,
|
|
})
|
|
}
|
|
if (isAllowedResource("resourcequotas")) {
|
|
routes.push({
|
|
title: <Trans>Resource Quotas</Trans>,
|
|
component: ResourceQuotas,
|
|
url: resourceQuotaURL({ query }),
|
|
path: resourceQuotaRoute.path,
|
|
})
|
|
}
|
|
if (isAllowedResource("horizontalpodautoscalers")) {
|
|
routes.push({
|
|
title: <Trans>HPA</Trans>,
|
|
component: HorizontalPodAutoscalers,
|
|
url: hpaURL({ query }),
|
|
path: hpaRoute.path,
|
|
})
|
|
}
|
|
if (isAllowedResource("poddisruptionbudgets")) {
|
|
routes.push({
|
|
title: <Trans>Pod Disruption Budgets</Trans>,
|
|
component: PodDisruptionBudgets,
|
|
url: pdbURL({ query }),
|
|
path: pdbRoute.path,
|
|
})
|
|
}
|
|
return routes;
|
|
}
|
|
|
|
render() {
|
|
const tabRoutes = Config.tabRoutes;
|
|
return (
|
|
<TabLayout className="Config" tabs={tabRoutes}>
|
|
<Switch>
|
|
{tabRoutes.map((route, index) => <Route key={index} {...route}/>)}
|
|
<Redirect to={configURL({ query: namespaceStore.getContextParams() })}/>
|
|
</Switch>
|
|
</TabLayout>
|
|
)
|
|
}
|
|
}
|