/**
* 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)}/>
))}
>
);
}