HEX
Server: LiteSpeed
System: Linux premium263.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: eastcjee (525)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //home/eastcjee/www/wp-content/plugins/presto-player/src/admin/analytics/components/DataTable.js
const { __ } = wp.i18n;
const { useEffect, useState } = wp.element;
const { Card, CardBody } = wp.components;
import Loading from "@/admin/settings/components/Loading";
import Pagination from "@/admin/ui/Pagination";
import Table from "@/admin/ui/Table";

export default ({
  perPage = 10,
  title,
  page,
  setPage,
  loading,
  total,
  totalPages,
  columns,
  data,
  onSelect,
}) => {
  if (loading) {
    return (
      <Card>
        <Loading />
      </Card>
    );
  }

  if (!data?.length) {
    return (
      <Card size="large" className="presto-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 (
    <div className="datatable">
      <Table
        data={data}
        columns={columns}
        perPage={perPage}
        onRowClick={onSelect}
        title={title}
      />

      {!!total && (
        <Pagination
          page={page}
          setPage={setPage}
          perPage={perPage}
          total={total}
          totalPages={totalPages}
        />
      )}
    </div>
  );
};