- {tabData?.map((i,num) => (
-
- ))}
+ if(showTab){
+ return
+ {showTab &&
+
+ {tabData?.map((i,num) => (
+
+ ))}
+
+
+ }
+
+ {header && renderHeader()}
+
+ {showToast &&
+ }
+
+
+ }
+ return (
+
0 ? navConfig : []} showNav={navConfig?.length > 0 ? true : false} activeLink={activeLink} setActiveLink={setActiveLink} fromSearchComp={true} horizontalLine={uiConfig?.horizontalLine}>
{header && renderHeader()}
- {showToast &&
}
-
+
)
}
diff --git a/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/SubmitBar.js b/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/SubmitBar.js
index bef3395df49..6bc5cb3c699 100644
--- a/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/SubmitBar.js
+++ b/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/SubmitBar.js
@@ -12,7 +12,7 @@ const SubmitBar = forwardRef((props, ref) => {
onClick={props.onSubmit}
{... props.form ? {form: props.form} : {}}
>
-
+
);
});
diff --git a/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/Table.js b/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/Table.js
index 280abc942ba..c183efe44ac 100644
--- a/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/Table.js
+++ b/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/Table.js
@@ -278,4 +278,4 @@ const Table = ({
);
};
-export default Table;
+export default Table;
\ No newline at end of file
diff --git a/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/UploadFile.js b/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/UploadFile.js
index 9267e90982f..a251c89e3eb 100644
--- a/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/UploadFile.js
+++ b/micro-ui/web/micro-ui-internals/packages/react-components/src/atoms/UploadFile.js
@@ -80,30 +80,30 @@ const getCitizenStyles = (value) => {
},
tagContainerStyles: {
margin: "0px",
- padding: "0px"
+ padding: "0px",
+ width: "46%"
},
tagStyles: {
height: "auto",
- padding: "5px",
+ padding: "8px",
margin: 0,
width: "100%",
margin: "5px"
},
textStyles: {
- wordBreak: "break-all",
+ wordBreak: "break-word",
height: "auto",
lineHeight: "16px",
overflow: "hidden",
// minHeight: "35px",
- maxHeight: "34px",
- maxWidth: "100%"
+ maxHeight: "34px"
},
inputStyles: {
- width: "42%",
+ width: "43%",
minHeight: "42px",
maxHeight: "42px",
- top: "12px",
- left: "12px"
+ top: "5px",
+ left: "5px"
},
buttonStyles: {
height: "auto",
@@ -134,6 +134,9 @@ const getCitizenStyles = (value) => {
};
const UploadFile = (props) => {
+ if(props.enableButton){
+ props.disabled = !props.enableButton
+ }
const { t } = useTranslation();
const inpRef = useRef();
const [hasFile, setHasFile] = useState(false);
@@ -150,7 +153,6 @@ const UploadFile = (props) => {
// for common aligmnent issues added common styles
extraStyles = getCitizenStyles("OBPS");
-
// if (window.location.href.includes("/obps") || window.location.href.includes("/noc")) {
// extraStyles = getCitizenStyles("OBPS");
@@ -195,12 +197,12 @@ const UploadFile = (props) => {
return (
{showHint && {t(props?.hintText)}
}
-
+
@@ -210,11 +212,25 @@ const UploadFile = (props) => {
props?.removeTargetedFile(fileDetailsData, e)} />
})}
- {props?.uploadedFiles.length === 0 &&
{props.message}
}
+ {props?.uploadedFiles.length === 0 &&
{props?.message}
}
+ {!hasFile || props.error ? (
+
{props.message}
+ ) : (
+
+
+
+ {(typeof inpRef.current.files[0]?.name !== "undefined") && !(props?.file) ? inpRef.current.files[0]?.name : props.file?.name}
+
+ handleDelete()} style={extraStyles ? extraStyles?.closeIconStyles : null}>
+
+
+
+
+ )}
{
disabled={props.disabled}
onChange={(e) => props.onUpload(e)}
onClick ={ event => {
- if (!props?.enableButton) {
+ if (props?.disabled) {
event.preventDefault()
- } else {
- const { target = {} } = event || {};
- target.value = "";
+ return
}
+ const { target = {} } = event || {};
+ target.value = "";
}}
/>
{props.iserror && {props.iserror}
}
- {props?.showHintBelow && {t(props?.hintText)}
}
+ {props?.showHintBelow && {t(props?.hintText)}
}
);
};
diff --git a/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/FormComposerV2.js b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/FormComposerV2.js
index 4823fed3e57..7033adc6ed3 100644
--- a/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/FormComposerV2.js
+++ b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/FormComposerV2.js
@@ -33,7 +33,6 @@ import ApiDropdown from "../molecules/ApiDropdown";
import Header from "../atoms/Header";
import Button from "../atoms/Button"
-
import { yupResolver } from '@hookform/resolvers/yup';
// import { validateResolver } from "./validateResolver";
import { buildYupConfig } from "./formUtils";
@@ -881,7 +880,7 @@ export const FormComposer = (props) => {
{props.secondaryLabel && props.showSecondaryLabel && (
-
+
)}
{props.onSkip && props.showSkip &&
}
diff --git a/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/InboxSearchComposerReducer.js b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/InboxSearchComposerReducer.js
index 972f845492c..f0efcd5eac7 100644
--- a/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/InboxSearchComposerReducer.js
+++ b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/InboxSearchComposerReducer.js
@@ -1,46 +1,103 @@
+import _ from 'lodash';
+
+function removeObjectFromArray(array, key, value) {
+ // Find the index of the object with the specified key and value
+ const indexToRemove = array.findIndex((obj) => obj[key] === value);
+
+ // If the object is found, remove it from the array
+ if (indexToRemove !== -1) {
+ array.splice(indexToRemove, 1);
+ }
+
+ // Return the modified array
+ return array;
+}
+
export const initialInboxState = (config) => {
- if (config?.sections?.searchResult?.uiConfig?.customDefaultPagination) {
- return {
- searchForm: {},
- filterForm: {},
- tableForm: {
- ...config?.sections?.searchResult?.uiConfig?.customDefaultPagination,
- },
- };
- }
+
+ if(config?.sections?.searchResult?.uiConfig?.customDefaultPagination) {
return {
searchForm: {},
filterForm: {},
tableForm: {
- limit: 10,
- offset: 0,
+ ...config?.sections?.searchResult?.uiConfig?.customDefaultPagination,
},
};
- };
+ }
+
+ return {
+ searchForm: {},
+ filterForm: {},
+ tableForm: {
+ limit: 10,
+ offset: 0,
+ },
+ }
+};
const reducer = (state, action) => {
- switch (action.type) {
- case "searchForm":
- const {state:updatedSearchStateSearchForm} = action
- return {...state, searchForm: {...state.searchForm,...updatedSearchStateSearchForm}};
- case "filterForm":
- const { state: updatedSearchStateFilterForm } = action
- return { ...state, filterForm: { ...state.filterForm, ...updatedSearchStateFilterForm } };
- case "tableForm":
- const updatedTableState = action.state
- return { ...state, tableForm: {...state.tableForm,...updatedTableState} };
- case "clearSearchForm":
- return {...state,searchForm:action.state}
- case "clearTableForm":
- return {...state,tableForm:{
- limit: 10,
- offset: 0,
- }}
- case "clearFilterForm":
- return {...state,filterForm:action.state}
+ switch (action.type) {
+ case 'searchForm':
+ const { state: updatedSearchStateSearchForm } = action;
+ return {
+ ...state,
+ searchForm: { ...state.searchForm, ...updatedSearchStateSearchForm },
+ };
+ case 'filterForm':
+ const { state: updatedSearchStateFilterForm } = action;
+ return {
+ ...state,
+ filterForm: { ...state.filterForm, ...updatedSearchStateFilterForm },
+ };
+ case 'tableForm':
+ const updatedTableState = action.state;
+ return {
+ ...state,
+ tableForm: { ...state.tableForm, ...updatedTableState },
+ };
+ case 'clearSearchForm':
+ return { ...state, searchForm: action.state };
+ case 'clearFilterForm':
+ return { ...state, filterForm: action.state };
+ case 'jsonPath':
+ const {
+ tag: { removableTagConf },
+ } = action;
+ const stateObj = _.cloneDeep(state);
+ switch (removableTagConf?.type) {
+ case 'multi':
+ _.set(
+ stateObj,
+ removableTagConf?.sessionJsonPath,
+ removeObjectFromArray(
+ _.get(state, removableTagConf?.sessionJsonPath),
+ removableTagConf?.deleteRef,
+ removableTagConf?.value?.[removableTagConf?.deleteRef]
+ )
+ );
+ return stateObj;
+
+ case 'single':
+ _.set(stateObj, removableTagConf?.sessionJsonPath, '');
+ return stateObj;
+
+ case 'dateRange':
+ _.set(stateObj, removableTagConf?.sessionJsonPath, '');
+ return stateObj;
+ case 'workflowStatusFilter':
+ //if we are here then we have dynamic ids to delete from state
+ _.set(stateObj,`${removableTagConf?.sessionJsonPath}.${removableTagConf?.dynamicId}`, false)
+ return stateObj
default:
- return state;
- }
-}
+ break;
+ }
+ case 'obj':
+ const {updatedState} = action
+ return updatedState
+
+ default:
+ return state;
+ }
+};
export default reducer;
diff --git a/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/InboxSearchComposerV2.js b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/InboxSearchComposerV2.js
new file mode 100644
index 00000000000..7b8bd3ef80a
--- /dev/null
+++ b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/InboxSearchComposerV2.js
@@ -0,0 +1,372 @@
+import React, { useEffect, useReducer, useState } from "react";
+import ResultsTable from "./ResultsTable"
+import reducer, { initialInboxState } from "./InboxSearchComposerReducer";
+import InboxSearchLinks from "../atoms/InboxSearchLinks";
+import { InboxContext } from "./InboxSearchComposerContext";
+import SearchComponent from "../atoms/SearchComponent";
+import PopUp from "../atoms/PopUp";
+import SearchAction from "../molecules/SearchAction";
+import FilterAction from "../molecules/FilterAction";
+import MobileSearchComponent from "./MobileView/MobileSearchComponent";
+import MediaQuery from 'react-responsive';
+import _ from "lodash";
+import { useTranslation } from "react-i18next";
+import MobileSearchResultsv1 from "./MobileView/MobileSearchResultsv1";
+import RemovableTags from "./RemovableTags";
+
+function isFalsyOrEmpty(input) {
+ if (input === false) {
+ return true;
+ }
+
+ if(!input) {
+ return true;
+ }
+
+ if (Array.isArray(input) && input.length === 0) {
+ return true;
+ }
+
+ if (typeof input === 'object' && Object.keys(input).length === 0) {
+ return true;
+ }
+
+ return false;
+ }
+
+const InboxSearchComposerV2 = ({configs,scrollPosition,browserSession}) => {
+
+
+ const [session,setSession,clearSession] = browserSession || []
+
+ const {t} = useTranslation()
+ const presets = Digit.Hooks.useQueryParams();
+ // if(Object.keys(presets).length > 0) configs = Digit.Utils.configUpdater(configs)
+
+ const [enable, setEnable] = useState(false);
+ const [state, dispatch] = useReducer(reducer, initialInboxState(configs));
+
+ //for mobile view
+ const [type, setType] = useState("");
+ const [popup, setPopup] = useState(false);
+
+ const apiDetails = configs?.apiDetails
+
+ const [activeLink,setActiveLink] = useState(configs?.sections?.search?.uiConfig?.configNavItems?.filter(row=>row.activeByDefault)?.[0])
+
+ //for mobile view
+ useEffect(() => {
+ if (type) setPopup(true);
+ }, [type]);
+
+ useEffect(() => {
+ //here if jsonpaths for search & table are same then searchform gets overridden
+
+ if (Object.keys(state.searchForm)?.length >= 0) {
+ const result = { ..._.get(apiDetails, apiDetails?.searchFormJsonPath, {}), ...state.searchForm }
+ Object.keys(result).forEach(key => {
+ if (!result[key]) delete result[key]
+ });
+ _.set(apiDetails, apiDetails?.searchFormJsonPath, result)
+ }
+ if (Object.keys(state.filterForm)?.length >= 0) {
+ const result = { ..._.get(apiDetails, apiDetails?.filterFormJsonPath, {}), ...state.filterForm }
+ Object.keys(result).forEach(key => {
+ if (!result[key] || result[key]?.length===0) delete result[key]
+ });
+ _.set(apiDetails, apiDetails?.filterFormJsonPath, result)
+ }
+
+ if(Object.keys(state.tableForm)?.length >= 0) {
+ _.set(apiDetails, apiDetails?.tableFormJsonPath, { ..._.get(apiDetails, apiDetails?.tableFormJsonPath, {}),...state.tableForm })
+ }
+ const searchFormParamCount = Object.keys(state.searchForm).reduce((count,key)=>isFalsyOrEmpty(state.searchForm[key])?count:count+1,0)
+ const filterFormParamCount = Object.keys(state.filterForm).reduce((count, key) =>isFalsyOrEmpty(state.filterForm[key]) ? count : count + 1, 0)
+
+ if (Object.keys(state.tableForm)?.length > 0 && (searchFormParamCount >= ( activeLink ?activeLink?.minParametersForSearchForm : apiDetails?.minParametersForSearchForm) || filterFormParamCount >= apiDetails?.minParametersForFilterForm)){
+ setEnable(true)
+ }
+
+ if(configs?.type === 'inbox' || configs?.type === 'download') setEnable(true)
+
+ },[state])
+
+ //adding this effect in case of screen refresh
+ useEffect(() => {
+ if(_.isEqual(state, initialInboxState(configs))){
+ dispatch({
+ type:"obj",
+ updatedState:Object?.keys(session)?.length > 0 ? session : initialInboxState(configs)
+ })
+ }
+ },[])
+
+ //adding another effect to sync session with state, the component invoking InboxSearchComposer will be passing session as prop
+ useEffect(() => {
+ // if(_.isEqual(state, initialInboxState)){
+ // return
+ // }
+ // if(_.isEqual(state, session)){
+ // return
+ // }
+ setSession(() => state)
+ // if(!_.isEqual(state, session)){
+ // // setSession(()=>{
+ // // return {
+ // // ...state
+ // // }
+ // // })
+ // setSession(state)
+ // }
+
+ },[state])
+
+
+
+ let requestCriteria = {
+ url:configs?.apiDetails?.serviceName,
+ params:configs?.apiDetails?.requestParam,
+ body:configs?.apiDetails?.requestBody,
+ config: {
+ enabled: enable,
+ },
+ state
+ };
+
+ const updatedReqCriteria = Digit?.Customizations?.[apiDetails?.masterName]?.[apiDetails?.moduleName]?.preProcess ? Digit?.Customizations?.[apiDetails?.masterName]?.[apiDetails?.moduleName]?.preProcess(requestCriteria,configs?.sections?.search?.uiConfig?.defaultValues,activeLink?.name) : requestCriteria
+
+
+ const { isLoading, data, revalidate,isFetching } = Digit.Hooks.useCustomAPIHook(updatedReqCriteria);
+
+
+ useEffect(() => {
+ return () => {
+ revalidate();
+ setEnable(false);
+ // if(!location.pathname.includes("tqm") && Digit.Utils.tqm.isUlbAdminLoggedIn()){
+ // sessionStorage.removeItem("Digit.TQM_INBOX_SESSION")
+ // }
+ };
+ });
+
+ //for mobile view
+ const handlePopupClose = () => {
+ setPopup(false);
+ setType("");
+ };
+
+ let fieldsForRemovableTags = []
+ if((configs?.type === 'inbox' || configs?.type === 'search') && (configs?.showAsRemovableTagsInMobile)){
+ if(configs?.sections?.search?.uiConfig?.fields) {
+ fieldsForRemovableTags = configs?.sections?.search?.uiConfig?.fields
+ }
+ if(configs?.sections?.filter?.uiConfig?.fields) {
+ fieldsForRemovableTags = [...fieldsForRemovableTags,...configs?.sections?.filter?.uiConfig?.fields]
+ }
+ }
+
+ useEffect(() => {
+ // Implement to scroll if scroll persistent is enabled
+ window.scrollTo(0, scrollPosition)
+ })
+
+ return (
+
+ {/* */}
+
+
+ {
+ configs?.sections?.links?.show &&
+
+
+
+
+
+ }
+ {
+ configs?.type === 'search' && configs?.sections?.search?.show &&
+
+
+
+
+
+ }
+ {
+ configs?.type === 'search' && configs?.sections?.filter?.show &&
+
+
+
+
+
+
+ }
+ {
+ configs?.type === 'inbox' && configs?.sections?.search?.show &&
+
+
+
+
+
+ }
+ {
+ configs?.type === 'inbox' && configs?.sections?.filter?.show &&
+
+
+
+
+
+ }
+ { (configs?.type === 'inbox' || configs?.type === 'search') &&
+
+
+ {
+ configs?.sections?.search?.show && (
+ {
+ setType("SEARCH");
+ setPopup(true);
+ }}
+ />
+ )}
+ {configs?.sections?.filter?.show && (
+ {
+ setType("FILTER");
+ setPopup(true);
+ }}
+ />
+ )}
+
+
+ }
+ {
+ (configs?.type === 'inbox' || configs?.type === 'search') && (configs?.showAsRemovableTagsInMobile) &&
+
+
+
+ }
+ {
+ configs?.sections?.searchResult?.show &&
+
0 ? (!(isLoading || isFetching) ?{ overflowX: "auto" }: {}) : { }} >
+
+ {/* configs?.sections?.searchResult?.show &&
+ 0 ? (!(isLoading || isFetching) ?{ overflowX: "scroll", borderRadius : "4px" }: {}) : { }} > */}
+
+
+
+
+ {/* */}
+
+
+
+ }
+ {popup && (
+
+ {type === "FILTER" && (
+
+
+
+ )}
+ {/* {type === "SORT" && (
+
+ {}
+
+ )} */}
+ {type === "SEARCH" && (
+
+
+
+ )}
+
+ )}
+
+
+ {/* One can use this Parent to add additional sub parents to render more sections */}
+
+
+
+ )
+}
+
+export default InboxSearchComposerV2;
diff --git a/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/MobileView/MobileSearchComponent.js b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/MobileView/MobileSearchComponent.js
index c32fae536be..12c1453ad80 100644
--- a/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/MobileView/MobileSearchComponent.js
+++ b/micro-ui/web/micro-ui-internals/packages/react-components/src/hoc/MobileView/MobileSearchComponent.js
@@ -2,32 +2,40 @@ import React, { useContext, useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { InboxContext } from "../InboxSearchComposerContext";
-import { FilterIcon, SearchIcon, CloseSvg, RefreshIcon } from "../../atoms/svgindex";
+import { FilterIcon, SearchIcon, CloseSvg, RefreshIcon, DownloadImgIcon,SortSvg } from "../../atoms/svgindex";
import ActionBar from "../../atoms/ActionBar";
import SubmitBar from "../../atoms/SubmitBar";
import LinkLabel from "../../atoms/LinkLabel";
-import ApplyFilterBar from "../../atoms/ApplyFilterBar";
import RenderFormFields from "../../molecules/RenderFormFields";
import Toast from "../../atoms/Toast";
import _ from "lodash";
+import Button from "../../atoms/Button"
-const MobileSearchComponent = ({ uiConfig, modalType, header = "", screenType = "search", fullConfig, data, onClose, defaultValues }) => {
+
+const MobileSearchComponent = ({ uiConfig, modalType, header = "", screenType = "search", fullConfig, data, onClose, defaultValues,browserSession }) => {
const { t } = useTranslation();
const { state, dispatch } = useContext(InboxContext)
const [showToast,setShowToast] = useState(null)
let updatedFields = [];
const {apiDetails} = fullConfig
-
+
if (fullConfig?.postProcessResult){
//conditions can be added while calling postprocess function to pass different params
Digit?.Customizations?.[apiDetails?.masterName]?.[apiDetails?.moduleName]?.postProcess(data, uiConfig)
}
//define session for modal form
- const mobileSearchSession = Digit.Hooks.useSessionStorage("MOBILE_SEARCH_MODAL_FORM",
- defaultValues
- );
- const [sessionFormData, setSessionFormData, clearSessionFormData] = mobileSearchSession;
+ //uiConfig.type === filter || sort
+ //we need to sync browsersession and mobileSearchSession
+ // const mobileSearchSession = Digit.Hooks.useSessionStorage(`MOBILE_SEARCH_MODAL_FORM_${uiConfig?.type}_${fullConfig?.label}`,
+ // {...uiConfig?.defaultValues}
+ // );
+
+ // const [sessionFormData, setSessionFormData, clearSessionFormData] = mobileSearchSession;
+ const [session,setSession,clearSession] = browserSession || []
+
+
+ const defValuesFromSession = uiConfig?.typeMobile === "filter" ? session?.searchForm : session?.filterForm
const {
register,
@@ -42,9 +50,12 @@ const MobileSearchComponent = ({ uiConfig, modalType, header = "", screenType =
setError,
clearErrors,
} = useForm({
- defaultValues: sessionFormData,
+ // defaultValues: {...uiConfig?.defaultValues,...sessionFormData},
+ defaultValues: {...uiConfig?.defaultValues,...defValuesFromSession}
+ // defaultValues:{...uiConfig?.defaultValues}
});
const formData = watch();
+
const checkKeyDown = (e) => {
const keyCode = e.keyCode ? e.keyCode : e.key ? e.key : e.which;
if (keyCode === 13) {
@@ -57,17 +68,17 @@ const MobileSearchComponent = ({ uiConfig, modalType, header = "", screenType =
}, [formState]);
- //on form value change, update session data with form data
- useEffect(()=>{
- if (!_.isEqual(sessionFormData, formData)) {
- const difference = _.pickBy(sessionFormData, (v, k) => !_.isEqual(formData[k], v));
- setSessionFormData({ ...sessionFormData, ...formData });
- }
- },[formData]);
+ // //on form value change, update session data with form data
+ // useEffect(()=>{
+ // if (!_.isEqual(sessionFormData, formData)) {
+ // // const difference = _.pickBy(sessionFormData, (v, k) => !_.isEqual(formData[k], v));
+ // setSessionFormData({ ...sessionFormData,...formData, });
+ // }
+ // },[formData]);
- useEffect(()=>{
- clearSessionFormData();
- },[]);
+ // useEffect(()=>{
+ // clearSessionFormData();
+ // },[]);
const onSubmit = (data) => {
onClose?.()
@@ -86,10 +97,10 @@ const MobileSearchComponent = ({ uiConfig, modalType, header = "", screenType =
}
const clearSearch = () => {
- clearSessionFormData();
+ // clearSessionFormData();
reset(uiConfig?.defaultValues)
dispatch({
- type: "clearSearchForm",
+ type: uiConfig?.type === "filter"?"clearFilterForm" :"clearSearchForm",
state: { ...uiConfig?.defaultValues }
//need to pass form with empty strings
})
@@ -100,27 +111,42 @@ const MobileSearchComponent = ({ uiConfig, modalType, header = "", screenType =
}
const renderHeader = () => {
- switch(uiConfig?.type) {
+ switch(uiConfig?.typeMobile) {
case "filter" : {
return (
- {t("ES_COMMON_FILTER_BY")}:
+ {t(`${uiConfig?.headerLabel || "ES_COMMON_SEARCH_BY"}`)}
+
-
+ {/* */}
)
}
+ case "sort" : {
+ return (
+
+
+
+ {t(`${uiConfig?.headerLabel || "ES_COMMON_SEARCH_BY"}`)}
+
+
+
+
+
+
+ )
+ }
case "search" : {
return (
- {t("ES_COMMON_SEARCH_BY")}
+ {t(`${uiConfig?.headerLabel || "ES_COMMON_SEARCH_BY"}`)}
@@ -133,7 +159,7 @@ const renderHeader = () => {
- {t("ES_COMMON_SEARCH_BY")}
+ {t(`${uiConfig?.headerLabel || "ES_COMMON_SEARCH_BY"}`)}
@@ -148,11 +174,16 @@ const renderHeader = () => {