diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js
index 751cdb0f..6cce5f3e 100644
--- a/src/actions/searchOffersActions.js
+++ b/src/actions/searchOffersActions.js
@@ -15,6 +15,7 @@ export const OfferSearchTypes = Object.freeze({
DISABLE_OFFER: "DISABLE_OFFER",
COMPANY_ENABLE_OFFER: "COMPANY_ENABLE_OFFER",
ADMIN_ENABLE_OFFER: "ADMIN_ENABLE_OFFER",
+ SET_SHOW_HIDDEN: "SET_SHOW_HIDDEN",
});
export const setLoadingOffers = (loading) => ({
@@ -100,3 +101,8 @@ export const resetAdvancedSearchFields = () => (dispatch) => {
dispatch(setFields([]));
dispatch(setTechs([]));
};
+
+export const setShowHidden = (showHidden) => ({
+ type: OfferSearchTypes.SET_SHOW_HIDDEN,
+ showHidden,
+});
diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js
index d2f31681..ae88745f 100644
--- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js
+++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js
@@ -53,7 +53,7 @@ const AdvancedSearchDesktop = () => {
const {
advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps,
ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel,
- JobDurationSliderProps,
+ JobDurationSliderProps, ShowHiddenSwitchProps,
} = useContext(AdvancedSearchControllerContext);
return (
@@ -104,19 +104,19 @@ const AdvancedSearchDesktop = () => {
}}
/>
-
-
+
+
{sessionData?.isAdmin &&
}
+ control={}
label={JobHiddenSwitchLabel}
/>
}
diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js
index 17ab2b37..39f73710 100644
--- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js
+++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js
@@ -19,6 +19,8 @@ export default ({
technologies,
setTechs,
resetAdvancedSearchFields,
+ showHidden,
+ setShowHidden,
}) => {
const jobDuration = [jobMinDuration, jobMaxDuration];
@@ -72,6 +74,15 @@ export default ({
const FieldsSelectorProps = useFieldSelector(fields, setFields);
const TechsSelectorProps = useTechSelector(technologies, setTechs);
+ const toggleShowHidden = useCallback(() => {
+ setShowHidden(!showHidden);
+ }, [setShowHidden, showHidden]);
+
+ const ShowHiddenSwitchProps = {
+ checked: showHidden,
+ onChange: toggleShowHidden,
+ value: "filterShowHiddenOffers",
+ };
const advancedOptionsActive = showJobDurationSlider
|| (jobType !== INITIAL_JOB_TYPE)
@@ -104,5 +115,6 @@ export default ({
JobDurationSliderProps,
JobDurationSliderText,
ResetButtonProps,
+ ShowHiddenSwitchProps,
};
};
diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js
index 59ca9125..d7ac62a3 100644
--- a/src/components/HomePage/SearchArea/SearchArea.js
+++ b/src/components/HomePage/SearchArea/SearchArea.js
@@ -12,6 +12,7 @@ import {
setShowJobDurationSlider,
setTechs,
hideOffer,
+ setShowHidden,
} from "../../../actions/searchOffersActions";
import { INITIAL_JOB_TYPE, INITIAL_JOB_DURATION } from "../../../reducers/searchOffersReducer";
@@ -33,7 +34,8 @@ export const AdvancedSearchControllerContext = React.createContext({});
export const AdvancedSearchController = ({
enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration,
jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs,
- resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose,
+ resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose, showHidden,
+ setShowHidden,
}) => {
const advancedSearchProps = useAdvancedSearch({
@@ -51,6 +53,8 @@ export const AdvancedSearchController = ({
setTechs,
resetAdvancedSearchFields,
hideOffer,
+ showHidden,
+ setShowHidden,
});
const { search: searchOffers } = useOffersSearcher({
@@ -60,6 +64,7 @@ export const AdvancedSearchController = ({
jobType,
fields,
technologies,
+ showHidden,
});
const submitForm = useCallback((e) => {
@@ -87,7 +92,8 @@ export const AdvancedSearchController = ({
export const SearchArea = ({ onSubmit, searchValue,
jobMinDuration = INITIAL_JOB_DURATION, jobMaxDuration = INITIAL_JOB_DURATION + 1, jobType = INITIAL_JOB_TYPE,
fields, technologies, showJobDurationSlider, setShowJobDurationSlider, advanced: enableAdvancedSearchDefault = false,
- setSearchValue, setJobDuration, setJobType, setFields, setTechs, resetAdvancedSearchFields, onMobileClose }) => {
+ setSearchValue, setJobDuration, setJobType, setFields, setTechs, resetAdvancedSearchFields, onMobileClose, showHidden,
+ setShowHidden }) => {
const classes = useSearchAreaStyles();
const {
@@ -103,6 +109,7 @@ export const SearchArea = ({ onSubmit, searchValue,
enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration,
jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs,
resetAdvancedSearchFields, hideOffer, onSubmit, searchValue, setSearchValue, onMobileClose,
+ showHidden, setShowHidden,
},
AdvancedSearchControllerContext
);
@@ -163,6 +170,8 @@ SearchArea.propTypes = {
setTechs: PropTypes.func.isRequired,
setShowJobDurationSlider: PropTypes.func.isRequired,
onMobileClose: PropTypes.func,
+ showHidden: PropTypes.bool,
+ setShowHidden: PropTypes.func,
advanced: PropTypes.bool,
};
@@ -174,6 +183,7 @@ export const mapStateToProps = ({ offerSearch }) => ({
fields: offerSearch.fields,
technologies: offerSearch.technologies,
showJobDurationSlider: offerSearch.filterJobDuration,
+ showHidden: offerSearch.showHidden,
});
export const mapDispatchToProps = (dispatch) => ({
@@ -183,6 +193,7 @@ export const mapDispatchToProps = (dispatch) => ({
setFields: (fields) => dispatch(setFields(fields)),
setTechs: (technologies) => dispatch(setTechs(technologies)),
setShowJobDurationSlider: (val) => dispatch(setShowJobDurationSlider(val)),
+ setShowHidden: (val) => dispatch(setShowHidden(val)),
resetAdvancedSearchFields: () => dispatch(resetAdvancedSearchFields()),
});
diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js
index 7db66521..c13dde37 100644
--- a/src/components/HomePage/SearchArea/searchAreaStyle.js
+++ b/src/components/HomePage/SearchArea/searchAreaStyle.js
@@ -96,6 +96,5 @@ export default makeStyles((theme) => ({
jobHiddenSliderToggle: {
gridRowStart: 4,
gridColumnStart: 2,
-
},
}));
diff --git a/src/reducers/searchOffersReducer.js b/src/reducers/searchOffersReducer.js
index c07b18f1..1240de74 100644
--- a/src/reducers/searchOffersReducer.js
+++ b/src/reducers/searchOffersReducer.js
@@ -18,6 +18,7 @@ const initialState = {
offers: [],
loading: false,
error: INITIAL_ERROR,
+ showHidden: false,
};
export default (state = initialState, action) => {
@@ -107,6 +108,11 @@ export default (state = initialState, action) => {
new Offer({ ...offer, isHidden: false, hiddenReason: null, adminReason: null })
: offer
) };
+ case OfferSearchTypes.SET_SHOW_HIDDEN:
+ return {
+ ...state,
+ showHidden: action.showHidden,
+ };
default:
return state;
}