diff --git a/README.md b/README.md index 9995f0eb..89174466 100644 --- a/README.md +++ b/README.md @@ -19,11 +19,11 @@ This readme file is used mostly to document project dependencies - js-file-download - react-tabs - react-intl - - react-data-table-component - react-select - react-error-boundary - reagraph - react-tooltip + - @tanstack/react-table - @uiw/react-codemirror - @uiw/codemirror-themes - @lezer/lr diff --git a/rsconcept/frontend/package-lock.json b/rsconcept/frontend/package-lock.json index 1aab91c2..c81cc9ea 100644 --- a/rsconcept/frontend/package-lock.json +++ b/rsconcept/frontend/package-lock.json @@ -9,12 +9,12 @@ "version": "1.0.0", "dependencies": { "@lezer/lr": "^1.3.10", + "@tanstack/react-table": "^8.9.7", "@uiw/codemirror-themes": "^4.21.13", "@uiw/react-codemirror": "^4.21.13", "axios": "^1.5.0", "js-file-download": "^0.4.12", "react": "^18.2.0", - "react-data-table-component": "^7.5.4", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-intl": "^6.4.4", @@ -3931,6 +3931,37 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@tanstack/react-table": { + "version": "8.9.7", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.9.7.tgz", + "integrity": "sha512-UKUekM8JNUyWbjT1q3s1GpH5OtBL9mJ4258Il23fsahvkh3ou9TuFVmqI0/UPiFROgHkRlCBDNPUhcsC9YPFgg==", + "dependencies": { + "@tanstack/table-core": "8.9.7" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.9.7", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.9.7.tgz", + "integrity": "sha512-lkhVcGDxa9GSoDFPkplPDvzsiUACPZrxT3U1edPs0DCMKFhBDgZ7d1DPd7cqHH0JoybfbQ/qiTQYOQBg8sinJg==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@tweenjs/tween.js": { "version": "18.6.4", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-18.6.4.tgz", @@ -5477,6 +5508,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9318,18 +9350,6 @@ "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-data-table-component": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-7.5.4.tgz", - "integrity": "sha512-6DGVj3urJZfEEMuP652fSjxdRVKeyb+9d0YounVc+MX8jwoyXQW6KO10eyZqElE9QtVrKrCeJxR7vht9yxyJiw==", - "dependencies": { - "deepmerge": "^4.2.2" - }, - "peerDependencies": { - "react": ">= 16.8.3", - "styled-components": ">= 4" - } - }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", diff --git a/rsconcept/frontend/package.json b/rsconcept/frontend/package.json index 85876372..792c9c80 100644 --- a/rsconcept/frontend/package.json +++ b/rsconcept/frontend/package.json @@ -13,12 +13,12 @@ }, "dependencies": { "@lezer/lr": "^1.3.10", + "@tanstack/react-table": "^8.9.7", "@uiw/codemirror-themes": "^4.21.13", "@uiw/react-codemirror": "^4.21.13", "axios": "^1.5.0", "js-file-download": "^0.4.12", "react": "^18.2.0", - "react-data-table-component": "^7.5.4", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.11", "react-intl": "^6.4.4", diff --git a/rsconcept/frontend/src/components/Common/Button.tsx b/rsconcept/frontend/src/components/Common/Button.tsx index c4458d47..b6ba3023 100644 --- a/rsconcept/frontend/src/components/Common/Button.tsx +++ b/rsconcept/frontend/src/components/Common/Button.tsx @@ -27,7 +27,7 @@ function Button({ disabled={disabled ?? loading} onClick={onClick} title={tooltip} - className={`inline-flex items-center gap-2 align-middle justify-center select-none ${padding} ${borderClass} ${colorClass} ${widthClass} ${cursor}`} + className={`inline-flex items-center gap-2 align-middle justify-center select-none ${padding} ${colorClass} ${widthClass} ${borderClass} ${cursor}`} {...props} > {icon && {icon}} diff --git a/rsconcept/frontend/src/components/Common/Checkbox.tsx b/rsconcept/frontend/src/components/Common/Checkbox.tsx index 5d2f3f7a..d9d435aa 100644 --- a/rsconcept/frontend/src/components/Common/Checkbox.tsx +++ b/rsconcept/frontend/src/components/Common/Checkbox.tsx @@ -3,7 +3,8 @@ import { useMemo } from 'react'; import { CheckboxChecked } from '../Icons'; import Label from './Label'; -export interface CheckboxProps { +export interface CheckboxProps +extends Omit, 'className' | 'children' | 'title' | 'value' | 'onClick' > { id?: string label?: string required?: boolean @@ -15,7 +16,10 @@ export interface CheckboxProps { setValue?: (newValue: boolean) => void } -function Checkbox({ id, required, disabled, tooltip, label, widthClass = 'w-fit', value, setValue }: CheckboxProps) { +function Checkbox({ + id, required, disabled, tooltip, label, + widthClass = 'w-fit', value, setValue, ...props +}: CheckboxProps) { const cursor = useMemo( () => { if (disabled) { @@ -46,8 +50,11 @@ function Checkbox({ id, required, disabled, tooltip, label, widthClass = 'w-fit' title={tooltip} disabled={disabled} onClick={handleClick} + {...props} > -
+
+ { value &&
} +
{ label &&
+
+ +
+ ) */} + + ); +} + +// import { TableOptions, useReactTable } from '@tanstack/react-table' + +// import { useConceptTheme } from '../../context/ThemeContext'; +// import { dataTableDarkT, dataTableLightT } from '../../utils/color'; + +// export interface SelectionInfo { +// allSelected: boolean +// selectedCount: number +// selectedRows: T[] +// } + +// interface DataTableProps +// extends TableOptions{} + +// function DataTable({ ...props }: DataTableProps) { +// const { darkMode } = useConceptTheme(); +// const table = useReactTable(props); + +// return ( +// +// theme={ theme ?? (darkMode ? 'customDark' : 'customLight')} +// paginationComponentOptions={{ +// rowsPerPageText: 'строк на страницу' +// }} +// {...props} +// /> +// ); +// } + +// export default DataTable; diff --git a/rsconcept/frontend/src/components/Common/TextArea.tsx b/rsconcept/frontend/src/components/Common/TextArea.tsx index a120447e..ceb1ab01 100644 --- a/rsconcept/frontend/src/components/Common/TextArea.tsx +++ b/rsconcept/frontend/src/components/Common/TextArea.tsx @@ -21,7 +21,7 @@ function TextArea({