Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3580 | Rev 3615 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3610 stevensc 1
import React, { useMemo, useState } from 'react';
3580 stevensc 2
 
3610 stevensc 3
import { Card, CardContent, CardHeader, List, Menu, SearchBar } from '@shared/components';
3580 stevensc 4
import { ConversationItem } from './ConversationItem';
5
 
3610 stevensc 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
 
3580 stevensc 19
  return (
20
    <Card>
3610 stevensc 21
      <CardHeader
22
        title='Conversaciones'
23
        renderAction={() => (
24
          <Menu>
25
            <Menu.Item onClick={onStartConversation}>Iniciar conversación</Menu.Item>
26
          </Menu>
27
        )}
28
      />
3580 stevensc 29
      <CardContent>
3610 stevensc 30
        <SearchBar placeholder='Buscar conversación' onChange={setSearch} />
3580 stevensc 31
        <List
3610 stevensc 32
          items={filteredConversations}
3580 stevensc 33
          keyExtractor={(item) => item.uuid}
34
          emptyMessage='No hay conversaciones'
35
          renderItem={(conversation) => (
36
            <ConversationItem
37
              conversation={conversation}
38
              onSelectConversation={onSelectConversation}
39
            />
40
          )}
41
        />
42
      </CardContent>
43
    </Card>
44
  );
45
};