Skip to content

Commit 9f25e87

Browse files
feat: update table documentation
1 parent 5559213 commit 9f25e87

3 files changed

Lines changed: 187 additions & 24 deletions

File tree

apps/demo/src/Views/Ui/components/Table/Table.tsx

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export const TableDemo = () => {
116116
return (
117117
<Page
118118
title={t("table.title")}
119+
subtitle={t("table.subtitle")}
119120
className="demo-data-tables-page"
120121
toolbar={
121122
<Button
@@ -126,6 +127,11 @@ export const TableDemo = () => {
126127
/>
127128
}
128129
>
130+
<Section title={t("headers.usage")}>
131+
<p>{t("common.usage", { component: "TDataTable" })}</p>
132+
<CodeBlock exampleCode="import { TDataTable } from '@prefabs.tech/react-ui';" />
133+
</Section>
134+
129135
<Section title={t("table.usage.basic")}>
130136
<TDataTable
131137
columns={columns}
@@ -137,6 +143,19 @@ export const TableDemo = () => {
137143
return `row-${original.id}`;
138144
}}
139145
></TDataTable>
146+
<CodeBlock
147+
// eslint-disable-next-line no-template-curly-in-string
148+
exampleCode='<TDataTable
149+
columns={columns}
150+
data={data}
151+
id="invitations-table"
152+
showResetStateAction
153+
initialSorting={[{ id: "email", desc: false }]}
154+
rowClassName={({ row: { original } }) => {
155+
return `row-${original.id}`;
156+
}}
157+
></TDataTable>'
158+
/>
140159
</Section>
141160

142161
<Section title={t("table.usage.filterable")}>
@@ -167,6 +186,35 @@ export const TableDemo = () => {
167186
data={data}
168187
initialSorting={[{ id: "email", desc: false }]}
169188
></TDataTable>
189+
<CodeBlock
190+
exampleCode='<TDataTable
191+
visibleColumns={["email", "name", "age", "city", "country"]}
192+
columns={[
193+
...columns,
194+
{
195+
accessorKey: "email",
196+
enableColumnFilter: true,
197+
filterPlaceholder: t("table.placeholder.search"),
198+
},
199+
{
200+
accessorKey: "name",
201+
enableColumnFilter: true,
202+
filterPlaceholder: t("table.placeholder.search"),
203+
},
204+
{
205+
accessorKey: "city",
206+
enableColumnFilter: true,
207+
filterPlaceholder: t("table.placeholder.select"),
208+
meta: {
209+
filterVariant: "multiselect",
210+
filterOptions: city,
211+
},
212+
},
213+
]}
214+
data={data}
215+
initialSorting={[{ id: "email", desc: false }]}
216+
></TDataTable>'
217+
/>
170218
</Section>
171219

172220
<Section title={t("table.usage.sortable")}>
@@ -180,6 +228,18 @@ export const TableDemo = () => {
180228
initialFilters={[{ id: "email", value: "s" }]}
181229
initialSorting={[{ id: "email", desc: false }]}
182230
></TDataTable>
231+
<CodeBlock
232+
exampleCode='<TDataTable
233+
visibleColumns={["email", "name", "age", "city", "country"]}
234+
columns={columns.map((column) => ({
235+
...column,
236+
enableSorting: true,
237+
}))}
238+
data={data}
239+
initialFilters={[{ id: "email", value: "s" }]}
240+
initialSorting={[{ id: "email", desc: false }]}
241+
></TDataTable>'
242+
/>
183243
</Section>
184244

185245
<Section title={t("table.usage.rowSelection")}>
@@ -189,6 +249,14 @@ export const TableDemo = () => {
189249
enableRowSelection={true}
190250
initialSorting={[{ id: "email", desc: false }]}
191251
></TDataTable>
252+
<CodeBlock
253+
exampleCode='<TDataTable
254+
columns={[...columns]}
255+
data={data.slice(0, 5)}
256+
enableRowSelection={true}
257+
initialSorting={[{ id: "email", desc: false }]}
258+
></TDataTable>'
259+
/>
192260
</Section>
193261

194262
<Section title={t("table.usage.persistentState")}>
@@ -212,6 +280,23 @@ export const TableDemo = () => {
212280
persistState
213281
showColumnsAction
214282
></TDataTable>
283+
<CodeBlock
284+
exampleCode='<TDataTable
285+
columns={[
286+
...columns,
287+
{
288+
accessorKey: "email",
289+
enableColumnFilter: true,
290+
filterPlaceholder: t("table.placeholder.search"),
291+
},
292+
]}
293+
data={data}
294+
initialSorting={[{ id: "email", desc: false }]}
295+
id="persistent-state"
296+
persistState
297+
showColumnsAction
298+
></TDataTable>'
299+
/>
215300
</Section>
216301

217302
<Section title={t("table.usage.customPagination")}>
@@ -228,6 +313,21 @@ export const TableDemo = () => {
228313
}}
229314
initialSorting={[{ id: "email", desc: false }]}
230315
></TDataTable>
316+
<CodeBlock
317+
exampleCode='<TDataTable
318+
columns={[
319+
...columns,
320+
{
321+
accessorKey: "email",
322+
},
323+
]}
324+
data={data.slice(0, 5)}
325+
renderCustomPagination={(table) => {
326+
return <>Custom pagination</>;
327+
}}
328+
initialSorting={[{ id: "email", desc: false }]}
329+
></TDataTable>'
330+
/>
231331
</Section>
232332

233333
<Section title={t("table.usage.customToolbarActions")}>
@@ -248,6 +348,25 @@ export const TableDemo = () => {
248348
}}
249349
initialSorting={[{ id: "email", desc: false }]}
250350
></TDataTable>
351+
<CodeBlock
352+
exampleCode='<TDataTable
353+
columns={[
354+
...columns,
355+
{
356+
accessorKey: "email",
357+
},
358+
]}
359+
data={data.slice(0, 5)}
360+
renderToolbarItems={(table) => {
361+
return (
362+
<>
363+
<Button label="Add record" />
364+
</>
365+
);
366+
}}
367+
initialSorting={[{ id: "email", desc: false }]}
368+
></TDataTable>'
369+
/>
251370
</Section>
252371

253372
<Section title={t("table.usage.columnTooltip")}>
@@ -291,6 +410,48 @@ export const TableDemo = () => {
291410
enableRowSelection={true}
292411
initialSorting={[{ id: "email", desc: false }]}
293412
></TDataTable>
413+
<CodeBlock
414+
exampleCode='<TDataTable
415+
title={{
416+
text: t("table.usage.columnTooltip"),
417+
align: "left",
418+
}}
419+
columns={[
420+
...columns,
421+
{
422+
accessorKey: "email",
423+
tooltip: true,
424+
tooltipOptions: {
425+
position: "right",
426+
},
427+
},
428+
{
429+
accessorKey: "city",
430+
tooltip: true,
431+
tooltipOptions: {
432+
position: "left",
433+
},
434+
},
435+
{
436+
accessorKey: "name",
437+
tooltip: true,
438+
tooltipOptions: {
439+
position: "top",
440+
},
441+
},
442+
{
443+
accessorKey: "age",
444+
tooltip: true,
445+
tooltipOptions: {
446+
position: "bottom",
447+
},
448+
},
449+
]}
450+
data={data.slice(0, 5)}
451+
enableRowSelection={true}
452+
initialSorting={[{ id: "email", desc: false }]}
453+
></TDataTable>'
454+
/>
294455
</Section>
295456

296457
<Section title={t("table.usage.columnAlignment")}>

apps/demo/src/locales/en/ui.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@
210210
"title": "Files presentation"
211211
},
212212
"table": {
213-
"title": "Table",
214213
"cssCodeBlock": {
215214
"title": "CSS code example",
216215
"messages": {
@@ -219,6 +218,18 @@
219218
"note": "Note:"
220219
}
221220
},
221+
"placeholder": {
222+
"country": "Select country",
223+
"date": "Select date",
224+
"endDate": "End date",
225+
"max": "Max",
226+
"min": "Min",
227+
"startDate": "Start date",
228+
"search": "Search",
229+
"select": "Select city",
230+
"status": "Select status"
231+
},
232+
"subtitle": "The Table component displays data in tabular format.",
222233
"usage": {
223234
"basic": "Basic table",
224235
"builtInActionColumn": "Table demonstrating built in actions column use case",
@@ -246,17 +257,7 @@
246257
"tableBorderHorizontal": "Table with custom style for horizontal border",
247258
"tableBorderVertical": "Table with custom style for vertical border"
248259
},
249-
"placeholder": {
250-
"country": "Select country",
251-
"date": "Select date",
252-
"endDate": "End date",
253-
"max": "Max",
254-
"min": "Min",
255-
"startDate": "Start date",
256-
"search": "Search",
257-
"select": "Select city",
258-
"status": "Select status"
259-
}
260+
"title": "Table"
260261
},
261262
"message": {
262263
"subtitle": "The Message component displays contextual messages with optional icons and a closable action. It supports custom slots, making it flexible for various use cases.",

apps/demo/src/locales/fr/ui.json

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@
210210
"title": "Files presentation (fr)"
211211
},
212212
"table": {
213-
"title": "Table (fr)",
214213
"cssCodeBlock": {
215214
"title": "CSS code example (fr)",
216215
"messages": {
@@ -219,6 +218,18 @@
219218
"note": "Note: (fr)"
220219
}
221220
},
221+
"placeholder": {
222+
"country": "Select country (fr)",
223+
"date": "Select date (fr)",
224+
"endDate": "End date (fr)",
225+
"max": "Max (fr)",
226+
"min": "Min (fr)",
227+
"startDate": "Start date (fr)",
228+
"search": "Search (fr)",
229+
"select": "Select city (fr)",
230+
"status": "Select status (fr)"
231+
},
232+
"subtitle": "The Table component displays data in tabular format. (fr)",
222233
"usage": {
223234
"basic": "Basic table (fr)",
224235
"builtInActionColumn": "Table demonstrating built in actions column use case (fr)",
@@ -246,17 +257,7 @@
246257
"tableBorderHorizontal": "Table with custom style for horizontal border (fr)",
247258
"tableBorderVertical": "Table with custom style for vertical border (fr)"
248259
},
249-
"placeholder": {
250-
"country": "Select country (fr)",
251-
"date": "Select date (fr)",
252-
"endDate": "End date (fr)",
253-
"max": "Max (fr)",
254-
"min": "Min (fr)",
255-
"startDate": "Start date (fr)",
256-
"search": "Search (fr)",
257-
"select": "Select city (fr)",
258-
"status": "Select status (fr)"
259-
}
260+
"title": "Table (fr)"
260261
},
261262
"message": {
262263
"subtitle": "The Message component displays contextual messages with optional icons and a closable action. It supports custom slots, making it flexible for various use cases. (fr)",

0 commit comments

Comments
 (0)