| Server IP : 193.146.211.90 / Your IP : 10.85.6.55 Web Server : Apache System : Linux wordpress-gti-69dcdb54f7-n4wdq 6.11.8-arch1-2 #1 SMP PREEMPT_DYNAMIC Fri, 15 Nov 2024 15:35:07 +0000 x86_64 User : 1001 ( 1001) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/presto-player/src/admin/ui/ |
Upload File : |
const { __ } = wp.i18n;
const { useRef, useEffect, useState } = wp.element;
const { Card, CardBody, Flex, FlexBlock, Button, ButtonGroup } = wp.components;
import classNames from "classnames";
export default ({ columns, data, onRowClick, title }) => {
if (!data.length) {
return (
<Card size="large" className="presto-card table-card">
<CardBody className="presto-flow">
<div className="presto-card__title">{title}</div>
<div style={{ opacity: 0.65 }}>
{__("No data available.", "presto-player")}
</div>
</CardBody>
</Card>
);
}
return (
<Card size="large" className="presto-card table-card">
<CardBody className="presto-flow">
<div className="presto-card__title">{title}</div>
<table
role="table"
className={classNames("presto-table", { "is-clickable": onRowClick })}
>
<thead role="rowgroup">
<tr role="row">
{columns &&
columns.map((column) => {
return (
<th key={column.key} role="columnheader">
{column.label}
</th>
);
})}
</tr>
</thead>
<tbody role="rowgroup">
{data.map((row, rowIndex) => {
return (
<tr
role="row"
key={`row-${rowIndex}`}
onClick={() => onRowClick && onRowClick(row)}
>
{columns.map((column, columnIndex) => {
return (
<td
role="cell"
data-title={column.label}
key={`row-${rowIndex}-${columnIndex}`}
aria-label={column.label}
>
{column.render ? (
column.render(row)
) : (
<div>{column.value(row)}</div>
)}
</td>
);
})}
</tr>
);
})}
</tbody>
</table>
</CardBody>
</Card>
);
};