Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3618 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3719 stevensc 1
import React, { useMemo, useState } from 'react';
2
 
3
import { Card, CardContent, CardHeader, List, Menu, SearchBar } from '@shared/components';
4
import { ConversationItem } from './ConversationItem';
5
 
6
export const ConversationsList = ({
7
  conversations = [],
8
  onSelectConversation,
9
  onStartConversation
10
}) => {
11
  const [search, setSearch] = useState('');
12
 
13
  const filteredConversations = useMemo(() => {
14
    return conversations.filter((conversation) =>
15
      conversation.name.toLowerCase().includes(search.toLowerCase())
16
    );
17
  }, [conversations, search]);
18
 
19
  return (
20
    <Card>
21
      <CardHeader
22
        title='Conversaciones'
23
        renderAction={() => (
24
          <Menu>
25
            <Menu.Item onClick={onStartConversation}>Iniciar conversación</Menu.Item>
26
          </Menu>
27
        )}
28
      />
29
      <CardContent styles={{ display: 'flex', flexDirection: 'column', gap: 1 }}>
30
        <SearchBar placeholder='Buscar conversación' onChange={setSearch} />
31
        <List
32
          styles={{ maxHeight: '400px', overflow: 'auto' }}
33
          items={filteredConversations}
34
          keyExtractor={(item) => item.uuid}
35
          emptyMessage='No hay conversaciones'
36
          renderItem={(conversation) => (
37
            <ConversationItem
38
              conversation={conversation}
39
              onSelectConversation={onSelectConversation}
40
            />
41
          )}
42
        />
43
      </CardContent>
44
    </Card>
45
  );
46
};