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; filterByNamespace: FilterByNamespace;
} }
@observer const NonInjectedIngresses = observer((props: Dependencies) => {
class NonInjectedIngresses extends React.Component<Dependencies> { const {
render() { ingressStore,
filterByNamespace,
} = props;
return ( return (
<SiblingsInTabLayout> <SiblingsInTabLayout>
<KubeObjectListLayout <KubeObjectListLayout
isConfigurable isConfigurable
tableId="network_ingresses" tableId="network_ingresses"
className="Ingresses" className="Ingresses"
store={this.props.ingressStore} store={ ingressStore }
sortingCallbacks={{ sortingCallbacks={ {
[columnId.name]: ingress => ingress.getName(), [columnId.name]: ingress => ingress.getName(),
[columnId.namespace]: ingress => ingress.getNs(), [columnId.namespace]: ingress => ingress.getNs(),
[columnId.age]: ingress => -ingress.getCreationTimestamp(), [columnId.age]: ingress => -ingress.getCreationTimestamp(),
}} } }
searchFilters={[ searchFilters={ [
ingress => ingress.getSearchFields(), ingress => ingress.getSearchFields(),
ingress => ingress.getPorts(), ingress => ingress.getPorts(),
]} ] }
renderHeaderTitle="Ingresses" renderHeaderTitle="Ingresses"
renderTableHeader={[ renderTableHeader={ [
{ title: "Name", className: "name", sortBy: columnId.name, id: columnId.name }, { title: "Name", className: "name", sortBy: columnId.name, id: columnId.name },
{ className: "warning", showWithColumn: columnId.name }, { className: "warning", showWithColumn: columnId.name },
{ title: "Namespace", className: "namespace", sortBy: columnId.namespace, id: columnId.namespace }, { title: "Namespace", className: "namespace", sortBy: columnId.namespace, id: columnId.namespace },
{ title: "LoadBalancers", className: "loadbalancers", id: columnId.loadBalancers }, { title: "LoadBalancers", className: "loadbalancers", id: columnId.loadBalancers },
{ title: "Rules", className: "rules", id: columnId.rules }, { title: "Rules", className: "rules", id: columnId.rules },
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age }, { title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
]} ] }
renderTableContents={ingress => [ renderTableContents={ ingress => [
ingress.getName(), ingress.getName(),
<KubeObjectStatusIcon key="icon" object={ingress} />, <KubeObjectStatusIcon key="icon" object={ ingress } />,
<a <a
key="namespace" key="namespace"
className="filterNamespace" className="filterNamespace"
onClick={prevDefault(() => this.props.filterByNamespace(ingress.getNs()))} onClick={prevDefault(() => filterByNamespace(ingress.getNs()))}
> >
{ingress.getNs()} {ingress.getNs()}
</a>, </a>,
ingress.getLoadBalancers().map(lb => <p key={lb}>{lb}</p>), ingress.getLoadBalancers().map(lb => <p key={ lb }>{ lb }</p>),
computeRouteDeclarations(ingress).map(decl => ( computeRouteDeclarations(ingress).map(decl => (
decl.displayAsLink decl.displayAsLink
? ( ? (
<div key={decl.url} className="ingressRule"> <div key={ decl.url } className="ingressRule">
<a <a
href={decl.url} href={ decl.url }
rel="noreferrer" rel="noreferrer"
target="_blank" target="_blank"
onClick={e => e.stopPropagation()} onClick={ e => e.stopPropagation() }
> >
{decl.url} { decl.url }
</a> </a>
{`${decl.service}`} { `${decl.service}` }
</div> </div>
) )
: ( : (
<div key={decl.url} className="ingressRule"> <div key={ decl.url } className="ingressRule">
{`${decl.url}${decl.service}`} { `${decl.url}${decl.service}` }
</div> </div>
) )
)), )),
<KubeObjectAge key="age" object={ingress} />, <KubeObjectAge key="age" object={ ingress } />,
]} ] }
tableProps={{ tableProps={ {
customRowHeights: (item, lineHeight, paddings) => { customRowHeights: (item, lineHeight, paddings) => {
const lines = item.getRoutes().length || 1; const lines = item.getRoutes().length || 1;
return lines * lineHeight + paddings; return lines * lineHeight + paddings;
}, },
}} } } />
/>
</SiblingsInTabLayout> </SiblingsInTabLayout>
); );
} });
}
export const Ingresses = withInjectables<Dependencies>(NonInjectedIngresses, { export const Ingresses = withInjectables<Dependencies>(NonInjectedIngresses, {
getProps: (di, props) => ({ getProps: (di, props) => ({
...props, ...props,
filterByNamespace: di.inject(filterByNamespaceInjectable),
ingressStore: di.inject(ingressStoreInjectable), ingressStore: di.inject(ingressStoreInjectable),
filterByNamespace: di.inject(filterByNamespaceInjectable),
}), }),
}); });