import { useState, useEffect } from 'react' import Head from 'next/head' import Workspace from '../components/Workspace' import styles from '../styles/Home.module.css' export default function Home({ searchText }) { const [workspaces, setWorkspaces] = useState(null) const [versions, setVersions] = useState(null) const [version, setVersion] = useState(null) useEffect(() => { let currentVersion = localStorage.getItem("version") || null fetch('list.json') .then((res) => res.json()) .then((workspaces) => { let wsversions = [] workspaces.workspaces.forEach((workspace) => { if(workspace.compatibility) { workspace.compatibility.forEach((v) => { const value = parseFloat(v) if(wsversions.indexOf(value) === -1) { wsversions.push(value) } }) } }) const sorted = wsversions.sort((a,b) => a-b).reverse() setVersions(sorted) if (currentVersion === null) { currentVersion = sorted[0] localStorage.setItem("version", currentVersion); } setVersion(currentVersion) setWorkspaces(workspaces) }) }, []) const updateVersion = (version) => { localStorage.setItem("version", version); setVersion(version) } let filteredworkspaces = workspaces && workspaces.workspaces && workspaces.workspaces.length > 0 ? [...workspaces.workspaces] : []; filteredworkspaces = filteredworkspaces.filter((v) => v.compatibility.some((el) => el === version + '.x')) const lowerSearch = searchText && searchText.toLowerCase(); if (searchText && searchText !== "") { filteredworkspaces = filteredworkspaces.filter((i) => { const category = (i.categories && i.categories.length > 0) ? i.categories.filter((i) => i.toLowerCase().includes(lowerSearch) ) : []; return ( i.name.toLowerCase().includes(lowerSearch) || category.length > 0 ); }); } return (
Kasm Workspaces

Workspaces {workspaces && workspaces.workspacecount} Kasm Version {versions && versions.map((v) => (
updateVersion(v)}>{v}
))}

{filteredworkspaces && filteredworkspaces.length > 0 && filteredworkspaces.map(function (workspace, i) { return })} {filteredworkspaces && filteredworkspaces.length === 0 && (

No workspaces found {searchText !== '' && ('matching "' + searchText + '"')}

)}
) }