1
0
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:
Sebastian Malton 2022-10-24 14:37:56 -04:00
parent 382d8b9446
commit 7c5aa6a42f

View File

@ -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),
}),
});