import HomeIcon from "@mui/icons-material/Home"; import { Button } from "@mui/material"; import React from "react"; import type { UsersMap } from "../../api/matrix/MatrixApiProfile"; import type { Room } from "../../api/matrix/MatrixApiRoom"; import type { SpaceHierarchy } from "../../api/matrix/MatrixApiSpace"; import { RoomIcon } from "./RoomIcon"; export function SpaceSelector(p: { rooms: Room[]; hierarchy: SpaceHierarchy; users: UsersMap; selectedSpace?: string; onChange: (space?: string) => void; }): React.ReactElement { const spaces = React.useMemo( () => p.rooms.filter((r) => r.is_space && p.hierarchy.has(r.id)), [p.rooms] ); // Do not display space bar if your is not member of any space if (spaces.length === 0) return <>; return (
} onClick={() => p.onChange()} selected={p.selectedSpace === undefined} /> {spaces.map((s) => ( } onClick={() => p.onChange(s.id)} selected={p.selectedSpace === s.id} /> ))}
); } function SpaceButton(p: { selected?: boolean; icon: React.ReactElement; onClick: () => void; }): React.ReactElement { return ( ); }