0.0.9 • Published 3 months ago

@tyulan/custom-react-table v0.0.9

Weekly downloads
-
License
-
Repository
-
Last release
3 months ago

Custom React Table

Custom React Table est une bibliothèque React personnalisée pour créer des tables interactives. Elle est conçue pour être facile à utiliser tout en étant extrêmement personnalisable pour répondre à une variété de besoins.

Cette bibliothèque est construite avec TypeScript et utilise Vite pour une expérience de développement fluide. Elle comprend également une configuration ESLint pour aider à maintenir la qualité du code.

Prérequis

Avant d'utiliser Custom React Table, assurez-vous d'avoir les éléments suivants installés :

  • Node.js : version 12 ou supérieure
  • npm : version 6 ou supérieure

Assurez-vous également d'avoir une connaissance de base de React et de TypeScript pour une meilleure compréhension de l'utilisation de cette bibliothèque.

Installation

Pour installer Custom React Table, vous pouvez exécuter l'une des commandes suivantes dans le répertoire de votre projet :

  • Avec yarn :

    yarn add @tyulan/custom-react-table
  • Avec npm :

    npm install @tyulan/custom-react-table
  • Avec pnpm :

    pnpm install @tyulan/custom-react-table

Assurez-vous d'avoir Node.js et le gestionnaire de paquets correspondant (yarn, npm ou pnpm) installés sur votre machine avant d'exécuter ces commandes.

Utilisation

Pour utiliser Custom React Table dans votre projet, suivez les étapes suivantes :

  1. Importez le composant Table depuis la bibliothèque :

    import { Table } from "@tyulan/custom-react-table";
  2. Utilisez le composant Table dans votre code JSX pour afficher une table personnalisée :

    function App() {
      const data = [
        {
          id: "1",
          firstName: "James",
          lastName: "Carter",
          // ...
        },
        // ...
      ];
    
      const columns = [
        {
          name: "First name",
          key: "firstName",
          selector: (row) => row.firstName,
        },
        {
          name: "Last name",
          key: "lastName",
          selector: (row) => row.lastName,
        },
        // ...
      ];
    
      return (
        <div>
          <h1>Custom React Table Example</h1>
          <Table
            data={data}
            columns={columns}
            listOfNumbersOfEntries={[10, 20, 30, 50]}
          />
        </div>
      );
    }

    Dans cet exemple, la prop listOfNumbersOfEntries est utilisée pour personnaliser les options dans le menu déroulant "nombre d'entrées à afficher". Les options seront 10, 20, 30 et 50. Si vous ne fournissez pas cette prop, les options par défaut seront utilisées (généralement 10, 25, 50, 100).

  3. Personnalisez le style de votre table en passant des props supplémentaires au composant Table. Par exemple, vous pouvez passer une prop className pour appliquer une classe CSS à la table :

    return (
      <div>
        <h1>Custom React Table Example</h1>
        <Table data={data} columns={columns} className="my-custom-table" />
      </div>
    );
  4. Contrôlez l'affichage de certains éléments de la table. Vous pouvez passer des props supplémentaires au composant Table pour choisir d'afficher ou non certains éléments. Par exemple :

    return (
      <div>
        <h1>Custom React Table Example</h1>
        <Table
          data={data}
          columns={columns}
          className="my-custom-table"
          displaySearchBar={true}
          displayEntries={false}
          displayFooterRow={true}
          displayInfoEntries={false}
        />
      </div>
    );

    Dans cet exemple, les props showHeader, showFooter, showPagination, displaySearchBar, displayEntries, displayFooterRow et displayInfoEntries sont passées au composant Table. Ces props contrôlent l'affichage de l'en-tête, du pied de page, de la pagination, de la barre de recherche, des entrées, de la ligne de pied de page et des informations d'entrée respectivement.

Les données

La structure des données (data) et des colonnes (columns) est essentielle lors de l'utilisation de la bibliothèque Custom React Table.

Les données

La structure des données (data) et des colonnes (columns) est essentielle lors de l'utilisation de la bibliothèque Custom React Table. Voici un exemple de comment vous pourriez structurer vos données et vos colonnes :

const data = [
  { id: 1, firstName: "John", lastName: "Doe" },
  { id: 2, firstName: "Jane", lastName: "Doe" },
  // ...
];

const columns = [
  { name: "First name", key: "firstName", selector: (row) => row.firstName },
  { name: "Last name", key: "lastName", selector: (row) => row.lastName },
  // ...
];

// ...

return (
  <Table
    data={data}
    columns={columns}
    // ...
  />
);

Dans cet exemple, chaque objet dans le tableau data représente une ligne de la table et contient les différentes propriétés correspondant aux colonnes de la table.

Chaque objet dans le tableau columns représente une colonne et contient des propriétés telles que le nom de la colonne (name), la clé (key) utilisée pour identifier la colonne, et une fonction de sélection (selector) qui extrait la valeur de la colonne à partir de l'objet de données correspondant.

La structure correcte des données et des colonnes est importante car elle permet à la bibliothèque Custom React Table de fonctionner correctement en affichant les données dans les colonnes appropriées de la table. Assurez-vous de fournir les données et les colonnes dans le bon format pour obtenir les résultats souhaités lors de l'utilisation de cette bibliothèque.

Personnalisation du style

Vous pouvez personnaliser le style de la table en passant des props de className au composant Table. Voici une liste des props de className que vous pouvez utiliser :

  • className: Applique une classe CSS à l'élément de table principal.
  • classNameTable: Applique une classe CSS à l'élément <table>.
  • classNameHeader: Applique une classe CSS à l'élément d'en-tête de la table.
  • classNameRow: Applique une classe CSS à chaque ligne de la table.
  • classNameInput: Applique une classe CSS à l'élément d'input de la table (par exemple, pour la recherche ou le filtrage).
  • classNameThHeader: Applique une classe CSS à chaque élément <th> dans l'en-tête de la table.
  • classNameThFooter: Applique une classe CSS à chaque élément <th> dans le pied de page de la table.
  • classNameTdStriped: Applique une classe CSS à chaque élément <td> dans les lignes à rayures de la table.
  • classNameTd: Applique une classe CSS à chaque élément <td> de la table.
  • classNameBtnNumber: Applique une classe CSS à chaque bouton de numéro de page dans la pagination de la table.
  • classNameBtnNextAndPrevious: Applique une classe CSS aux boutons suivant et précédent dans la pagination de la table.

Par exemple, pour appliquer une classe CSS au boutons numéro de la pagination, vous pouvez faire comme suit :

return (
  <Table
    data={data}
    columns={columns}
    classNameBtnNumber="my-custom-button"
    // ...
  />
);

API Reference

Prop NameTypeRequiredDescription
columnsTableColumn[]YesThe columns of the table.
dataTableData[]YesThe data for the table.
titlestringNoThe title of the table.
classNamestringNoThe CSS class for the table container.
classNameTablestringNoThe CSS class for the table itself.
classNameHeaderstringNoThe CSS class for the table header.
classNameRowstringNoThe CSS class for the table rows.
classNameInputstringNoThe CSS class for the search input.
classNameThHeaderstringNoThe CSS class for the table header cells.
classNameThFooterstringNoThe CSS class for the table footer cells.
classNameTdStripedstringNoThe CSS class for the striped table cells.
classNameTdstringNoThe CSS class for the table cells.
classNameBtnNumberstringNoThe CSS class for the pagination number buttons.
classNameBtnNextAndPreviousstringNoThe CSS class for the next and previous buttons.
customMessageNoDatastringNoThe custom message to display when there is no data.
displaySearchBarbooleanNoControls whether to display the search bar.
displayEntriesbooleanNoControls whether to display the entries of the table.
displayFooterRowbooleanNoControls whether to display the footer row of the table.
displayInfoEntriesbooleanNoControls whether to display the info entries of the table.
listOfNumbersOfEntriesnumber[]NoThe list of numbers for the entries dropdown.
numberOfEntriesnumberNoThe number of entries to display on a page.
0.0.9

3 months ago

0.0.8

4 months ago

0.0.7

4 months ago

0.0.6

4 months ago

0.0.5

4 months ago

0.0.4

4 months ago

0.0.3

4 months ago

0.0.2

4 months ago

0.0.0

6 months ago