UNPKG

@eureca/eureca-ui

Version:

UI component library of Eureca's user and admin apps

79 lines (71 loc) 1.94 kB
import React from 'react'; import Faker from 'faker/locale/pt_BR'; import { Avatar } from '../../Avatar'; import { TableMenu } from '../../TableMenu'; import { stableSort } from '../../Table/table-sorting'; import { format } from 'date-fns/esm'; const options = [ { id: 0, label: 'Ver detalhes', onClick: () => console.log("Clicou 'Salvar Detalhes'") }, { id: 1, label: 'Enviar-email', onClick: () => console.log("Clicou 'Enviar Email'") }, ]; function createData({ id, avatarUrl, email, access, expiration, invitation }) { return { id, avatar: <Avatar name="avatar" size={40} src={avatarUrl} />, email, access, expiration: format(expiration, 'dd/MM/yyyy'), invitation, menu: <TableMenu options={options} />, }; } const rawData = [...Array(4).keys()].map(() => ({ id: Faker.random.number(), avatarUrl: Faker.image.avatar(), email: Faker.name.findName(), access: Faker.random.arrayElement(['Administrador', 'Editor', 'Avaliador', 'Observador']), expiration: Faker.date.between('2019-01-01', '2022-01-01'), invitation: Faker.random.arrayElement(['Ativo', 'Pendente']), })); const basicContent = rawData.map(d => createData(d)); const basicColumns = [ { id: 'id', skip: true, }, { id: 'avatar', numeric: false, disablePadding: true, sortable: false, label: '', style: { width: 40 }, }, { id: 'email', numeric: false, disablePadding: false, label: 'Email', }, { id: 'access', numeric: false, disablePadding: false, label: 'Tipo de Acesso', }, { id: 'expiration', numeric: false, disablePadding: false, label: 'Expira em', }, { id: 'invitation', numeric: false, disablePadding: false, label: 'Convite', sortFn: (d, cmp) => stableSort(rawData, cmp).map(d => createData(d)), }, { id: 'menu', numeric: false, label: '' }, ]; export { basicColumns, basicContent };