Skip to content

Commit

Permalink
feat(data table manager): add datatable manager as data table dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
Ddouglasz committed May 6, 2024
1 parent e4a02a0 commit 727b673
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -164,24 +164,25 @@ type TDataTableManagerProps<Row extends TRow = TRow> = {

type TDataTableManagerContext = {
columns: TDataColumns;
getColumns?: (columns: TDataColumns) => void;
updateColumns?: (columns: TDataColumns) => void;
};

export const DataTableManagerContext = createContext<TDataTableManagerContext>({
columns: [],
});

export const DataTableManagerProvider = ({
children,
}: {
children: React.ReactNode;
}) => {
const [columns, setColumns] = useState<TDataColumns>([]);

const getColumns = (columnsFromManager: TDataColumns) =>
const updateColumns = (columnsFromManager: TDataColumns) =>
setColumns(columnsFromManager);

return (
<DataTableManagerContext.Provider value={{ columns, getColumns }}>
<DataTableManagerContext.Provider value={{ columns, updateColumns }}>
{children}
</DataTableManagerContext.Provider>
);
Expand All @@ -208,13 +209,13 @@ const DataTableManager = <Row extends TRow = TRow>(
);

const useDataTableManagerContext = () => useContext(DataTableManagerContext);
const { getColumns } = useDataTableManagerContext();
const { updateColumns } = useDataTableManagerContext();

useEffect(() => {
if (!props.children) {
getColumns!(columns);
updateColumns!(columns);
}
}, [columns, getColumns, props.children]);
}, [columns, updateColumns, props.children]);

return props.children ? (
<Spacings.Stack>
Expand Down Expand Up @@ -243,5 +244,7 @@ const DataTableManager = <Row extends TRow = TRow>(
};

DataTableManager.displayName = 'DataTableManager';
DataTableManagerProvider.displayName = 'DataTableManagerProvider';
DataTableManagerContext.displayName = 'DataTableManagerContext';

export default DataTableManager;
6 changes: 5 additions & 1 deletion packages/components/data-table-manager/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
export { default } from './data-table-manager';
export {
default,
DataTableManagerContext,
DataTableManagerProvider,
} from './data-table-manager';
export { UPDATE_ACTIONS } from './constants';
export { default as version } from './version';
export * from './export-types';
Expand Down
1 change: 1 addition & 0 deletions packages/components/data-table/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"@babel/runtime": "^7.20.13",
"@babel/runtime-corejs3": "^7.20.13",
"@commercetools-uikit/accessible-button": "19.2.0",
"@commercetools-uikit/data-table-manager": "workspace:^",
"@commercetools-uikit/design-system": "19.2.0",
"@commercetools-uikit/hooks": "19.2.0",
"@commercetools-uikit/icons": "19.2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/components/data-table/src/data-table.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import HeaderCell from './header-cell';
import DataRow from './data-row';
import useManualColumnResizing from './use-manual-column-resizing-reducer';
import ColumnResizingContext from './column-resizing-context';
import { DataTableManagerContext } from '../../data-table-manager/src/data-table-manager';
import { DataTableManagerContext } from '@commercetools-uikit/data-table-manager/src/data-table-manager';

export interface TRow {
id: string;
Expand Down
3 changes: 2 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2565,7 +2565,7 @@ __metadata:
languageName: unknown
linkType: soft

"@commercetools-uikit/data-table-manager@19.2.0, @commercetools-uikit/data-table-manager@workspace:packages/components/data-table-manager":
"@commercetools-uikit/data-table-manager@19.2.0, @commercetools-uikit/data-table-manager@workspace:^, @commercetools-uikit/data-table-manager@workspace:packages/components/data-table-manager":
version: 0.0.0-use.local
resolution: "@commercetools-uikit/data-table-manager@workspace:packages/components/data-table-manager"
dependencies:
Expand Down Expand Up @@ -2616,6 +2616,7 @@ __metadata:
"@babel/runtime": ^7.20.13
"@babel/runtime-corejs3": ^7.20.13
"@commercetools-uikit/accessible-button": 19.2.0
"@commercetools-uikit/data-table-manager": "workspace:^"
"@commercetools-uikit/design-system": 19.2.0
"@commercetools-uikit/hooks": 19.2.0
"@commercetools-uikit/icons": 19.2.0
Expand Down

0 comments on commit 727b673

Please sign in to comment.