import ob from 'urbit-ob'; import { Box, Icon, Text } from '@tlon/indigo-react'; import { Ship } from '@urbit/roller-api'; import Sigil from 'components/Sigil'; import { useCallback, useRef, useState } from 'react'; import useOnClickOutside from 'lib/useOnClickOutside'; interface ResidentRowProps { point: Ship; onKick: (point: Ship) => Promise; } export const ResidentRow = ({ point, onKick }: ResidentRowProps) => { const [showDropdown, setShowDropdown] = useState(false); const dropdownRef = useRef(null); const handleClickOutside = useCallback((event: MouseEvent | TouchEvent) => { event.stopImmediatePropagation(); setShowDropdown(false); }, []); useOnClickOutside(dropdownRef, handleClickOutside); const handleKickClick = useCallback(async () => { setShowDropdown(false); await onKick(point); }, [onKick, point]); return (
  • {ob.patp(point)} setShowDropdown(!showDropdown)} /> {showDropdown && ( <> setShowDropdown(false)} /> Kick )}
  • ); };