// @flow import React, { useCallback, useContext } from 'react'; import Button from './Button'; import ButtonIcon from './ButtonIcon'; import { TreeContext } from './TreeContext'; import { StoreContext } from './context'; import type { Element } from '../types'; import styles from './OwnersStack.css'; export default function OwnerStack() { const { ownerStack, resetOwnerStack } = useContext(TreeContext); // $FlowFixMe "Missing type annotation for U" whatever that means const elements = ownerStack.map((id, index) => ( )); return (
{elements}
); } type Props = { id: number, index: number, }; function ElementView({ id, index }: Props) { const { ownerStackIndex, selectOwner } = useContext(TreeContext); const store = useContext(StoreContext); const { displayName } = ((store.getElementByID(id): any): Element); const isCurrentlyFocusedOwner = ownerStackIndex === index; const handleClick = useCallback(() => { if (!isCurrentlyFocusedOwner) { selectOwner(id); } }, [id, isCurrentlyFocusedOwner, selectOwner]); return ( {displayName} ); }