sccoreui
Version:
ui-sccore
119 lines (118 loc) • 5.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FeatureContext = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const helper_1 = require("./helper");
exports.FeatureContext = (0, react_1.createContext)(null);
function MyProvider({ children, value }) {
const { featureDetails, setFeatureDetails, gridData, callGrid, totalRecords, initialFeature, defaultFilters, createView, enableViewCreate, filterModelText, sortModelText, recordDetailModelText, sidePanelText, sortOptions, filterConditions, clearFilters, setGridData, gridApi, updateColumnsForGrid, enableManageColumnsCallback, columnToRender, selectedGroup, setSelectedGroup, initialCheckBoxData, intialColumns, setIntialColumns, rowModelType, quickSearch, enableAdvancedFilter, conditionsToDisplay, gridViewFun, gridViewData, setGridViewData, gridView } = value;
// States for sort
const [columnData] = (0, react_1.useState)(gridData === null || gridData === void 0 ? void 0 : gridData.columnData);
const [sortValue, setSortValue] = (0, react_1.useState)({});
const [sortBy, setSortBy] = (0, react_1.useState)({});
const [isOverlayOpened, setIsOverlayOpened] = (0, react_1.useState)(false);
const [viewName, setViewName] = (0, react_1.useState)("");
// States for filter
const [queries, setQueries] = (0, react_1.useState)(() => {
var _a;
const length = ((_a = featureDetails === null || featureDetails === void 0 ? void 0 : featureDetails.filterQueries) === null || _a === void 0 ? void 0 : _a.length) || 0;
// Returns based on length of filterQueries present
return length === 0 ? [0] : Array.from({ length }, (_, index) => index);
});
const conditionTypes = filterConditions
? filterConditions
: [
{ id: 1, label: "AND" },
{ id: 2, label: "OR" },
];
const [conditionType, setConditionType] = (0, react_1.useState)((defaultFilters === null || defaultFilters === void 0 ? void 0 : defaultFilters.logicalOperator)
? conditionTypes.find((item) => item.id === (defaultFilters === null || defaultFilters === void 0 ? void 0 : defaultFilters.logicalOperator))
: conditionTypes[0]);
const [globalFilters, setGlobalFilters] = (0, react_1.useState)([]);
const [showAsSave, setShowAsSave] = (0, react_1.useState)(false);
// Function call on click to refresh
const removeFeaturesAndRefresh = () => {
const emptyFeatures = initialFeature;
// Remove stored features
setFeatureDetails(emptyFeatures);
// Remove filter
setQueries([0]);
// Remove sort
setSortBy({});
setSortValue({});
callGrid(emptyFeatures);
};
(0, react_1.useEffect)(() => {
if (defaultFilters.length) {
const filtersToAdd = defaultFilters.map((filter) => {
filter.value = (0, helper_1.parseIfNeeded)(filter.value);
return filter;
});
setGlobalFilters(filtersToAdd);
}
}, [defaultFilters]);
// Empty filters and call the grid
(0, react_1.useEffect)(() => {
if (clearFilters) {
let currentFeature = featureDetails;
currentFeature.filterQueries = [];
setSelectedGroup([]);
setFeatureDetails(Object.assign(Object.assign({}, featureDetails), { checkBoxSelection: initialCheckBoxData }));
setGlobalFilters([]);
callGrid(currentFeature);
}
}, [clearFilters]);
return ((0, jsx_runtime_1.jsx)(exports.FeatureContext.Provider, Object.assign({ value: {
sortValue,
setSortValue,
sortBy,
setSortBy,
isOverlayOpened,
setIsOverlayOpened,
queries,
setQueries,
featureDetails,
setFeatureDetails,
columnData,
callGrid,
removeFeaturesAndRefresh,
totalRecords,
conditionTypes,
conditionType,
setConditionType,
globalFilters,
setGlobalFilters,
showAsSave,
setShowAsSave,
setViewName,
viewName,
createView,
enableViewCreate,
filterModelText,
sortModelText,
recordDetailModelText,
sidePanelText,
sortOptions,
setGridData,
gridData,
gridApi,
updateColumnsForGrid,
enableManageColumnsCallback,
columnToRender,
selectedGroup,
setSelectedGroup,
initialCheckBoxData,
intialColumns,
setIntialColumns,
rowModelType,
quickSearch,
enableAdvancedFilter,
conditionsToDisplay,
gridViewFun,
gridViewData,
setGridViewData,
gridView
} }, { children: children })));
}
exports.default = MyProvider;