@react-pakistan/util-functions 1.25.59 → 1.25.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -22,6 +22,8 @@ export interface ComponentConfig {
|
|
|
22
22
|
formDrawerValue?: string;
|
|
23
23
|
moduleName: string;
|
|
24
24
|
moreActionsContent: React.ReactNode;
|
|
25
|
+
numberOfFilters?: number;
|
|
26
|
+
onClearFilters: () => void;
|
|
25
27
|
saveLabel?: string;
|
|
26
28
|
searchPlaceholder: string;
|
|
27
29
|
size?: 'small' | 'medium' | 'large' | 'full';
|
|
@@ -30,7 +32,6 @@ export interface ComponentConfig {
|
|
|
30
32
|
tableTitle: string;
|
|
31
33
|
viewContent: React.ReactNode;
|
|
32
34
|
viewDrawerValue?: string;
|
|
33
|
-
numberOfFilters?: number;
|
|
34
35
|
}
|
|
35
36
|
export interface TableBodyCol {
|
|
36
37
|
key?: string | string[];
|
|
@@ -40,10 +41,10 @@ export interface TableBodyCol {
|
|
|
40
41
|
interface GenericTableProps {
|
|
41
42
|
config: ComponentConfig;
|
|
42
43
|
context: any;
|
|
43
|
-
tableBodyCols: TableBodyCol[];
|
|
44
44
|
headerActions?: HeaderAction[];
|
|
45
|
-
rowActions?: any[];
|
|
46
45
|
iconMap?: Record<string, any>;
|
|
46
|
+
rowActions?: any[];
|
|
47
|
+
tableBodyCols: TableBodyCol[];
|
|
47
48
|
}
|
|
48
49
|
export declare const GenericTable: FC<GenericTableProps>;
|
|
49
50
|
interface GenericDrawerProps {
|
|
@@ -59,7 +59,7 @@ exports.DRAWER_TYPES = {
|
|
|
59
59
|
MORE_ACTIONS_DRAWER: 'MORE_ACTIONS_DRAWER',
|
|
60
60
|
};
|
|
61
61
|
var GenericTable = function (_a) {
|
|
62
|
-
var config = _a.config, context = _a.context,
|
|
62
|
+
var config = _a.config, context = _a.context, headerActions = _a.headerActions, rowActions = _a.rowActions, tableBodyCols = _a.tableBodyCols;
|
|
63
63
|
var isRTL = (0, use_rtl_1.useRTL)();
|
|
64
64
|
var tableHeadItems = (0, react_1.useMemo)(function () {
|
|
65
65
|
return config.tableColumns.map(function (col) { return ({
|
|
@@ -70,10 +70,13 @@ var GenericTable = function (_a) {
|
|
|
70
70
|
var totalPages = (0, general_1.calculatePages)(context.state.count, context.state.pageLimit);
|
|
71
71
|
// Build header actions from context or props
|
|
72
72
|
var allHeaderActions = (0, react_1.useMemo)(function () { return headerActions || context.headerActions || []; }, [headerActions, context.headerActions]);
|
|
73
|
+
var numberOfFilters = (0, react_1.useMemo)(function () {
|
|
74
|
+
return Object.keys(context.state).filter(function (k) { return k.startsWith('filter') && !!context.state[k]; }).length;
|
|
75
|
+
}, [context.state]);
|
|
73
76
|
return (react_1.default.createElement("div", { className: "space-y-4 ".concat(isRTL ? 'rtl' : 'ltr'), dir: isRTL ? 'rtl' : 'ltr' },
|
|
74
77
|
react_1.default.createElement(enhanced_table_1.EnhancedTable, { currentPage: Number(context.state.currentPage), handleNextOnClick: context.handlePageChange, handleOnSelect: context.handlePageLimitChange, handlePreviousOnClick: function () {
|
|
75
78
|
return context.handlePageChange(context.state.currentPage - 1);
|
|
76
|
-
}, handleSearchInput: context.handleSearch, headerActions: allHeaderActions, isNextDisabled: (0, general_1.isNextButtonDisabled)(context.state.currentPage, totalPages), isPreviousDisabled: (0, general_1.isPreviousButtonDisabled)(context.state.currentPage), listOptions: (0, general_1.getAvailablePageLimits)(context.state.count), loading: context.listLoading, nodeSelectKey: "pageLimit", numberOfFilters: config.
|
|
79
|
+
}, handleSearchInput: context.handleSearch, headerActions: allHeaderActions, isNextDisabled: (0, general_1.isNextButtonDisabled)(context.state.currentPage, totalPages), isPreviousDisabled: (0, general_1.isPreviousButtonDisabled)(context.state.currentPage), listOptions: (0, general_1.getAvailablePageLimits)(context.state.count), loading: context.listLoading, nodeSelectKey: "pageLimit", numberOfFilters: numberOfFilters, onClearFilters: config.onClearFilters, pageLimit: context.state.pageLimit, rowActions: rowActions || context.rowActions || [], searchDisabled: false, searchEnabled: true, searchId: "".concat(config.moduleName.toLowerCase(), "-search"), searchPlaceholder: config.searchPlaceholder, searchValue: context.state.searchQuery, tableBodyCols: tableBodyCols, tableBodyRows: context.state.items, tableDescription: config.tableDescription, tableHeading: config.tableTitle, tableHeadItems: tableHeadItems, totalPages: Number(totalPages) })));
|
|
77
80
|
};
|
|
78
81
|
exports.GenericTable = GenericTable;
|
|
79
82
|
var GenericDrawer = function (_a) {
|
|
@@ -108,7 +111,7 @@ var createGenericModulePage = function (config) {
|
|
|
108
111
|
var context = _a.context, tableBodyCols = _a.tableBodyCols, headerActions = _a.headerActions, rowActions = _a.rowActions, iconMap = _a.iconMap;
|
|
109
112
|
return (react_1.default.createElement("div", { className: "space-y-6" },
|
|
110
113
|
react_1.default.createElement(exports.GenericTable, { config: config, context: context, tableBodyCols: tableBodyCols, headerActions: headerActions, rowActions: rowActions, iconMap: iconMap }),
|
|
111
|
-
react_1.default.createElement(exports.GenericDrawer, { config: config, context: context,
|
|
114
|
+
react_1.default.createElement(exports.GenericDrawer, { config: config, context: context, filterContent: config.filterContent, formContent: config.formContent, moreActionsContent: config.moreActionsContent, viewContent: config.viewContent }),
|
|
112
115
|
react_1.default.createElement(sonner_1.Toaster, null)));
|
|
113
116
|
};
|
|
114
117
|
return GenericModulePage;
|