/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import React, { useEffect, useState } from "react"; import { useHistory } from "react-router-dom"; import { Icon } from "../icon"; import { SearchInput } from "../input"; import { Spinner } from "../spinner"; import { ExtensionCard } from "./extension-card"; import { Extension, getExtensions } from "./extension-list"; export function Install() { const [extensions, setExtensions] = useState([]); useEffect(() => { async function fetchExtensions() { try { const response = await getExtensions(); setExtensions(response); } catch (error) { console.error(error); } } fetchExtensions(); }, []); const renderExtensionsOrSpinner = () => { if (!extensions.length) { return ; } return ; }; return (

Install Extensions


 Featured Extensions

{renderExtensionsOrSpinner()}
); } function ExtensionList({ extensions }: { extensions: Extension[] }) { const history = useHistory(); function handleClick(extensionId: string) { history.push(`extension/${extensionId}`); } return ( <> {extensions.map(extension => ( handleClick(extension.id)}/> ))} ); }