mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Remove legacyStore for ingresses
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
382d8b9446
commit
7c5aa6a42f
@ -32,85 +32,86 @@ interface Dependencies {
|
||||
filterByNamespace: FilterByNamespace;
|
||||
}
|
||||
|
||||
@observer
|
||||
class NonInjectedIngresses extends React.Component<Dependencies> {
|
||||
render() {
|
||||
return (
|
||||
<SiblingsInTabLayout>
|
||||
<KubeObjectListLayout
|
||||
isConfigurable
|
||||
tableId="network_ingresses"
|
||||
className="Ingresses"
|
||||
store={this.props.ingressStore}
|
||||
sortingCallbacks={{
|
||||
[columnId.name]: ingress => ingress.getName(),
|
||||
[columnId.namespace]: ingress => ingress.getNs(),
|
||||
[columnId.age]: ingress => -ingress.getCreationTimestamp(),
|
||||
}}
|
||||
searchFilters={[
|
||||
ingress => ingress.getSearchFields(),
|
||||
ingress => ingress.getPorts(),
|
||||
]}
|
||||
renderHeaderTitle="Ingresses"
|
||||
renderTableHeader={[
|
||||
{ title: "Name", className: "name", sortBy: columnId.name, id: columnId.name },
|
||||
{ className: "warning", showWithColumn: columnId.name },
|
||||
{ title: "Namespace", className: "namespace", sortBy: columnId.namespace, id: columnId.namespace },
|
||||
{ title: "LoadBalancers", className: "loadbalancers", id: columnId.loadBalancers },
|
||||
{ title: "Rules", className: "rules", id: columnId.rules },
|
||||
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
|
||||
]}
|
||||
renderTableContents={ingress => [
|
||||
ingress.getName(),
|
||||
<KubeObjectStatusIcon key="icon" object={ingress} />,
|
||||
<a
|
||||
key="namespace"
|
||||
className="filterNamespace"
|
||||
onClick={prevDefault(() => this.props.filterByNamespace(ingress.getNs()))}
|
||||
>
|
||||
{ingress.getNs()}
|
||||
</a>,
|
||||
ingress.getLoadBalancers().map(lb => <p key={lb}>{lb}</p>),
|
||||
computeRouteDeclarations(ingress).map(decl => (
|
||||
decl.displayAsLink
|
||||
? (
|
||||
<div key={decl.url} className="ingressRule">
|
||||
<a
|
||||
href={decl.url}
|
||||
rel="noreferrer"
|
||||
target="_blank"
|
||||
onClick={e => e.stopPropagation()}
|
||||
>
|
||||
{decl.url}
|
||||
</a>
|
||||
{` ⇢ ${decl.service}`}
|
||||
</div>
|
||||
)
|
||||
: (
|
||||
<div key={decl.url} className="ingressRule">
|
||||
{`${decl.url} ⇢ ${decl.service}`}
|
||||
</div>
|
||||
)
|
||||
)),
|
||||
<KubeObjectAge key="age" object={ingress} />,
|
||||
]}
|
||||
tableProps={{
|
||||
customRowHeights: (item, lineHeight, paddings) => {
|
||||
const lines = item.getRoutes().length || 1;
|
||||
const NonInjectedIngresses = observer((props: Dependencies) => {
|
||||
const {
|
||||
ingressStore,
|
||||
filterByNamespace,
|
||||
} = props;
|
||||
|
||||
return lines * lineHeight + paddings;
|
||||
},
|
||||
}}
|
||||
/>
|
||||
</SiblingsInTabLayout>
|
||||
);
|
||||
}
|
||||
}
|
||||
return (
|
||||
<SiblingsInTabLayout>
|
||||
<KubeObjectListLayout
|
||||
isConfigurable
|
||||
tableId="network_ingresses"
|
||||
className="Ingresses"
|
||||
store={ ingressStore }
|
||||
sortingCallbacks={ {
|
||||
[columnId.name]: ingress => ingress.getName(),
|
||||
[columnId.namespace]: ingress => ingress.getNs(),
|
||||
[columnId.age]: ingress => -ingress.getCreationTimestamp(),
|
||||
} }
|
||||
searchFilters={ [
|
||||
ingress => ingress.getSearchFields(),
|
||||
ingress => ingress.getPorts(),
|
||||
] }
|
||||
renderHeaderTitle="Ingresses"
|
||||
renderTableHeader={ [
|
||||
{ title: "Name", className: "name", sortBy: columnId.name, id: columnId.name },
|
||||
{ className: "warning", showWithColumn: columnId.name },
|
||||
{ title: "Namespace", className: "namespace", sortBy: columnId.namespace, id: columnId.namespace },
|
||||
{ title: "LoadBalancers", className: "loadbalancers", id: columnId.loadBalancers },
|
||||
{ title: "Rules", className: "rules", id: columnId.rules },
|
||||
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
|
||||
] }
|
||||
renderTableContents={ ingress => [
|
||||
ingress.getName(),
|
||||
<KubeObjectStatusIcon key="icon" object={ ingress } />,
|
||||
<a
|
||||
key="namespace"
|
||||
className="filterNamespace"
|
||||
onClick={prevDefault(() => filterByNamespace(ingress.getNs()))}
|
||||
>
|
||||
{ingress.getNs()}
|
||||
</a>,
|
||||
ingress.getLoadBalancers().map(lb => <p key={ lb }>{ lb }</p>),
|
||||
computeRouteDeclarations(ingress).map(decl => (
|
||||
decl.displayAsLink
|
||||
? (
|
||||
<div key={ decl.url } className="ingressRule">
|
||||
<a
|
||||
href={ decl.url }
|
||||
rel="noreferrer"
|
||||
target="_blank"
|
||||
onClick={ e => e.stopPropagation() }
|
||||
>
|
||||
{ decl.url }
|
||||
</a>
|
||||
{ ` ⇢ ${decl.service}` }
|
||||
</div>
|
||||
)
|
||||
: (
|
||||
<div key={ decl.url } className="ingressRule">
|
||||
{ `${decl.url} ⇢ ${decl.service}` }
|
||||
</div>
|
||||
)
|
||||
)),
|
||||
<KubeObjectAge key="age" object={ ingress } />,
|
||||
] }
|
||||
tableProps={ {
|
||||
customRowHeights: (item, lineHeight, paddings) => {
|
||||
const lines = item.getRoutes().length || 1;
|
||||
|
||||
return lines * lineHeight + paddings;
|
||||
},
|
||||
} } />
|
||||
</SiblingsInTabLayout>
|
||||
);
|
||||
});
|
||||
|
||||
export const Ingresses = withInjectables<Dependencies>(NonInjectedIngresses, {
|
||||
getProps: (di, props) => ({
|
||||
...props,
|
||||
filterByNamespace: di.inject(filterByNamespaceInjectable),
|
||||
ingressStore: di.inject(ingressStoreInjectable),
|
||||
filterByNamespace: di.inject(filterByNamespaceInjectable),
|
||||
}),
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user