// imports import clsx from 'clsx'; import ComponentLoading from '@chirper/react/src/components/Loading'; import React, { useState } from 'react'; // locals import useTeam from '../../../hooks/useTeam'; import ApiSignal from '../../../signals/Api'; import useResults from '../../../hooks/useResults'; import TeamAvatar from '../Avatar'; import { useSignal } from '../../../signal'; /** * component channel select * * @param props */ const ComponentTeamSelect = (props = {}) => { // api const [sApi] = useSignal(ApiSignal); // team const team = useTeam(); // state const [search, setSearch] = useState(''); // items const { resetting, items : members, onItem, loadNext, } = useResults(sApi.Team.Member.list, 'members', { sort : props.sort, team : team?.id, mine : false, search : search, disable : !team?.id, }, null, props.onResult); // return jsx return (
{members.map((member) => (
props.onSelect(member)} className={clsx( 'flex cursor-pointer flex-row px-3 py-2 space-x-3 w-full rounded-lg items-center hover:bg-gray-500', (props.loading === member.id) && '!bg-gray-400' )}>
{member.agent?.id ? ( <>
{member.agent?.name}
AI Agent
) : ( <>
{member.user?.name || member.user?.email}
{member.user?.email}
)}
{props.loading === member.id && (
)}
))}
); }; /** * export default */ export default ComponentTeamSelect;