From 9c44fbbde64d36d837e076c9e39448d52c856940 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 01/57] feature: show hidden button style done on desktop --- .../AdvancedSearch/AdvancedSearchDesktop.js | 20 ++++++++++++++++++- .../AdvancedSearch/useAdvancedSearch.js | 3 +++ .../HomePage/SearchArea/SearchArea.js | 4 +++- .../HomePage/SearchArea/searchAreaStyle.js | 5 +++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index 9f226ac6..1c31337b 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -11,6 +11,7 @@ import { FormHelperText, Button, } from "@material-ui/core"; +import useSession from "../../../../hooks/useSession"; import JobOptions from "../../../utils/offers/JobOptions"; import useSearchAreaStyles from "../searchAreaStyle"; @@ -40,11 +41,19 @@ JobDurationCollapse.propTypes = { const AdvancedSearchDesktop = () => { + const { data, + isValidating, + error, + isLoggedIn, + } = useSession(); + const sessionData = (!isValidating && !error && isLoggedIn) ? data : null; + const classes = useSearchAreaStyles(); const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, - ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobDurationSliderProps, + ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + JobDurationSliderProps, } = useContext(AdvancedSearchControllerContext); return ( @@ -96,6 +105,7 @@ const AdvancedSearchDesktop = () => { /> {advancedOptions && +
+ {sessionData?.isAdmin && + } + label={JobHiddenSwitchLabel} + /> + }
+
} ); diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js index 7e2aca8f..17ab2b37 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js @@ -30,6 +30,8 @@ export default ({ const JobDurationSwitchLabel = "Filter Job Duration"; + const JobHiddenSwitchLabel = "Show Hidden Offers"; + const [advancedOptions, toggleAdvancedOptions] = useToggle(enableAdvancedSearchDefault); const JobTypeSelectorProps = { @@ -98,6 +100,7 @@ export default ({ JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, + JobHiddenSwitchLabel, JobDurationSliderProps, JobDurationSliderText, ResetButtonProps, diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js index 66a16970..9041c1c5 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -12,6 +12,7 @@ import { setShowJobDurationSlider, setTechs, setLoadUrlFromFilters, + hideOffer, } from "../../../actions/searchOffersActions"; import { INITIAL_JOB_TYPE, INITIAL_JOB_DURATION } from "../../../reducers/searchOffersReducer"; @@ -74,6 +75,7 @@ export const AdvancedSearchController = ({ technologies, setTechs: actualSetTechs, resetAdvancedSearchFields: actualResetAdvancedSearchFields, + hideOffer, }); const { search: searchOffers } = useOffersSearcher({ @@ -157,7 +159,7 @@ export const SearchArea = ({ onSubmit, searchValue, enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose, - loadUrlFromFilters, setLoadUrlFromFilters, + hideOffer, loadUrlFromFilters, setLoadUrlFromFilters, }, AdvancedSearchControllerContext ); diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index ebc6d021..14555fa9 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -88,4 +88,9 @@ export default makeStyles((theme) => ({ marginLeft: theme.spacing(-1), }, }, + spaceBtwn: { + "& > *": { + justifyContent: "space-between", + }, + }, })); From 83be2edefe5bac9fd88096e6f29b65082316d315 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 13:08:42 +0000 Subject: [PATCH 02/57] feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid --- .../AdvancedSearch/AdvancedSearchDesktop.js | 30 ++++++++----------- .../HomePage/SearchArea/searchAreaStyle.js | 17 +++++++---- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index 1c31337b..d2f31681 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -103,28 +103,24 @@ const AdvancedSearchDesktop = () => { className: "chip-wrapper", }} /> - - {advancedOptions && -
- - {sessionData?.isAdmin && + +
+ {sessionData?.isAdmin && } label={JobHiddenSwitchLabel} /> - } -
- - } + } + ); }; diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 14555fa9..7db66521 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -24,7 +24,7 @@ export default makeStyles((theme) => ({ advancedSearchContainer: { display: "grid", gridTemplateColumns: "1fr 1fr", - gridTemplateRows: "1fr 0.7fr auto", + gridTemplateRows: "1fr 0.7fr 1fr 0.7fr", alignItems: "center", gridGap: "1em", }, @@ -82,15 +82,20 @@ export default makeStyles((theme) => ({ gridColumnStart: 2, }, resetBtnWrapper: { - display: "flex", + gridRowStart: 4, + gridColumnStart: 1, "& > *": { marginTop: theme.spacing(2), marginLeft: theme.spacing(-1), }, - }, - spaceBtwn: { - "& > *": { - justifyContent: "space-between", + "& .chip-wrapper": { + gridColumnStart: 2, + gridRowStart: 4, }, }, + jobHiddenSliderToggle: { + gridRowStart: 4, + gridColumnStart: 2, + + }, })); From a4c292d9d151fdf85b555d412ec56b8459835086 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 03/57] feat: showHidden is already working --- src/actions/searchOffersActions.js | 6 +++++ .../AdvancedSearch/AdvancedSearchDesktop.js | 22 +++++++++---------- .../AdvancedSearch/useAdvancedSearch.js | 12 ++++++++++ .../HomePage/SearchArea/SearchArea.js | 14 +++++++++--- .../HomePage/SearchArea/searchAreaStyle.js | 1 - src/reducers/searchOffersReducer.js | 6 +++++ 6 files changed, 46 insertions(+), 15 deletions(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index 4b62d82d..f0879abf 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -16,6 +16,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) => ({ @@ -106,3 +107,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 9041c1c5..80884497 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -13,6 +13,7 @@ import { setTechs, setLoadUrlFromFilters, hideOffer, + setShowHidden, } from "../../../actions/searchOffersActions"; import { INITIAL_JOB_TYPE, INITIAL_JOB_DURATION } from "../../../reducers/searchOffersReducer"; @@ -39,7 +40,7 @@ export const AdvancedSearchController = ({ enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose, - loadUrlFromFilters, setLoadUrlFromFilters, + loadUrlFromFilters, setLoadUrlFromFilters, showHidden, setShowHidden, }) => { const { @@ -76,6 +77,8 @@ export const AdvancedSearchController = ({ setTechs: actualSetTechs, resetAdvancedSearchFields: actualResetAdvancedSearchFields, hideOffer, + showHidden, + setShowHidden, }); const { search: searchOffers } = useOffersSearcher({ @@ -85,6 +88,7 @@ export const AdvancedSearchController = ({ jobType, fields, technologies, + showHidden, }); const submitForm = useCallback((e, updateUrl = true) => { @@ -143,7 +147,7 @@ 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, - loadUrlFromFilters, setLoadUrlFromFilters }) => { + loadUrlFromFilters, setLoadUrlFromFilters, showHidden, setShowHidden }) => { const classes = useSearchAreaStyles(); const { @@ -159,7 +163,7 @@ export const SearchArea = ({ onSubmit, searchValue, enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose, - hideOffer, loadUrlFromFilters, setLoadUrlFromFilters, + hideOffer, loadUrlFromFilters, setLoadUrlFromFilters, showHidden, setShowHidden, }, AdvancedSearchControllerContext ); @@ -226,6 +230,8 @@ SearchArea.propTypes = { setTechs: PropTypes.func.isRequired, setShowJobDurationSlider: PropTypes.func.isRequired, onMobileClose: PropTypes.func, + showHidden: PropTypes.bool, + setShowHidden: PropTypes.func, advanced: PropTypes.bool, }; @@ -238,6 +244,7 @@ export const mapStateToProps = ({ offerSearch }) => ({ technologies: offerSearch.technologies, showJobDurationSlider: offerSearch.filterJobDuration, loadUrlFromFilters: offerSearch.loadUrlFromFilters, + showHidden: offerSearch.showHidden, }); export const mapDispatchToProps = (dispatch) => ({ @@ -247,6 +254,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()), setLoadUrlFromFilters: (value) => dispatch(setLoadUrlFromFilters(value)), }); 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 30afa317..1aed1d33 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) => { @@ -112,6 +113,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; } From 88a304fc8dcc188f54b4fa093888c1dcf6b06a0d Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 24 Jan 2023 16:18:09 +0000 Subject: [PATCH 04/57] test: adds showHidden test --- src/actions/searchOffersActions.js | 1 + src/reducers/searchOffersReducer.spec.js | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index f0879abf..233484f3 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -106,6 +106,7 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setJobDuration(INITIAL_JOB_DURATION, INITIAL_JOB_DURATION + 1)); dispatch(setFields([])); dispatch(setTechs([])); + dispatch(setShowHidden(false)); }; export const setShowHidden = (showHidden) => ({ diff --git a/src/reducers/searchOffersReducer.spec.js b/src/reducers/searchOffersReducer.spec.js index f213ae62..f4378de4 100644 --- a/src/reducers/searchOffersReducer.spec.js +++ b/src/reducers/searchOffersReducer.spec.js @@ -14,6 +14,7 @@ import { disableOffer, companyEnableOffer, adminEnableOffer, + setShowHidden, } from "../actions/searchOffersActions"; describe("Search Offers Reducer", () => { @@ -26,8 +27,10 @@ describe("Search Offers Reducer", () => { offers: [], fields: [], technologies: [], + showHidden: false, loading: false, - error: null }); + error: null, + }); }); it("should set offers when setSearchOffers action is called", () => { @@ -111,6 +114,17 @@ describe("Search Offers Reducer", () => { expect(state.fields).toStrictEqual(["test1", "test2"]); }); + it("should set advanced search fields when setShowHidden action is called", () => { + const state = searchOffersState( + { + showHidden: false, + }, + setShowHidden(true) + ); + + expect(state.showHidden).toBe(true); + }); + it("should set advanced search technologies when setTechs action is called", () => { const state = searchOffersState( { From 5edff5685d38cb9e2438c04478cd40a887c744cf Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 05/57] feature: show hidden button style done on desktop --- src/components/HomePage/SearchArea/searchAreaStyle.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index c13dde37..4a7d08e8 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -97,4 +97,9 @@ export default makeStyles((theme) => ({ gridRowStart: 4, gridColumnStart: 2, }, + spaceBtwn: { + "& > *": { + justifyContent: "space-between", + }, + }, })); From 6e9aad98e35a7036da1bc753e6f223fd367123f5 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 13:08:42 +0000 Subject: [PATCH 06/57] feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid --- src/components/HomePage/SearchArea/searchAreaStyle.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 4a7d08e8..66d881c3 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -91,6 +91,7 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, +<<<<<<< HEAD }, }, jobHiddenSliderToggle: { @@ -100,6 +101,13 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", +======= +>>>>>>> feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid }, }, + jobHiddenSliderToggle: { + gridRowStart: 4, + gridColumnStart: 2, + + }, })); From 20fa7ce77d1c2c8ab8fa93a01a0598fd400610f5 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 07/57] feat: showHidden is already working --- src/components/HomePage/SearchArea/searchAreaStyle.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 66d881c3..0ac78170 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -108,6 +108,5 @@ export default makeStyles((theme) => ({ jobHiddenSliderToggle: { gridRowStart: 4, gridColumnStart: 2, - }, })); From e807869ffc8fca2055b489bf617e5ea50c33d73a Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 7 Feb 2023 14:32:38 +0000 Subject: [PATCH 08/57] tests: adds various tests to showHidden --- src/actions/searchOffersActions.js | 10 +++++----- src/actions/searchOffersActions.spec.js | 12 ++++++++++++ .../HomePage/SearchArea/SearchArea.spec.js | 12 ++++++++++++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index 233484f3..b0f99d91 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -100,6 +100,11 @@ export const adminEnableOffer = (offerIdx) => ({ offerIdx, }); +export const setShowHidden = (showHidden) => ({ + type: OfferSearchTypes.SET_SHOW_HIDDEN, + showHidden, +}); + export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setJobType(INITIAL_JOB_TYPE)); dispatch(setShowJobDurationSlider(false)); @@ -108,8 +113,3 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setTechs([])); dispatch(setShowHidden(false)); }; - -export const setShowHidden = (showHidden) => ({ - type: OfferSearchTypes.SET_SHOW_HIDDEN, - showHidden, -}); diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index fe87c2d6..c117e1dd 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -12,6 +12,7 @@ import { resetAdvancedSearchFields, setOffersFetchError, resetOffersFetchError, + setShowHidden, } from "./searchOffersActions"; import { INITIAL_JOB_TYPE, INITIAL_JOB_DURATION } from "../reducers/searchOffersReducer"; @@ -54,6 +55,17 @@ describe("Search Offers actions", () => { expect(setSearchValue(value)).toEqual(expectedAction); }); + it("should return Set Show Hidden action", () => { + + const showHidden = "show_hidden"; + const expectedAction = { + type: OfferSearchTypes.SET_SHOW_HIDDEN, + showHidden, + }; + + expect(setShowHidden(showHidden)).toEqual(expectedAction); + }); + it("should return Set Job Duration action", () => { const jobDuration = [1, 2]; diff --git a/src/components/HomePage/SearchArea/SearchArea.spec.js b/src/components/HomePage/SearchArea/SearchArea.spec.js index 0304242d..4debe557 100644 --- a/src/components/HomePage/SearchArea/SearchArea.spec.js +++ b/src/components/HomePage/SearchArea/SearchArea.spec.js @@ -79,6 +79,15 @@ describe("SearchArea", () => { { }} + setTechs={() => { }} + setJobDuration={() => { }} + setFields={() => { }} + setJobType={() => { }} + setSearchValue={() => { }} + setShowHidden={() => { }} /> , { initialState, theme } @@ -197,6 +206,7 @@ describe("SearchArea", () => { setJobDuration={() => { }} setFields={() => { }} setJobType={() => { }} + setShowHidden={() => { }} onSubmit={onSubmit} fields={[]} technologies={[]} @@ -307,6 +317,7 @@ describe("SearchArea", () => { jobDuration: [1, 2], fields: ["field1", "field2"], technologies: ["tech1", "tech2"], + showHidden: true, }, }; expect(mapStateToProps(mockState)).toEqual({ @@ -316,6 +327,7 @@ describe("SearchArea", () => { jobMaxDuration: 2, fields: ["field1", "field2"], technologies: ["tech1", "tech2"], + showHidden: true, }); }); From afa9cb91451a21c347d14b175976cf75e37834a9 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Sun, 12 Feb 2023 11:50:59 +0000 Subject: [PATCH 09/57] test: adds more showHidden tests Co-authored-by: Diogo Fonte diogo.fonte2000@gmail.com --- src/actions/searchOffersActions.spec.js | 2 +- src/components/HomePage/SearchArea/SearchArea.spec.js | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index c117e1dd..f886bf09 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -57,7 +57,7 @@ describe("Search Offers actions", () => { it("should return Set Show Hidden action", () => { - const showHidden = "show_hidden"; + const showHidden = true; const expectedAction = { type: OfferSearchTypes.SET_SHOW_HIDDEN, showHidden, diff --git a/src/components/HomePage/SearchArea/SearchArea.spec.js b/src/components/HomePage/SearchArea/SearchArea.spec.js index 4debe557..3c497650 100644 --- a/src/components/HomePage/SearchArea/SearchArea.spec.js +++ b/src/components/HomePage/SearchArea/SearchArea.spec.js @@ -7,6 +7,7 @@ import { setFields, setTechs, setShowJobDurationSlider, + setShowHidden, } from "../../../actions/searchOffersActions"; import { createTheme } from "@material-ui/core"; import { renderWithStoreAndTheme, screen, fireEvent, act } from "../../../test-utils"; @@ -28,7 +29,7 @@ const SearchAreaWrapper = ({ searchValue = "", jobType = INITIAL_JOB_TYPE, jobDuration = [null, null], filterJobDuration = false, showJobDurationSlider = false, fields = [], technologies = [], setShowJobDurationSlider = () => { }, setTechs = () => { }, setJobDuration = () => { }, setFields = () => { }, setJobType = () => { }, - setSearchValue = () => { }, onSubmit = () => {}, + setSearchValue = () => { }, onSubmit = () => {}, setShowHidden = () => { }, }) => ( ); @@ -63,6 +65,7 @@ SearchAreaWrapper.propTypes = { setShowJobDurationSlider: PropTypes.func.isRequired, jobDuration: PropTypes.number, filterJobDuration: PropTypes.bool, + setShowHidden: PropTypes.bool, }; describe("SearchArea", () => { @@ -356,6 +359,10 @@ describe("SearchArea", () => { props.setShowJobDurationSlider(filterJobDuration); expect(dispatch).toHaveBeenCalledWith(setShowJobDurationSlider(false)); + const showHidden = true; + props.setShowHidden(showHidden); + expect(dispatch).toHaveBeenCalledWith(setShowHidden(true)); + dispatch.mockClear(); props.resetAdvancedSearchFields(); expect(dispatch).toHaveBeenCalled(); From f801bd7b11f33b0ec809cf7eb41b12fa30689724 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 14:30:54 +0000 Subject: [PATCH 10/57] feature: adds show hidden offers to mobile --- .../AdvancedSearch/AdvancedSearchMobile.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js index fc512e09..892e58e3 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js @@ -24,6 +24,7 @@ import MultiOptionAutocomplete from "../../../utils/form/MultiOptionAutocomplete import JobOptions from "../../../utils/offers/JobOptions"; import useSearchAreaStyles from "../searchAreaStyle"; import { AdvancedSearchControllerContext } from "../SearchArea"; +import useSession from "../../../../hooks/useSession"; const JobDurationCollapse = ({ className, JobDurationCollapseProps, JobDurationSliderProps, sliderText }) => ( { const { advancedOptions, toggleAdvancedOptions, searchValue, submitForm, setSearchValue, FieldsSelectorProps, TechsSelectorProps, resetAdvancedSearch, JobDurationSliderText, ResetButtonProps, - JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, JobDurationSliderProps, - onMobileClose, + JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + JobDurationSliderProps, onMobileClose, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); const handleResetClick = (e) => { @@ -99,6 +100,13 @@ const AdvancedSearchMobile = () => { }; + const { data, + isValidating, + error, + isLoggedIn, + } = useSession(); + const sessionData = (!isValidating && !error && isLoggedIn) ? data : null; + const classes = useSearchAreaStyles(); return ( @@ -151,6 +159,13 @@ const AdvancedSearchMobile = () => { JobDurationSliderProps={JobDurationSliderProps} sliderText={JobDurationSliderText} /> + {sessionData?.isAdmin && + } + label={JobHiddenSwitchLabel} + /> + } From cc0a26eefe4448dc0ce62ed30ac3767ba00520a7 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 14:41:51 +0000 Subject: [PATCH 11/57] fix: fixes search results bug in mobile --- src/components/HomePage/SearchArea/searchAreaStyle.js | 1 - .../SearchResultsWidget/SearchResultsMobile.js | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 0ac78170..bb7a5f8c 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -19,7 +19,6 @@ export default makeStyles((theme) => ({ }, advancedSearchOuterWrapper: { gridColumn: "1 / span 2", - }, advancedSearchContainer: { display: "grid", diff --git a/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js b/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js index d27d1497..0dd5072c 100644 --- a/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js +++ b/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js @@ -15,7 +15,7 @@ const OffersList = ({ toggleShowSearchFilters, offers, moreOffersLoading, loadMoreOffers, searchQueryToken, }) => ( - + {noOffers ?
@@ -45,6 +45,7 @@ OffersList.propTypes = { classes: PropTypes.shape({ reviseCriteriaErrorMessage: PropTypes.string.isRequired, fullHeight: PropTypes.string.isRequired, + heightOffersList: PropTypes.string.isRequired, errorLoadingOffersIcon: PropTypes.string.isRequired, noOffersColumn: PropTypes.string.isRequired, offerItemsContainer: PropTypes.string.isRequired, @@ -142,6 +143,7 @@ const SearchResultsMobile = () => { errorLoadingOffersIcon: classes.errorLoadingOffersIcon, reviseCriteriaErrorMessage: classes.reviseCriteriaErrorMessage, fullHeight: classes.fullHeight, + heightOffersList: classes.heightOffersList, offerItemsContainer: classes.offerItemsContainer, }; From c319a695ce9db5af7577be4dad02c553a828a004 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 18:47:23 +0000 Subject: [PATCH 12/57] feature: adds show hidden to url Co-authored by: CarlosMealha up202005954@edu.fc.up.pt --- .../AdvancedSearch/AdvancedSearchDesktop.js | 6 +++--- .../SearchArea/AdvancedSearch/AdvancedSearchMobile.js | 11 ++++++----- .../SearchArea/AdvancedSearch/useAdvancedSearch.js | 4 ++-- src/components/HomePage/SearchArea/SearchArea.js | 7 ++++++- src/components/HomePage/SearchArea/searchAreaStyle.js | 5 +---- .../HomePage/SearchArea/useUrlSearchParams.js | 11 +++++++++++ 6 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index ae88745f..daab3f98 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -52,7 +52,7 @@ const AdvancedSearchDesktop = () => { const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, - ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, JobDurationSliderProps, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -115,9 +115,9 @@ const AdvancedSearchDesktop = () => {
{sessionData?.isAdmin && } - label={JobHiddenSwitchLabel} + label={ShowHiddenSwitchLabel} /> }
diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js index 892e58e3..9ce72962 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js @@ -74,7 +74,7 @@ const AdvancedSearchMobile = () => { const { advancedOptions, toggleAdvancedOptions, searchValue, submitForm, setSearchValue, FieldsSelectorProps, TechsSelectorProps, resetAdvancedSearch, JobDurationSliderText, ResetButtonProps, - JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, JobDurationSliderProps, onMobileClose, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -97,7 +97,6 @@ const AdvancedSearchMobile = () => { const handleExit = () => { if (shouldSubmitForm) submitForm(); if (onMobileClose) onMobileClose(); - }; const { data, @@ -161,11 +160,11 @@ const AdvancedSearchMobile = () => { /> {sessionData?.isAdmin && } - label={JobHiddenSwitchLabel} + label={ShowHiddenSwitchLabel} /> - } + } @@ -205,6 +204,8 @@ AdvancedSearchMobile.propTypes = { JobDurationSwitchLabel: PropTypes.string, JobDurationSliderProps: PropTypes.object, onMobileClose: PropTypes.func, + ShowHiddenSwitchProps: PropTypes.object, + ShowHiddenSwitchLabel: PropTypes.string, }; export default AdvancedSearchMobile; diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js index 39f73710..9f08b7af 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js @@ -32,7 +32,7 @@ export default ({ const JobDurationSwitchLabel = "Filter Job Duration"; - const JobHiddenSwitchLabel = "Show Hidden Offers"; + const ShowHiddenSwitchLabel = "Show Hidden Offers"; const [advancedOptions, toggleAdvancedOptions] = useToggle(enableAdvancedSearchDefault); @@ -111,10 +111,10 @@ export default ({ JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, - JobHiddenSwitchLabel, JobDurationSliderProps, JobDurationSliderText, ResetButtonProps, ShowHiddenSwitchProps, + ShowHiddenSwitchLabel, }; }; diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js index 80884497..280e3d4b 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -53,6 +53,7 @@ export const AdvancedSearchController = ({ resetAdvancedSearchFields: actualResetAdvancedSearchFields, setSearchValue: setUrlSearchValue, setUrlFilters, + setShowHidden: actualSetShowHidden, } = useSearchParams({ setJobDuration, setShowJobDurationSlider, @@ -60,6 +61,7 @@ export const AdvancedSearchController = ({ setFields, setTechs, resetAdvancedSearchFields, + setShowHidden, }); const advancedSearchProps = useAdvancedSearch({ @@ -78,7 +80,7 @@ export const AdvancedSearchController = ({ resetAdvancedSearchFields: actualResetAdvancedSearchFields, hideOffer, showHidden, - setShowHidden, + setShowHidden: actualSetShowHidden, }); const { search: searchOffers } = useOffersSearcher({ @@ -125,6 +127,9 @@ export const AdvancedSearchController = ({ setSearchValue(queryParams.searchValue); } + setShowHidden(queryParams.showHidden === "false"); + + setSearchValue(queryParams.searchValue); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index bb7a5f8c..8ceeaf62 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -90,7 +90,6 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, -<<<<<<< HEAD }, }, jobHiddenSliderToggle: { @@ -100,11 +99,9 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", -======= ->>>>>>> feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid }, }, - jobHiddenSliderToggle: { + showHiddenToggle: { gridRowStart: 4, gridColumnStart: 2, }, diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index e499456e..ab08b96a 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -20,6 +20,7 @@ export default ({ setTechs, setSearchValue, resetAdvancedSearchFields, + setShowHidden, } = {}) => { const location = useLocation(); @@ -85,6 +86,15 @@ export default ({ }, [changeURLFilters, location, queryParams, setShowJobDurationSlider]); + const actualSetShowHidden = useCallback((showHiddenToggle) => { + + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + + if (setShowHidden) + setShowHidden(showHiddenToggle); + + }, [changeURLFilters, location, queryParams, setShowHidden]); + const actualSetFields = useCallback((fields) => { const sanitizedFields = ensureArray(fields); @@ -172,5 +182,6 @@ export default ({ setSearchValue: actualSetSearchValue, resetAdvancedSearchFields: actualResetAdvancedSearchFields, setUrlFilters, + setShowHidden: actualSetShowHidden, }; }; From 950e19b49a5f8cf91f31975ff42d1a5973d2054b Mon Sep 17 00:00:00 2001 From: diogofonte Date: Mon, 6 Mar 2023 22:45:45 +0000 Subject: [PATCH 13/57] reset fields working with show hidden offers --- .../HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js | 3 ++- src/components/HomePage/SearchArea/useUrlSearchParams.js | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js index 9f08b7af..f2f4b442 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js @@ -87,7 +87,8 @@ export default ({ const advancedOptionsActive = showJobDurationSlider || (jobType !== INITIAL_JOB_TYPE) || fields.length !== 0 - || technologies.length !== 0; + || technologies.length !== 0 + || showHidden; const ResetButtonProps = { disabled: !advancedOptionsActive, diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index ab08b96a..d05a6b81 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,10 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + if(!showHiddenToggle) + clearURLFilters(location); + else + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); From 675de5d1cddfc4058d12a11f5922e4805fc3e652 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 14/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index d05a6b81..4051ec2d 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,7 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - if(!showHiddenToggle) + if (!showHiddenToggle) clearURLFilters(location); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); @@ -96,7 +96,7 @@ export default ({ if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, setShowHidden]); + }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); const actualSetFields = useCallback((fields) => { From 96657659335b091b8ca478e583d281af824c2d26 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 15/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index 4051ec2d..1da16034 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -89,7 +89,7 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { if (!showHiddenToggle) - clearURLFilters(location); + clearURLFilters(location, queryParams, { showHidden: !showHiddenToggle }); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); From b5976514c5178ab515b2fcaa8d610ffbb4c2fd8d Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 16/57] feature: show hidden button style done on desktop --- src/components/HomePage/SearchArea/searchAreaStyle.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 8ceeaf62..2fb8031b 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -92,10 +92,6 @@ export default makeStyles((theme) => ({ gridRowStart: 4, }, }, - jobHiddenSliderToggle: { - gridRowStart: 4, - gridColumnStart: 2, - }, spaceBtwn: { "& > *": { justifyContent: "space-between", From af0b2cfee4170bea53d61c28e08e4f16ce35b292 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 17/57] feat: showHidden is already working --- src/actions/searchOffersActions.js | 5 +++++ .../SearchArea/AdvancedSearch/AdvancedSearchDesktop.js | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index b0f99d91..cf2ba640 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -113,3 +113,8 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setTechs([])); dispatch(setShowHidden(false)); }; + +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 daab3f98..df4d0655 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -52,7 +52,11 @@ const AdvancedSearchDesktop = () => { const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, +<<<<<<< HEAD ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, +======= + ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, +>>>>>>> feat: showHidden is already working JobDurationSliderProps, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -115,9 +119,15 @@ const AdvancedSearchDesktop = () => { {sessionData?.isAdmin && } label={ShowHiddenSwitchLabel} +======= + className={classes.jobHiddenSliderToggle} + control={} + label={JobHiddenSwitchLabel} +>>>>>>> feat: showHidden is already working /> } From f5f4ef11b1aa76291e993aea532c11b402ba14e8 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 18/57] feature: show hidden button style done on desktop --- .../AdvancedSearch/AdvancedSearchDesktop.js | 13 ++++++++++++- .../HomePage/SearchArea/searchAreaStyle.js | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index df4d0655..530fc84c 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -107,6 +107,9 @@ const AdvancedSearchDesktop = () => { className: "chip-wrapper", }} /> + + {advancedOptions && +
+ {sessionData?.isAdmin && + } + label={JobHiddenSwitchLabel} + /> + }
{sessionData?.isAdmin && { >>>>>>> feat: showHidden is already working /> } - +
+ } ); }; diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 2fb8031b..839eae51 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -101,4 +101,9 @@ export default makeStyles((theme) => ({ gridRowStart: 4, gridColumnStart: 2, }, + spaceBtwn: { + "& > *": { + justifyContent: "space-between", + }, + }, })); From 0032b1beba5c2e76191711c2f7da8b58c2991e66 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 13:08:42 +0000 Subject: [PATCH 19/57] feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid --- .../AdvancedSearch/AdvancedSearchDesktop.js | 33 +++++++------------ .../HomePage/SearchArea/searchAreaStyle.js | 8 +++++ 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index 530fc84c..d041718b 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -107,26 +107,16 @@ const AdvancedSearchDesktop = () => { className: "chip-wrapper", }} /> - - {advancedOptions && -
- - {sessionData?.isAdmin && - } - label={JobHiddenSwitchLabel} - /> - } -
+ +
{sessionData?.isAdmin && { label={ShowHiddenSwitchLabel} ======= className={classes.jobHiddenSliderToggle} - control={} + control={} label={JobHiddenSwitchLabel} >>>>>>> feat: showHidden is already working /> } - - } + ); }; diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 839eae51..b9e47e4f 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -90,6 +90,7 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, +<<<<<<< HEAD }, }, spaceBtwn: { @@ -104,6 +105,13 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", +======= +>>>>>>> dc9ea8f (feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid) }, }, + jobHiddenSliderToggle: { + gridRowStart: 4, + gridColumnStart: 2, + + }, })); From 3b7fc881bd8cb5c58744b5f1a79744da757790d5 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 20/57] feat: showHidden is already working --- .../AdvancedSearch/AdvancedSearchDesktop.js | 20 +++++++++---------- .../HomePage/SearchArea/searchAreaStyle.js | 1 - 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index d041718b..df4d0655 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -108,15 +108,15 @@ const AdvancedSearchDesktop = () => { }} />
- -
+ + {sessionData?.isAdmin && { label={ShowHiddenSwitchLabel} ======= className={classes.jobHiddenSliderToggle} - control={} + control={} label={JobHiddenSwitchLabel} >>>>>>> feat: showHidden is already working /> diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index b9e47e4f..46b3591f 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -112,6 +112,5 @@ export default makeStyles((theme) => ({ jobHiddenSliderToggle: { gridRowStart: 4, gridColumnStart: 2, - }, })); From afe7a4c889043cc0ba0885f04c92470b790626b4 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 7 Feb 2023 14:32:38 +0000 Subject: [PATCH 21/57] tests: adds various tests to showHidden --- src/actions/searchOffersActions.js | 5 ----- src/actions/searchOffersActions.spec.js | 4 ++++ .../AdvancedSearch/AdvancedSearchDesktop.js | 10 ---------- .../HomePage/SearchArea/searchAreaStyle.js | 12 ------------ 4 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index cf2ba640..b0f99d91 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -113,8 +113,3 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setTechs([])); dispatch(setShowHidden(false)); }; - -export const setShowHidden = (showHidden) => ({ - type: OfferSearchTypes.SET_SHOW_HIDDEN, - showHidden, -}); diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index f886bf09..4a42fde3 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -57,7 +57,11 @@ describe("Search Offers actions", () => { it("should return Set Show Hidden action", () => { +<<<<<<< HEAD const showHidden = true; +======= + const showHidden = "show_hidden"; +>>>>>>> tests: adds various tests to showHidden const expectedAction = { 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 df4d0655..daab3f98 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -52,11 +52,7 @@ const AdvancedSearchDesktop = () => { const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, -<<<<<<< HEAD ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, -======= - ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, ->>>>>>> feat: showHidden is already working JobDurationSliderProps, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -119,15 +115,9 @@ const AdvancedSearchDesktop = () => { {sessionData?.isAdmin && } label={ShowHiddenSwitchLabel} -======= - className={classes.jobHiddenSliderToggle} - control={} - label={JobHiddenSwitchLabel} ->>>>>>> feat: showHidden is already working /> } diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 46b3591f..62fd8c34 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -90,12 +90,6 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, -<<<<<<< HEAD - }, - }, - spaceBtwn: { - "& > *": { - justifyContent: "space-between", }, }, showHiddenToggle: { @@ -105,12 +99,6 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", -======= ->>>>>>> dc9ea8f (feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid) }, }, - jobHiddenSliderToggle: { - gridRowStart: 4, - gridColumnStart: 2, - }, })); From 67b6cc62a25b1de8b0b444208c49811348c7e139 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 18:47:23 +0000 Subject: [PATCH 22/57] feature: adds show hidden to url Co-authored by: CarlosMealha up202005954@edu.fc.up.pt --- src/components/HomePage/SearchArea/SearchArea.js | 2 ++ src/components/HomePage/SearchArea/useUrlSearchParams.js | 7 ++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js index 280e3d4b..9a21d11e 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -129,6 +129,8 @@ export const AdvancedSearchController = ({ } setShowHidden(queryParams.showHidden === "false"); + setShowHidden(queryParams.showHidden === "false"); + setSearchValue(queryParams.searchValue); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index 1da16034..ab08b96a 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,15 +88,12 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - if (!showHiddenToggle) - clearURLFilters(location, queryParams, { showHidden: !showHiddenToggle }); - else - changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); + }, [changeURLFilters, location, queryParams, setShowHidden]); const actualSetFields = useCallback((fields) => { From b064838869966036e9d054aae1cd200bdaffca60 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Mon, 6 Mar 2023 22:45:45 +0000 Subject: [PATCH 23/57] reset fields working with show hidden offers --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index ab08b96a..d05a6b81 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,10 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + if(!showHiddenToggle) + clearURLFilters(location); + else + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); From d6f9f657c1403048afd01e0268c24df3ea99e781 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 24/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index d05a6b81..4051ec2d 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,7 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - if(!showHiddenToggle) + if (!showHiddenToggle) clearURLFilters(location); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); @@ -96,7 +96,7 @@ export default ({ if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, setShowHidden]); + }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); const actualSetFields = useCallback((fields) => { From 08d5ada8785bee02fb4440403d2d1171cca6e5cc Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 25/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index 4051ec2d..6c328fd7 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -89,14 +89,14 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { if (!showHiddenToggle) - clearURLFilters(location); + changeURLFilters(location, queryParams, { showHidden: null }); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); + }, [changeURLFilters, location, queryParams, setShowHidden]); const actualSetFields = useCallback((fields) => { From 1e4522bab8f64321b7a60b103bf2d6b9b20561a1 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 11 Apr 2023 11:37:15 +0100 Subject: [PATCH 26/57] fix: wrong tests --- src/actions/searchOffersActions.spec.js | 4 -- .../AdvancedSearchDesktop.spec.js | 54 +++++++++++++++++++ .../AdvancedSearchMobile.spec.js | 4 +- .../AdvancedSearch/useAdvancedSearch.spec.js | 34 ++++++++++++ .../HomePage/SearchArea/SearchArea.spec.js | 1 + .../SearchArea/useUrlSearchParams.spec.js | 10 +++- 6 files changed, 101 insertions(+), 6 deletions(-) diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index 4a42fde3..f886bf09 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -57,11 +57,7 @@ describe("Search Offers actions", () => { it("should return Set Show Hidden action", () => { -<<<<<<< HEAD const showHidden = true; -======= - const showHidden = "show_hidden"; ->>>>>>> tests: adds various tests to showHidden const expectedAction = { type: OfferSearchTypes.SET_SHOW_HIDDEN, showHidden, diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js index 55604f29..124d4fa7 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js @@ -25,6 +25,8 @@ const AdvancedSearchWrapper = ({ setJobType = () => { }, fields = [], setFields = () => { }, + showHidden, + setShowHidden = () => { }, technologies = [], setTechs = () => { }, resetAdvancedSearchFields, @@ -43,6 +45,7 @@ const AdvancedSearchWrapper = ({ enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, searchOffers, onMobileClose, setSearchValue, + showHidden, setShowHidden, }, AdvancedSearchControllerContext ); @@ -92,6 +95,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle job duration slider (on)", () => { const setShowJobDurationSliderMock = jest.fn(); + renderWithStoreAndTheme( { it("should toggle job duration slider (off)", () => { const setShowJobDurationSliderMock = jest.fn(); + renderWithStoreAndTheme( { fireEvent.click(screen.getByLabelText("Filter Job Duration")); expect(setShowJobDurationSliderMock).toHaveBeenCalledWith(false); }); + /* + it("should toggle show hidden (on)", () => { + const setShowHiddenMock = jest.fn(); + const sessionData = { isAdmin: true }; + + renderWithStoreAndTheme( + + + + + , + { initialState, theme } + ); + + fireEvent.click(screen.getByLabelText("Show Hidden Offers")); + expect(setShowHiddenMock).toHaveBeenCalledWith(true); + // Can't test that element is visible now (after toggling), since we can't emulate redux logic, wihtout having the whole tree, + // So, I'll just assert that when showJobDurationSlider=true, it shows correctly in the next test + }); + + it("should toggle show hidden (off)", () => { + const setShowHiddenMock = jest.fn(); + const sessionData = { isAdmin: true }; + + renderWithStoreAndTheme( + + + + + , + { initialState, theme } + ); + + fireEvent.click(screen.getByLabelText("Show Hidden Offers")); + expect(setShowHiddenMock).toHaveBeenCalledWith(false); + // Can't test that element is visible now (after toggling), since we can't emulate redux logic, wihtout having the whole tree, + // So, I'll just assert that when showJobDurationSlider=true, it shows correctly in the next test + });*/ + it("should render a fields selector with all field types", () => { diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js index a5809382..38426174 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js @@ -34,6 +34,8 @@ const AdvancedSearchWrapper = ({ onMobileClose, setSearchValue = () => { }, submitForm, + showHidden, + setShowHidden = () => { }, }) => { const { ContextProvider, @@ -44,7 +46,7 @@ const AdvancedSearchWrapper = ({ enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, searchOffers, onMobileClose, setSearchValue, - submitForm, + submitForm, showHidden, setShowHidden, }, AdvancedSearchControllerContext ); diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js index 3c20b381..f217721d 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js @@ -10,6 +10,7 @@ describe("useAdvancedSearch", () => { it("should return the correct props for job duration", () => { const showJobDurationSlider = false; + const showHidden = false; const setShowJobDurationSlider = () => {}; const setJobDuration = jest.fn(); const jobMinDuration = 0; @@ -22,6 +23,7 @@ describe("useAdvancedSearch", () => { setJobDuration, showJobDurationSlider, setShowJobDurationSlider, + showHidden, }); }); @@ -105,6 +107,7 @@ describe("useAdvancedSearch", () => { it("should return the correct props for reset button", () => { const showJobDurationSlider = false; + const showHidden = false; const jobType = `${INITIAL_JOB_TYPE}a`; const fields = ["test"]; const technologies = ["test"]; @@ -115,6 +118,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -126,6 +130,7 @@ describe("useAdvancedSearch", () => { // Initial Values - if this test fails remind yourself of checking if these are accurate let showJobDurationSlider = false; + let showHidden = false; let jobType = INITIAL_JOB_TYPE; let fields = []; let technologies = []; @@ -136,6 +141,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -143,6 +149,7 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(false); showJobDurationSlider = true; + showHidden = false; jobType = INITIAL_JOB_TYPE; fields = []; technologies = []; @@ -153,6 +160,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -160,6 +168,26 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(true); showJobDurationSlider = false; + showHidden = true; + jobType = INITIAL_JOB_TYPE; + fields = []; + technologies = []; + + testHook(() => { + useAdvancedSearchProps = useAdvancedSearch({ + showJobDurationSlider, + jobType, + fields, + technologies, + showHidden, + }); + }); + + ({ advancedOptionsActive } = useAdvancedSearchProps); + expect(advancedOptionsActive).toBe(true); + + showJobDurationSlider = false; + showHidden = false; jobType = `${INITIAL_JOB_TYPE}a`; fields = []; technologies = []; @@ -170,6 +198,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -177,6 +206,7 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(true); showJobDurationSlider = false; + showHidden = false; jobType = INITIAL_JOB_TYPE; fields = ["test"]; technologies = []; @@ -187,6 +217,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -194,6 +225,7 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(true); showJobDurationSlider = false; + showHidden = false; jobType = INITIAL_JOB_TYPE; fields = []; technologies = ["test"]; @@ -204,6 +236,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -217,6 +250,7 @@ describe("useAdvancedSearch", () => { useAdvancedSearchProps = useAdvancedSearch({ setFields: () => {}, setTechs: () => {}, + setShowHidden: () => {}, resetAdvancedSearchFields, }); }); diff --git a/src/components/HomePage/SearchArea/SearchArea.spec.js b/src/components/HomePage/SearchArea/SearchArea.spec.js index 3c497650..7b9979f1 100644 --- a/src/components/HomePage/SearchArea/SearchArea.spec.js +++ b/src/components/HomePage/SearchArea/SearchArea.spec.js @@ -250,6 +250,7 @@ describe("SearchArea", () => { setJobDuration={() => { }} setFields={() => { }} setJobType={() => { }} + setShowHidden={() => { }} onSubmit={onSubmit} fields={[]} technologies={[]} diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js index bbf770ad..6cec06bb 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js @@ -37,6 +37,7 @@ describe("useUrlSearchParams", () => { it.each([ ["jobDuration", [1, 2], [1, 2]], + ["showHidden", true, true], ["jobType", { target: { value: "test-job-type" } }, "test-job-type"], ["searchValue", "test-search-value", "test-search-value"], ["fields", ["TEST-FIELD-1", "TEST-FIELD-2"], ["TEST-FIELD-1", "TEST-FIELD-2"]], @@ -83,10 +84,15 @@ describe("useUrlSearchParams", () => { "jobMinDuration": minDuration, "jobMaxDuration": maxDuration, }; - } else if (fieldName === "techs") + } else if (fieldName === "techs") { params = { "technologies": expectedValue, }; + } else if (fieldName === "showHidden") { + params = { + "showHidden": expectedValue, + }; + } const expectedLocationSearch = `?${qs.stringify(params, { skipNulls: true, arrayFormat: "brackets" })}`; @@ -147,6 +153,7 @@ describe("useUrlSearchParams", () => { searchValue: "test-search-value", jobMinDuration: 2, jobMaxDuration: 9, + showHidden: true, fields: ["TEST-FIELD1", "TEST-FIELD2"], technologies: ["TEST-TECH"], jobType: "test-job-type", @@ -184,6 +191,7 @@ describe("useUrlSearchParams", () => { searchValue: "test-search-value", jobMinDuration: 2, jobMaxDuration: 9, + showHidden: true, fields: ["TEST-FIELD1", "TEST-FIELD2"], technologies: ["TEST-TECH"], jobType: "test-job-type", From 52d174f377fd0e6560faeb489a7077a184d4ae3a Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Mon, 22 May 2023 21:38:54 +0100 Subject: [PATCH 27/57] tests: progress --- .../AdvancedSearch/AdvancedSearchDesktop.spec.js | 13 +++++++------ .../HomePage/SearchArea/useUrlSearchParams.spec.js | 4 ---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js index 124d4fa7..62e71945 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js @@ -10,6 +10,7 @@ import FieldOptions from "../../../utils/offers/FieldOptions"; import TechOptions from "../../../utils/offers/TechOptions"; import { INITIAL_JOB_DURATION, INITIAL_JOB_TYPE } from "../../../../reducers/searchOffersReducer"; import { createTheme } from "@material-ui/core/styles"; +import useSession from "../../../../hooks/useSession"; import { MemoryRouter } from "react-router-dom"; @@ -141,15 +142,16 @@ describe("AdvancedSearchDesktop", () => { fireEvent.click(screen.getByLabelText("Filter Job Duration")); expect(setShowJobDurationSliderMock).toHaveBeenCalledWith(false); }); - /* + + jest.mock("../../../../hooks/useSession"); + it("should toggle show hidden (on)", () => { const setShowHiddenMock = jest.fn(); - const sessionData = { isAdmin: true }; + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); renderWithStoreAndTheme( { it("should toggle show hidden (off)", () => { const setShowHiddenMock = jest.fn(); - const sessionData = { isAdmin: true }; + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); renderWithStoreAndTheme( { expect(setShowHiddenMock).toHaveBeenCalledWith(false); // Can't test that element is visible now (after toggling), since we can't emulate redux logic, wihtout having the whole tree, // So, I'll just assert that when showJobDurationSlider=true, it shows correctly in the next test - });*/ + }); it("should render a fields selector with all field types", () => { diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js index 6cec06bb..bab7c08a 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js @@ -88,10 +88,6 @@ describe("useUrlSearchParams", () => { params = { "technologies": expectedValue, }; - } else if (fieldName === "showHidden") { - params = { - "showHidden": expectedValue, - }; } const expectedLocationSearch = `?${qs.stringify(params, { skipNulls: true, arrayFormat: "brackets" })}`; From bb00a3967c71fa232874878794e7e45fbcb0266f Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 23 May 2023 09:49:32 +0100 Subject: [PATCH 28/57] tests: fixed frontend tests Co-authored-by: diogofonte --- .../AdvancedSearch/AdvancedSearchDesktop.spec.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js index 62e71945..8a104013 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js @@ -14,6 +14,8 @@ import useSession from "../../../../hooks/useSession"; import { MemoryRouter } from "react-router-dom"; +jest.mock("../../../../hooks/useSession"); + const AdvancedSearchWrapper = ({ children, enableAdvancedSearchDefault, @@ -71,6 +73,7 @@ describe("AdvancedSearchDesktop", () => { describe("render", () => { it("should render a job selector with all job types", () => { + useSession.mockImplementation(() => ({})); renderWithStoreAndTheme( @@ -96,6 +99,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle job duration slider (on)", () => { const setShowJobDurationSliderMock = jest.fn(); + useSession.mockImplementation(() => ({})); renderWithStoreAndTheme( @@ -121,6 +125,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle job duration slider (off)", () => { const setShowJobDurationSliderMock = jest.fn(); + useSession.mockImplementation(() => ({})); renderWithStoreAndTheme( @@ -143,11 +148,10 @@ describe("AdvancedSearchDesktop", () => { expect(setShowJobDurationSliderMock).toHaveBeenCalledWith(false); }); - jest.mock("../../../../hooks/useSession"); it("should toggle show hidden (on)", () => { const setShowHiddenMock = jest.fn(); - useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { isAdmin: true } })); renderWithStoreAndTheme( @@ -170,7 +174,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle show hidden (off)", () => { const setShowHiddenMock = jest.fn(); - useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { isAdmin: true } })); renderWithStoreAndTheme( From 8329b290d115681336be6f8c39c4dd9327394894 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 29/57] feature: show hidden button style done on desktop --- .../AdvancedSearch/AdvancedSearchDesktop.js | 20 ++++++++++++++++++- .../AdvancedSearch/useAdvancedSearch.js | 3 +++ .../HomePage/SearchArea/SearchArea.js | 4 +++- .../HomePage/SearchArea/searchAreaStyle.js | 5 +++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index 9f226ac6..1c31337b 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -11,6 +11,7 @@ import { FormHelperText, Button, } from "@material-ui/core"; +import useSession from "../../../../hooks/useSession"; import JobOptions from "../../../utils/offers/JobOptions"; import useSearchAreaStyles from "../searchAreaStyle"; @@ -40,11 +41,19 @@ JobDurationCollapse.propTypes = { const AdvancedSearchDesktop = () => { + const { data, + isValidating, + error, + isLoggedIn, + } = useSession(); + const sessionData = (!isValidating && !error && isLoggedIn) ? data : null; + const classes = useSearchAreaStyles(); const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, - ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobDurationSliderProps, + ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + JobDurationSliderProps, } = useContext(AdvancedSearchControllerContext); return ( @@ -96,6 +105,7 @@ const AdvancedSearchDesktop = () => { /> {advancedOptions && +
+ {sessionData?.isAdmin && + } + label={JobHiddenSwitchLabel} + /> + }
+
} ); diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js index 7e2aca8f..17ab2b37 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js @@ -30,6 +30,8 @@ export default ({ const JobDurationSwitchLabel = "Filter Job Duration"; + const JobHiddenSwitchLabel = "Show Hidden Offers"; + const [advancedOptions, toggleAdvancedOptions] = useToggle(enableAdvancedSearchDefault); const JobTypeSelectorProps = { @@ -98,6 +100,7 @@ export default ({ JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, + JobHiddenSwitchLabel, JobDurationSliderProps, JobDurationSliderText, ResetButtonProps, diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js index 66a16970..9041c1c5 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -12,6 +12,7 @@ import { setShowJobDurationSlider, setTechs, setLoadUrlFromFilters, + hideOffer, } from "../../../actions/searchOffersActions"; import { INITIAL_JOB_TYPE, INITIAL_JOB_DURATION } from "../../../reducers/searchOffersReducer"; @@ -74,6 +75,7 @@ export const AdvancedSearchController = ({ technologies, setTechs: actualSetTechs, resetAdvancedSearchFields: actualResetAdvancedSearchFields, + hideOffer, }); const { search: searchOffers } = useOffersSearcher({ @@ -157,7 +159,7 @@ export const SearchArea = ({ onSubmit, searchValue, enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose, - loadUrlFromFilters, setLoadUrlFromFilters, + hideOffer, loadUrlFromFilters, setLoadUrlFromFilters, }, AdvancedSearchControllerContext ); diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index ebc6d021..14555fa9 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -88,4 +88,9 @@ export default makeStyles((theme) => ({ marginLeft: theme.spacing(-1), }, }, + spaceBtwn: { + "& > *": { + justifyContent: "space-between", + }, + }, })); From a6c683e3c2b6a95e86fcf0c1816f5994fe381197 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 13:08:42 +0000 Subject: [PATCH 30/57] feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid --- .../AdvancedSearch/AdvancedSearchDesktop.js | 30 ++++++++----------- .../HomePage/SearchArea/searchAreaStyle.js | 17 +++++++---- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index 1c31337b..d2f31681 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -103,28 +103,24 @@ const AdvancedSearchDesktop = () => { className: "chip-wrapper", }} /> - - {advancedOptions && -
- - {sessionData?.isAdmin && + +
+ {sessionData?.isAdmin && } label={JobHiddenSwitchLabel} /> - } -
- - } + } + ); }; diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 14555fa9..7db66521 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -24,7 +24,7 @@ export default makeStyles((theme) => ({ advancedSearchContainer: { display: "grid", gridTemplateColumns: "1fr 1fr", - gridTemplateRows: "1fr 0.7fr auto", + gridTemplateRows: "1fr 0.7fr 1fr 0.7fr", alignItems: "center", gridGap: "1em", }, @@ -82,15 +82,20 @@ export default makeStyles((theme) => ({ gridColumnStart: 2, }, resetBtnWrapper: { - display: "flex", + gridRowStart: 4, + gridColumnStart: 1, "& > *": { marginTop: theme.spacing(2), marginLeft: theme.spacing(-1), }, - }, - spaceBtwn: { - "& > *": { - justifyContent: "space-between", + "& .chip-wrapper": { + gridColumnStart: 2, + gridRowStart: 4, }, }, + jobHiddenSliderToggle: { + gridRowStart: 4, + gridColumnStart: 2, + + }, })); From 01cf55d097f29648ea73769073e82255e695746e Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 31/57] feat: showHidden is already working --- src/actions/searchOffersActions.js | 6 +++++ .../AdvancedSearch/AdvancedSearchDesktop.js | 22 +++++++++---------- .../AdvancedSearch/useAdvancedSearch.js | 12 ++++++++++ .../HomePage/SearchArea/SearchArea.js | 14 +++++++++--- .../HomePage/SearchArea/searchAreaStyle.js | 1 - src/reducers/searchOffersReducer.js | 6 +++++ 6 files changed, 46 insertions(+), 15 deletions(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index 4b62d82d..f0879abf 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -16,6 +16,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) => ({ @@ -106,3 +107,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 9041c1c5..80884497 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -13,6 +13,7 @@ import { setTechs, setLoadUrlFromFilters, hideOffer, + setShowHidden, } from "../../../actions/searchOffersActions"; import { INITIAL_JOB_TYPE, INITIAL_JOB_DURATION } from "../../../reducers/searchOffersReducer"; @@ -39,7 +40,7 @@ export const AdvancedSearchController = ({ enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose, - loadUrlFromFilters, setLoadUrlFromFilters, + loadUrlFromFilters, setLoadUrlFromFilters, showHidden, setShowHidden, }) => { const { @@ -76,6 +77,8 @@ export const AdvancedSearchController = ({ setTechs: actualSetTechs, resetAdvancedSearchFields: actualResetAdvancedSearchFields, hideOffer, + showHidden, + setShowHidden, }); const { search: searchOffers } = useOffersSearcher({ @@ -85,6 +88,7 @@ export const AdvancedSearchController = ({ jobType, fields, technologies, + showHidden, }); const submitForm = useCallback((e, updateUrl = true) => { @@ -143,7 +147,7 @@ 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, - loadUrlFromFilters, setLoadUrlFromFilters }) => { + loadUrlFromFilters, setLoadUrlFromFilters, showHidden, setShowHidden }) => { const classes = useSearchAreaStyles(); const { @@ -159,7 +163,7 @@ export const SearchArea = ({ onSubmit, searchValue, enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, setSearchValue, onMobileClose, - hideOffer, loadUrlFromFilters, setLoadUrlFromFilters, + hideOffer, loadUrlFromFilters, setLoadUrlFromFilters, showHidden, setShowHidden, }, AdvancedSearchControllerContext ); @@ -226,6 +230,8 @@ SearchArea.propTypes = { setTechs: PropTypes.func.isRequired, setShowJobDurationSlider: PropTypes.func.isRequired, onMobileClose: PropTypes.func, + showHidden: PropTypes.bool, + setShowHidden: PropTypes.func, advanced: PropTypes.bool, }; @@ -238,6 +244,7 @@ export const mapStateToProps = ({ offerSearch }) => ({ technologies: offerSearch.technologies, showJobDurationSlider: offerSearch.filterJobDuration, loadUrlFromFilters: offerSearch.loadUrlFromFilters, + showHidden: offerSearch.showHidden, }); export const mapDispatchToProps = (dispatch) => ({ @@ -247,6 +254,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()), setLoadUrlFromFilters: (value) => dispatch(setLoadUrlFromFilters(value)), }); 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 30afa317..1aed1d33 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) => { @@ -112,6 +113,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; } From b64b57f3c03201e9dee640517a232a2e91823a9d Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 24 Jan 2023 16:18:09 +0000 Subject: [PATCH 32/57] test: adds showHidden test --- src/actions/searchOffersActions.js | 1 + src/reducers/searchOffersReducer.spec.js | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index f0879abf..233484f3 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -106,6 +106,7 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setJobDuration(INITIAL_JOB_DURATION, INITIAL_JOB_DURATION + 1)); dispatch(setFields([])); dispatch(setTechs([])); + dispatch(setShowHidden(false)); }; export const setShowHidden = (showHidden) => ({ diff --git a/src/reducers/searchOffersReducer.spec.js b/src/reducers/searchOffersReducer.spec.js index f213ae62..f4378de4 100644 --- a/src/reducers/searchOffersReducer.spec.js +++ b/src/reducers/searchOffersReducer.spec.js @@ -14,6 +14,7 @@ import { disableOffer, companyEnableOffer, adminEnableOffer, + setShowHidden, } from "../actions/searchOffersActions"; describe("Search Offers Reducer", () => { @@ -26,8 +27,10 @@ describe("Search Offers Reducer", () => { offers: [], fields: [], technologies: [], + showHidden: false, loading: false, - error: null }); + error: null, + }); }); it("should set offers when setSearchOffers action is called", () => { @@ -111,6 +114,17 @@ describe("Search Offers Reducer", () => { expect(state.fields).toStrictEqual(["test1", "test2"]); }); + it("should set advanced search fields when setShowHidden action is called", () => { + const state = searchOffersState( + { + showHidden: false, + }, + setShowHidden(true) + ); + + expect(state.showHidden).toBe(true); + }); + it("should set advanced search technologies when setTechs action is called", () => { const state = searchOffersState( { From 223b565846904e3547840c36b86e7783c8897fb2 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 33/57] feature: show hidden button style done on desktop --- src/components/HomePage/SearchArea/searchAreaStyle.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index c13dde37..4a7d08e8 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -97,4 +97,9 @@ export default makeStyles((theme) => ({ gridRowStart: 4, gridColumnStart: 2, }, + spaceBtwn: { + "& > *": { + justifyContent: "space-between", + }, + }, })); From a2f2c762f66b0a13747e5018724ba280fcb4f753 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 13:08:42 +0000 Subject: [PATCH 34/57] feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid --- src/components/HomePage/SearchArea/searchAreaStyle.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 4a7d08e8..66d881c3 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -91,6 +91,7 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, +<<<<<<< HEAD }, }, jobHiddenSliderToggle: { @@ -100,6 +101,13 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", +======= +>>>>>>> feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid }, }, + jobHiddenSliderToggle: { + gridRowStart: 4, + gridColumnStart: 2, + + }, })); From 57708745a60c3e74b4c0f54f9218f4afdd756278 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 35/57] feat: showHidden is already working --- src/components/HomePage/SearchArea/searchAreaStyle.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 66d881c3..0ac78170 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -108,6 +108,5 @@ export default makeStyles((theme) => ({ jobHiddenSliderToggle: { gridRowStart: 4, gridColumnStart: 2, - }, })); From 2f89999b2a314a5c5a3da02f331fb5103671e46c Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 7 Feb 2023 14:32:38 +0000 Subject: [PATCH 36/57] tests: adds various tests to showHidden --- src/actions/searchOffersActions.js | 10 +++++----- src/actions/searchOffersActions.spec.js | 12 ++++++++++++ .../HomePage/SearchArea/SearchArea.spec.js | 12 ++++++++++++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index 233484f3..b0f99d91 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -100,6 +100,11 @@ export const adminEnableOffer = (offerIdx) => ({ offerIdx, }); +export const setShowHidden = (showHidden) => ({ + type: OfferSearchTypes.SET_SHOW_HIDDEN, + showHidden, +}); + export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setJobType(INITIAL_JOB_TYPE)); dispatch(setShowJobDurationSlider(false)); @@ -108,8 +113,3 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setTechs([])); dispatch(setShowHidden(false)); }; - -export const setShowHidden = (showHidden) => ({ - type: OfferSearchTypes.SET_SHOW_HIDDEN, - showHidden, -}); diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index fe87c2d6..c117e1dd 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -12,6 +12,7 @@ import { resetAdvancedSearchFields, setOffersFetchError, resetOffersFetchError, + setShowHidden, } from "./searchOffersActions"; import { INITIAL_JOB_TYPE, INITIAL_JOB_DURATION } from "../reducers/searchOffersReducer"; @@ -54,6 +55,17 @@ describe("Search Offers actions", () => { expect(setSearchValue(value)).toEqual(expectedAction); }); + it("should return Set Show Hidden action", () => { + + const showHidden = "show_hidden"; + const expectedAction = { + type: OfferSearchTypes.SET_SHOW_HIDDEN, + showHidden, + }; + + expect(setShowHidden(showHidden)).toEqual(expectedAction); + }); + it("should return Set Job Duration action", () => { const jobDuration = [1, 2]; diff --git a/src/components/HomePage/SearchArea/SearchArea.spec.js b/src/components/HomePage/SearchArea/SearchArea.spec.js index 0304242d..4debe557 100644 --- a/src/components/HomePage/SearchArea/SearchArea.spec.js +++ b/src/components/HomePage/SearchArea/SearchArea.spec.js @@ -79,6 +79,15 @@ describe("SearchArea", () => { { }} + setTechs={() => { }} + setJobDuration={() => { }} + setFields={() => { }} + setJobType={() => { }} + setSearchValue={() => { }} + setShowHidden={() => { }} /> , { initialState, theme } @@ -197,6 +206,7 @@ describe("SearchArea", () => { setJobDuration={() => { }} setFields={() => { }} setJobType={() => { }} + setShowHidden={() => { }} onSubmit={onSubmit} fields={[]} technologies={[]} @@ -307,6 +317,7 @@ describe("SearchArea", () => { jobDuration: [1, 2], fields: ["field1", "field2"], technologies: ["tech1", "tech2"], + showHidden: true, }, }; expect(mapStateToProps(mockState)).toEqual({ @@ -316,6 +327,7 @@ describe("SearchArea", () => { jobMaxDuration: 2, fields: ["field1", "field2"], technologies: ["tech1", "tech2"], + showHidden: true, }); }); From 9a7b4e212ca343528ed2ce8bed2c8fa70f2be97b Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Sun, 12 Feb 2023 11:50:59 +0000 Subject: [PATCH 37/57] test: adds more showHidden tests Co-authored-by: Diogo Fonte diogo.fonte2000@gmail.com --- src/actions/searchOffersActions.spec.js | 2 +- src/components/HomePage/SearchArea/SearchArea.spec.js | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index c117e1dd..f886bf09 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -57,7 +57,7 @@ describe("Search Offers actions", () => { it("should return Set Show Hidden action", () => { - const showHidden = "show_hidden"; + const showHidden = true; const expectedAction = { type: OfferSearchTypes.SET_SHOW_HIDDEN, showHidden, diff --git a/src/components/HomePage/SearchArea/SearchArea.spec.js b/src/components/HomePage/SearchArea/SearchArea.spec.js index 4debe557..3c497650 100644 --- a/src/components/HomePage/SearchArea/SearchArea.spec.js +++ b/src/components/HomePage/SearchArea/SearchArea.spec.js @@ -7,6 +7,7 @@ import { setFields, setTechs, setShowJobDurationSlider, + setShowHidden, } from "../../../actions/searchOffersActions"; import { createTheme } from "@material-ui/core"; import { renderWithStoreAndTheme, screen, fireEvent, act } from "../../../test-utils"; @@ -28,7 +29,7 @@ const SearchAreaWrapper = ({ searchValue = "", jobType = INITIAL_JOB_TYPE, jobDuration = [null, null], filterJobDuration = false, showJobDurationSlider = false, fields = [], technologies = [], setShowJobDurationSlider = () => { }, setTechs = () => { }, setJobDuration = () => { }, setFields = () => { }, setJobType = () => { }, - setSearchValue = () => { }, onSubmit = () => {}, + setSearchValue = () => { }, onSubmit = () => {}, setShowHidden = () => { }, }) => ( ); @@ -63,6 +65,7 @@ SearchAreaWrapper.propTypes = { setShowJobDurationSlider: PropTypes.func.isRequired, jobDuration: PropTypes.number, filterJobDuration: PropTypes.bool, + setShowHidden: PropTypes.bool, }; describe("SearchArea", () => { @@ -356,6 +359,10 @@ describe("SearchArea", () => { props.setShowJobDurationSlider(filterJobDuration); expect(dispatch).toHaveBeenCalledWith(setShowJobDurationSlider(false)); + const showHidden = true; + props.setShowHidden(showHidden); + expect(dispatch).toHaveBeenCalledWith(setShowHidden(true)); + dispatch.mockClear(); props.resetAdvancedSearchFields(); expect(dispatch).toHaveBeenCalled(); From 69792ce66fda686b856d063d0d6d8c3dff426286 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 14:30:54 +0000 Subject: [PATCH 38/57] feature: adds show hidden offers to mobile --- .../AdvancedSearch/AdvancedSearchMobile.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js index fc512e09..892e58e3 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js @@ -24,6 +24,7 @@ import MultiOptionAutocomplete from "../../../utils/form/MultiOptionAutocomplete import JobOptions from "../../../utils/offers/JobOptions"; import useSearchAreaStyles from "../searchAreaStyle"; import { AdvancedSearchControllerContext } from "../SearchArea"; +import useSession from "../../../../hooks/useSession"; const JobDurationCollapse = ({ className, JobDurationCollapseProps, JobDurationSliderProps, sliderText }) => ( { const { advancedOptions, toggleAdvancedOptions, searchValue, submitForm, setSearchValue, FieldsSelectorProps, TechsSelectorProps, resetAdvancedSearch, JobDurationSliderText, ResetButtonProps, - JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, JobDurationSliderProps, - onMobileClose, + JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + JobDurationSliderProps, onMobileClose, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); const handleResetClick = (e) => { @@ -99,6 +100,13 @@ const AdvancedSearchMobile = () => { }; + const { data, + isValidating, + error, + isLoggedIn, + } = useSession(); + const sessionData = (!isValidating && !error && isLoggedIn) ? data : null; + const classes = useSearchAreaStyles(); return ( @@ -151,6 +159,13 @@ const AdvancedSearchMobile = () => { JobDurationSliderProps={JobDurationSliderProps} sliderText={JobDurationSliderText} /> + {sessionData?.isAdmin && + } + label={JobHiddenSwitchLabel} + /> + } From 9fd299e726868fbf5b6478091776d5a479fc82ab Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 14:41:51 +0000 Subject: [PATCH 39/57] fix: fixes search results bug in mobile --- src/components/HomePage/SearchArea/searchAreaStyle.js | 1 - .../SearchResultsWidget/SearchResultsMobile.js | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 0ac78170..bb7a5f8c 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -19,7 +19,6 @@ export default makeStyles((theme) => ({ }, advancedSearchOuterWrapper: { gridColumn: "1 / span 2", - }, advancedSearchContainer: { display: "grid", diff --git a/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js b/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js index d27d1497..0dd5072c 100644 --- a/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js +++ b/src/components/HomePage/SearchResultsArea/SearchResultsWidget/SearchResultsMobile.js @@ -15,7 +15,7 @@ const OffersList = ({ toggleShowSearchFilters, offers, moreOffersLoading, loadMoreOffers, searchQueryToken, }) => ( - + {noOffers ?
@@ -45,6 +45,7 @@ OffersList.propTypes = { classes: PropTypes.shape({ reviseCriteriaErrorMessage: PropTypes.string.isRequired, fullHeight: PropTypes.string.isRequired, + heightOffersList: PropTypes.string.isRequired, errorLoadingOffersIcon: PropTypes.string.isRequired, noOffersColumn: PropTypes.string.isRequired, offerItemsContainer: PropTypes.string.isRequired, @@ -142,6 +143,7 @@ const SearchResultsMobile = () => { errorLoadingOffersIcon: classes.errorLoadingOffersIcon, reviseCriteriaErrorMessage: classes.reviseCriteriaErrorMessage, fullHeight: classes.fullHeight, + heightOffersList: classes.heightOffersList, offerItemsContainer: classes.offerItemsContainer, }; From f4221fa137c2fbe7fabee34f43bf548260076bd4 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 18:47:23 +0000 Subject: [PATCH 40/57] feature: adds show hidden to url Co-authored by: CarlosMealha up202005954@edu.fc.up.pt --- .../AdvancedSearch/AdvancedSearchDesktop.js | 6 +++--- .../SearchArea/AdvancedSearch/AdvancedSearchMobile.js | 11 ++++++----- .../SearchArea/AdvancedSearch/useAdvancedSearch.js | 4 ++-- src/components/HomePage/SearchArea/SearchArea.js | 7 ++++++- src/components/HomePage/SearchArea/searchAreaStyle.js | 5 +---- .../HomePage/SearchArea/useUrlSearchParams.js | 11 +++++++++++ 6 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index ae88745f..daab3f98 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -52,7 +52,7 @@ const AdvancedSearchDesktop = () => { const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, - ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, JobDurationSliderProps, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -115,9 +115,9 @@ const AdvancedSearchDesktop = () => {
{sessionData?.isAdmin && } - label={JobHiddenSwitchLabel} + label={ShowHiddenSwitchLabel} /> }
diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js index 892e58e3..9ce72962 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.js @@ -74,7 +74,7 @@ const AdvancedSearchMobile = () => { const { advancedOptions, toggleAdvancedOptions, searchValue, submitForm, setSearchValue, FieldsSelectorProps, TechsSelectorProps, resetAdvancedSearch, JobDurationSliderText, ResetButtonProps, - JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, + JobTypeSelectorProps, JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, JobDurationSliderProps, onMobileClose, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -97,7 +97,6 @@ const AdvancedSearchMobile = () => { const handleExit = () => { if (shouldSubmitForm) submitForm(); if (onMobileClose) onMobileClose(); - }; const { data, @@ -161,11 +160,11 @@ const AdvancedSearchMobile = () => { /> {sessionData?.isAdmin && } - label={JobHiddenSwitchLabel} + label={ShowHiddenSwitchLabel} /> - } + } @@ -205,6 +204,8 @@ AdvancedSearchMobile.propTypes = { JobDurationSwitchLabel: PropTypes.string, JobDurationSliderProps: PropTypes.object, onMobileClose: PropTypes.func, + ShowHiddenSwitchProps: PropTypes.object, + ShowHiddenSwitchLabel: PropTypes.string, }; export default AdvancedSearchMobile; diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js index 39f73710..9f08b7af 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js @@ -32,7 +32,7 @@ export default ({ const JobDurationSwitchLabel = "Filter Job Duration"; - const JobHiddenSwitchLabel = "Show Hidden Offers"; + const ShowHiddenSwitchLabel = "Show Hidden Offers"; const [advancedOptions, toggleAdvancedOptions] = useToggle(enableAdvancedSearchDefault); @@ -111,10 +111,10 @@ export default ({ JobDurationSwitchProps, JobDurationCollapseProps, JobDurationSwitchLabel, - JobHiddenSwitchLabel, JobDurationSliderProps, JobDurationSliderText, ResetButtonProps, ShowHiddenSwitchProps, + ShowHiddenSwitchLabel, }; }; diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js index 80884497..280e3d4b 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -53,6 +53,7 @@ export const AdvancedSearchController = ({ resetAdvancedSearchFields: actualResetAdvancedSearchFields, setSearchValue: setUrlSearchValue, setUrlFilters, + setShowHidden: actualSetShowHidden, } = useSearchParams({ setJobDuration, setShowJobDurationSlider, @@ -60,6 +61,7 @@ export const AdvancedSearchController = ({ setFields, setTechs, resetAdvancedSearchFields, + setShowHidden, }); const advancedSearchProps = useAdvancedSearch({ @@ -78,7 +80,7 @@ export const AdvancedSearchController = ({ resetAdvancedSearchFields: actualResetAdvancedSearchFields, hideOffer, showHidden, - setShowHidden, + setShowHidden: actualSetShowHidden, }); const { search: searchOffers } = useOffersSearcher({ @@ -125,6 +127,9 @@ export const AdvancedSearchController = ({ setSearchValue(queryParams.searchValue); } + setShowHidden(queryParams.showHidden === "false"); + + setSearchValue(queryParams.searchValue); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index bb7a5f8c..8ceeaf62 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -90,7 +90,6 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, -<<<<<<< HEAD }, }, jobHiddenSliderToggle: { @@ -100,11 +99,9 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", -======= ->>>>>>> feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid }, }, - jobHiddenSliderToggle: { + showHiddenToggle: { gridRowStart: 4, gridColumnStart: 2, }, diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index e499456e..ab08b96a 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -20,6 +20,7 @@ export default ({ setTechs, setSearchValue, resetAdvancedSearchFields, + setShowHidden, } = {}) => { const location = useLocation(); @@ -85,6 +86,15 @@ export default ({ }, [changeURLFilters, location, queryParams, setShowJobDurationSlider]); + const actualSetShowHidden = useCallback((showHiddenToggle) => { + + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + + if (setShowHidden) + setShowHidden(showHiddenToggle); + + }, [changeURLFilters, location, queryParams, setShowHidden]); + const actualSetFields = useCallback((fields) => { const sanitizedFields = ensureArray(fields); @@ -172,5 +182,6 @@ export default ({ setSearchValue: actualSetSearchValue, resetAdvancedSearchFields: actualResetAdvancedSearchFields, setUrlFilters, + setShowHidden: actualSetShowHidden, }; }; From 56ea8a7de0a7ee40138ea2b868f741e290fbdb33 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Mon, 6 Mar 2023 22:45:45 +0000 Subject: [PATCH 41/57] reset fields working with show hidden offers --- .../HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js | 3 ++- src/components/HomePage/SearchArea/useUrlSearchParams.js | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js index 9f08b7af..f2f4b442 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.js @@ -87,7 +87,8 @@ export default ({ const advancedOptionsActive = showJobDurationSlider || (jobType !== INITIAL_JOB_TYPE) || fields.length !== 0 - || technologies.length !== 0; + || technologies.length !== 0 + || showHidden; const ResetButtonProps = { disabled: !advancedOptionsActive, diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index ab08b96a..d05a6b81 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,10 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + if(!showHiddenToggle) + clearURLFilters(location); + else + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); From a9427b7263c36e81f7098fa67bf0f8735c2b3be7 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 42/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index d05a6b81..4051ec2d 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,7 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - if(!showHiddenToggle) + if (!showHiddenToggle) clearURLFilters(location); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); @@ -96,7 +96,7 @@ export default ({ if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, setShowHidden]); + }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); const actualSetFields = useCallback((fields) => { From 5dcf960297655397a7ce4ef031b69419e4ed67c7 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 43/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index 4051ec2d..1da16034 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -89,7 +89,7 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { if (!showHiddenToggle) - clearURLFilters(location); + clearURLFilters(location, queryParams, { showHidden: !showHiddenToggle }); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); From 043e35af5beae1079527c25b711bc9ac3cd6c287 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 44/57] feature: show hidden button style done on desktop --- src/components/HomePage/SearchArea/searchAreaStyle.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 8ceeaf62..2fb8031b 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -92,10 +92,6 @@ export default makeStyles((theme) => ({ gridRowStart: 4, }, }, - jobHiddenSliderToggle: { - gridRowStart: 4, - gridColumnStart: 2, - }, spaceBtwn: { "& > *": { justifyContent: "space-between", From 9a3493d8285103a0616bde60ecc20dea7be6eb02 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 45/57] feat: showHidden is already working --- src/actions/searchOffersActions.js | 5 +++++ .../SearchArea/AdvancedSearch/AdvancedSearchDesktop.js | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index b0f99d91..cf2ba640 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -113,3 +113,8 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setTechs([])); dispatch(setShowHidden(false)); }; + +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 daab3f98..df4d0655 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -52,7 +52,11 @@ const AdvancedSearchDesktop = () => { const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, +<<<<<<< HEAD ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, +======= + ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, +>>>>>>> feat: showHidden is already working JobDurationSliderProps, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -115,9 +119,15 @@ const AdvancedSearchDesktop = () => { {sessionData?.isAdmin && } label={ShowHiddenSwitchLabel} +======= + className={classes.jobHiddenSliderToggle} + control={} + label={JobHiddenSwitchLabel} +>>>>>>> feat: showHidden is already working /> } From 4c8a84a5b906444a7f1bc9c5dd8ecde0dcc31505 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Fri, 28 Oct 2022 14:00:48 +0100 Subject: [PATCH 46/57] feature: show hidden button style done on desktop --- .../AdvancedSearch/AdvancedSearchDesktop.js | 13 ++++++++++++- .../HomePage/SearchArea/searchAreaStyle.js | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index df4d0655..530fc84c 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -107,6 +107,9 @@ const AdvancedSearchDesktop = () => { className: "chip-wrapper", }} /> + + {advancedOptions && +
+ {sessionData?.isAdmin && + } + label={JobHiddenSwitchLabel} + /> + }
{sessionData?.isAdmin && { >>>>>>> feat: showHidden is already working /> } - +
+ } ); }; diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 2fb8031b..839eae51 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -101,4 +101,9 @@ export default makeStyles((theme) => ({ gridRowStart: 4, gridColumnStart: 2, }, + spaceBtwn: { + "& > *": { + justifyContent: "space-between", + }, + }, })); From 8248a7493418c1ad80704bc3e07fddd0fa3ddf0d Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 13:08:42 +0000 Subject: [PATCH 47/57] feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid --- .../AdvancedSearch/AdvancedSearchDesktop.js | 33 +++++++------------ .../HomePage/SearchArea/searchAreaStyle.js | 8 +++++ 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index 530fc84c..d041718b 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -107,26 +107,16 @@ const AdvancedSearchDesktop = () => { className: "chip-wrapper", }} /> - - {advancedOptions && -
- - {sessionData?.isAdmin && - } - label={JobHiddenSwitchLabel} - /> - } -
+ +
{sessionData?.isAdmin && { label={ShowHiddenSwitchLabel} ======= className={classes.jobHiddenSliderToggle} - control={} + control={} label={JobHiddenSwitchLabel} >>>>>>> feat: showHidden is already working /> } - - } + ); }; diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 839eae51..b9e47e4f 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -90,6 +90,7 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, +<<<<<<< HEAD }, }, spaceBtwn: { @@ -104,6 +105,13 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", +======= +>>>>>>> dc9ea8f (feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid) }, }, + jobHiddenSliderToggle: { + gridRowStart: 4, + gridColumnStart: 2, + + }, })); From ba8601e679550b0a4c28a81f4684f71d2638c45c Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 15 Nov 2022 14:18:10 +0000 Subject: [PATCH 48/57] feat: showHidden is already working --- .../AdvancedSearch/AdvancedSearchDesktop.js | 20 +++++++++---------- .../HomePage/SearchArea/searchAreaStyle.js | 1 - 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js index d041718b..df4d0655 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -108,15 +108,15 @@ const AdvancedSearchDesktop = () => { }} />
- -
+ + {sessionData?.isAdmin && { label={ShowHiddenSwitchLabel} ======= className={classes.jobHiddenSliderToggle} - control={} + control={} label={JobHiddenSwitchLabel} >>>>>>> feat: showHidden is already working /> diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index b9e47e4f..46b3591f 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -112,6 +112,5 @@ export default makeStyles((theme) => ({ jobHiddenSliderToggle: { gridRowStart: 4, gridColumnStart: 2, - }, })); From 45389c27323257d68f3774e641a11701bebf5dbb Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 7 Feb 2023 14:32:38 +0000 Subject: [PATCH 49/57] tests: adds various tests to showHidden --- src/actions/searchOffersActions.js | 5 ----- src/actions/searchOffersActions.spec.js | 4 ++++ .../AdvancedSearch/AdvancedSearchDesktop.js | 10 ---------- .../HomePage/SearchArea/searchAreaStyle.js | 12 ------------ 4 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/actions/searchOffersActions.js b/src/actions/searchOffersActions.js index cf2ba640..b0f99d91 100644 --- a/src/actions/searchOffersActions.js +++ b/src/actions/searchOffersActions.js @@ -113,8 +113,3 @@ export const resetAdvancedSearchFields = () => (dispatch) => { dispatch(setTechs([])); dispatch(setShowHidden(false)); }; - -export const setShowHidden = (showHidden) => ({ - type: OfferSearchTypes.SET_SHOW_HIDDEN, - showHidden, -}); diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index f886bf09..4a42fde3 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -57,7 +57,11 @@ describe("Search Offers actions", () => { it("should return Set Show Hidden action", () => { +<<<<<<< HEAD const showHidden = true; +======= + const showHidden = "show_hidden"; +>>>>>>> tests: adds various tests to showHidden const expectedAction = { 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 df4d0655..daab3f98 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.js @@ -52,11 +52,7 @@ const AdvancedSearchDesktop = () => { const { advancedOptions, resetAdvancedSearch, FieldsSelectorProps, TechsSelectorProps, JobTypeSelectorProps, JobDurationSwitchProps, -<<<<<<< HEAD ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, ShowHiddenSwitchLabel, -======= - ResetButtonProps, JobDurationSliderText, JobDurationCollapseProps, JobDurationSwitchLabel, JobHiddenSwitchLabel, ->>>>>>> feat: showHidden is already working JobDurationSliderProps, ShowHiddenSwitchProps, } = useContext(AdvancedSearchControllerContext); @@ -119,15 +115,9 @@ const AdvancedSearchDesktop = () => { {sessionData?.isAdmin && } label={ShowHiddenSwitchLabel} -======= - className={classes.jobHiddenSliderToggle} - control={} - label={JobHiddenSwitchLabel} ->>>>>>> feat: showHidden is already working /> } diff --git a/src/components/HomePage/SearchArea/searchAreaStyle.js b/src/components/HomePage/SearchArea/searchAreaStyle.js index 46b3591f..62fd8c34 100644 --- a/src/components/HomePage/SearchArea/searchAreaStyle.js +++ b/src/components/HomePage/SearchArea/searchAreaStyle.js @@ -90,12 +90,6 @@ export default makeStyles((theme) => ({ "& .chip-wrapper": { gridColumnStart: 2, gridRowStart: 4, -<<<<<<< HEAD - }, - }, - spaceBtwn: { - "& > *": { - justifyContent: "space-between", }, }, showHiddenToggle: { @@ -105,12 +99,6 @@ export default makeStyles((theme) => ({ spaceBtwn: { "& > *": { justifyContent: "space-between", -======= ->>>>>>> dc9ea8f (feat: inserted the reset advanced search and show hidden offers buttons inside of the advancedSearchContainer grid) }, }, - jobHiddenSliderToggle: { - gridRowStart: 4, - gridColumnStart: 2, - }, })); From 7c0378ab1abd2f4d42a277646d223ca50e576a7f Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 28 Feb 2023 18:47:23 +0000 Subject: [PATCH 50/57] feature: adds show hidden to url Co-authored by: CarlosMealha up202005954@edu.fc.up.pt --- src/components/HomePage/SearchArea/SearchArea.js | 2 ++ src/components/HomePage/SearchArea/useUrlSearchParams.js | 7 ++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js index 280e3d4b..9a21d11e 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -129,6 +129,8 @@ export const AdvancedSearchController = ({ } setShowHidden(queryParams.showHidden === "false"); + setShowHidden(queryParams.showHidden === "false"); + setSearchValue(queryParams.searchValue); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index 1da16034..ab08b96a 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,15 +88,12 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - if (!showHiddenToggle) - clearURLFilters(location, queryParams, { showHidden: !showHiddenToggle }); - else - changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); + }, [changeURLFilters, location, queryParams, setShowHidden]); const actualSetFields = useCallback((fields) => { From bb3989475f204de8dd008cb783639d0fc4a57614 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Mon, 6 Mar 2023 22:45:45 +0000 Subject: [PATCH 51/57] reset fields working with show hidden offers --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index ab08b96a..d05a6b81 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,10 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); + if(!showHiddenToggle) + clearURLFilters(location); + else + changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); From e01a861ac06eeaa69c6db024bd56194f3e3d825c Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 52/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index d05a6b81..4051ec2d 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -88,7 +88,7 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { - if(!showHiddenToggle) + if (!showHiddenToggle) clearURLFilters(location); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); @@ -96,7 +96,7 @@ export default ({ if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, setShowHidden]); + }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); const actualSetFields = useCallback((fields) => { From b7412a048774250a2a9901737ef58f673b1baaf4 Mon Sep 17 00:00:00 2001 From: diogofonte Date: Tue, 7 Mar 2023 13:02:03 +0000 Subject: [PATCH 53/57] fix lint error --- src/components/HomePage/SearchArea/useUrlSearchParams.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.js b/src/components/HomePage/SearchArea/useUrlSearchParams.js index 4051ec2d..6c328fd7 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.js @@ -89,14 +89,14 @@ export default ({ const actualSetShowHidden = useCallback((showHiddenToggle) => { if (!showHiddenToggle) - clearURLFilters(location); + changeURLFilters(location, queryParams, { showHidden: null }); else changeURLFilters(location, queryParams, { showHidden: showHiddenToggle }); if (setShowHidden) setShowHidden(showHiddenToggle); - }, [changeURLFilters, location, queryParams, clearURLFilters, setShowHidden]); + }, [changeURLFilters, location, queryParams, setShowHidden]); const actualSetFields = useCallback((fields) => { From b013fef0f7460f2dee203fb174a2729225c433c5 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 11 Apr 2023 11:37:15 +0100 Subject: [PATCH 54/57] fix: wrong tests --- src/actions/searchOffersActions.spec.js | 4 -- .../AdvancedSearchDesktop.spec.js | 54 +++++++++++++++++++ .../AdvancedSearchMobile.spec.js | 4 +- .../AdvancedSearch/useAdvancedSearch.spec.js | 34 ++++++++++++ .../HomePage/SearchArea/SearchArea.spec.js | 1 + .../SearchArea/useUrlSearchParams.spec.js | 10 +++- 6 files changed, 101 insertions(+), 6 deletions(-) diff --git a/src/actions/searchOffersActions.spec.js b/src/actions/searchOffersActions.spec.js index 4a42fde3..f886bf09 100644 --- a/src/actions/searchOffersActions.spec.js +++ b/src/actions/searchOffersActions.spec.js @@ -57,11 +57,7 @@ describe("Search Offers actions", () => { it("should return Set Show Hidden action", () => { -<<<<<<< HEAD const showHidden = true; -======= - const showHidden = "show_hidden"; ->>>>>>> tests: adds various tests to showHidden const expectedAction = { type: OfferSearchTypes.SET_SHOW_HIDDEN, showHidden, diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js index 55604f29..124d4fa7 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js @@ -25,6 +25,8 @@ const AdvancedSearchWrapper = ({ setJobType = () => { }, fields = [], setFields = () => { }, + showHidden, + setShowHidden = () => { }, technologies = [], setTechs = () => { }, resetAdvancedSearchFields, @@ -43,6 +45,7 @@ const AdvancedSearchWrapper = ({ enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, searchOffers, onMobileClose, setSearchValue, + showHidden, setShowHidden, }, AdvancedSearchControllerContext ); @@ -92,6 +95,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle job duration slider (on)", () => { const setShowJobDurationSliderMock = jest.fn(); + renderWithStoreAndTheme( { it("should toggle job duration slider (off)", () => { const setShowJobDurationSliderMock = jest.fn(); + renderWithStoreAndTheme( { fireEvent.click(screen.getByLabelText("Filter Job Duration")); expect(setShowJobDurationSliderMock).toHaveBeenCalledWith(false); }); + /* + it("should toggle show hidden (on)", () => { + const setShowHiddenMock = jest.fn(); + const sessionData = { isAdmin: true }; + + renderWithStoreAndTheme( + + + + + , + { initialState, theme } + ); + + fireEvent.click(screen.getByLabelText("Show Hidden Offers")); + expect(setShowHiddenMock).toHaveBeenCalledWith(true); + // Can't test that element is visible now (after toggling), since we can't emulate redux logic, wihtout having the whole tree, + // So, I'll just assert that when showJobDurationSlider=true, it shows correctly in the next test + }); + + it("should toggle show hidden (off)", () => { + const setShowHiddenMock = jest.fn(); + const sessionData = { isAdmin: true }; + + renderWithStoreAndTheme( + + + + + , + { initialState, theme } + ); + + fireEvent.click(screen.getByLabelText("Show Hidden Offers")); + expect(setShowHiddenMock).toHaveBeenCalledWith(false); + // Can't test that element is visible now (after toggling), since we can't emulate redux logic, wihtout having the whole tree, + // So, I'll just assert that when showJobDurationSlider=true, it shows correctly in the next test + });*/ + it("should render a fields selector with all field types", () => { diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js index a5809382..38426174 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchMobile.spec.js @@ -34,6 +34,8 @@ const AdvancedSearchWrapper = ({ onMobileClose, setSearchValue = () => { }, submitForm, + showHidden, + setShowHidden = () => { }, }) => { const { ContextProvider, @@ -44,7 +46,7 @@ const AdvancedSearchWrapper = ({ enableAdvancedSearchDefault, showJobDurationSlider, setShowJobDurationSlider, jobMinDuration, jobMaxDuration, setJobDuration, jobType, setJobType, fields, setFields, technologies, setTechs, resetAdvancedSearchFields, onSubmit, searchValue, searchOffers, onMobileClose, setSearchValue, - submitForm, + submitForm, showHidden, setShowHidden, }, AdvancedSearchControllerContext ); diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js index 3c20b381..f217721d 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/useAdvancedSearch.spec.js @@ -10,6 +10,7 @@ describe("useAdvancedSearch", () => { it("should return the correct props for job duration", () => { const showJobDurationSlider = false; + const showHidden = false; const setShowJobDurationSlider = () => {}; const setJobDuration = jest.fn(); const jobMinDuration = 0; @@ -22,6 +23,7 @@ describe("useAdvancedSearch", () => { setJobDuration, showJobDurationSlider, setShowJobDurationSlider, + showHidden, }); }); @@ -105,6 +107,7 @@ describe("useAdvancedSearch", () => { it("should return the correct props for reset button", () => { const showJobDurationSlider = false; + const showHidden = false; const jobType = `${INITIAL_JOB_TYPE}a`; const fields = ["test"]; const technologies = ["test"]; @@ -115,6 +118,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -126,6 +130,7 @@ describe("useAdvancedSearch", () => { // Initial Values - if this test fails remind yourself of checking if these are accurate let showJobDurationSlider = false; + let showHidden = false; let jobType = INITIAL_JOB_TYPE; let fields = []; let technologies = []; @@ -136,6 +141,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -143,6 +149,7 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(false); showJobDurationSlider = true; + showHidden = false; jobType = INITIAL_JOB_TYPE; fields = []; technologies = []; @@ -153,6 +160,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -160,6 +168,26 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(true); showJobDurationSlider = false; + showHidden = true; + jobType = INITIAL_JOB_TYPE; + fields = []; + technologies = []; + + testHook(() => { + useAdvancedSearchProps = useAdvancedSearch({ + showJobDurationSlider, + jobType, + fields, + technologies, + showHidden, + }); + }); + + ({ advancedOptionsActive } = useAdvancedSearchProps); + expect(advancedOptionsActive).toBe(true); + + showJobDurationSlider = false; + showHidden = false; jobType = `${INITIAL_JOB_TYPE}a`; fields = []; technologies = []; @@ -170,6 +198,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -177,6 +206,7 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(true); showJobDurationSlider = false; + showHidden = false; jobType = INITIAL_JOB_TYPE; fields = ["test"]; technologies = []; @@ -187,6 +217,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -194,6 +225,7 @@ describe("useAdvancedSearch", () => { expect(advancedOptionsActive).toBe(true); showJobDurationSlider = false; + showHidden = false; jobType = INITIAL_JOB_TYPE; fields = []; technologies = ["test"]; @@ -204,6 +236,7 @@ describe("useAdvancedSearch", () => { jobType, fields, technologies, + showHidden, }); }); @@ -217,6 +250,7 @@ describe("useAdvancedSearch", () => { useAdvancedSearchProps = useAdvancedSearch({ setFields: () => {}, setTechs: () => {}, + setShowHidden: () => {}, resetAdvancedSearchFields, }); }); diff --git a/src/components/HomePage/SearchArea/SearchArea.spec.js b/src/components/HomePage/SearchArea/SearchArea.spec.js index 3c497650..7b9979f1 100644 --- a/src/components/HomePage/SearchArea/SearchArea.spec.js +++ b/src/components/HomePage/SearchArea/SearchArea.spec.js @@ -250,6 +250,7 @@ describe("SearchArea", () => { setJobDuration={() => { }} setFields={() => { }} setJobType={() => { }} + setShowHidden={() => { }} onSubmit={onSubmit} fields={[]} technologies={[]} diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js index bbf770ad..6cec06bb 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js @@ -37,6 +37,7 @@ describe("useUrlSearchParams", () => { it.each([ ["jobDuration", [1, 2], [1, 2]], + ["showHidden", true, true], ["jobType", { target: { value: "test-job-type" } }, "test-job-type"], ["searchValue", "test-search-value", "test-search-value"], ["fields", ["TEST-FIELD-1", "TEST-FIELD-2"], ["TEST-FIELD-1", "TEST-FIELD-2"]], @@ -83,10 +84,15 @@ describe("useUrlSearchParams", () => { "jobMinDuration": minDuration, "jobMaxDuration": maxDuration, }; - } else if (fieldName === "techs") + } else if (fieldName === "techs") { params = { "technologies": expectedValue, }; + } else if (fieldName === "showHidden") { + params = { + "showHidden": expectedValue, + }; + } const expectedLocationSearch = `?${qs.stringify(params, { skipNulls: true, arrayFormat: "brackets" })}`; @@ -147,6 +153,7 @@ describe("useUrlSearchParams", () => { searchValue: "test-search-value", jobMinDuration: 2, jobMaxDuration: 9, + showHidden: true, fields: ["TEST-FIELD1", "TEST-FIELD2"], technologies: ["TEST-TECH"], jobType: "test-job-type", @@ -184,6 +191,7 @@ describe("useUrlSearchParams", () => { searchValue: "test-search-value", jobMinDuration: 2, jobMaxDuration: 9, + showHidden: true, fields: ["TEST-FIELD1", "TEST-FIELD2"], technologies: ["TEST-TECH"], jobType: "test-job-type", From b4f729b87a9478767175f09c55a66c1ce5e6bff3 Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Mon, 22 May 2023 21:38:54 +0100 Subject: [PATCH 55/57] tests: progress --- .../AdvancedSearch/AdvancedSearchDesktop.spec.js | 13 +++++++------ .../HomePage/SearchArea/useUrlSearchParams.spec.js | 4 ---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js index 124d4fa7..62e71945 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js @@ -10,6 +10,7 @@ import FieldOptions from "../../../utils/offers/FieldOptions"; import TechOptions from "../../../utils/offers/TechOptions"; import { INITIAL_JOB_DURATION, INITIAL_JOB_TYPE } from "../../../../reducers/searchOffersReducer"; import { createTheme } from "@material-ui/core/styles"; +import useSession from "../../../../hooks/useSession"; import { MemoryRouter } from "react-router-dom"; @@ -141,15 +142,16 @@ describe("AdvancedSearchDesktop", () => { fireEvent.click(screen.getByLabelText("Filter Job Duration")); expect(setShowJobDurationSliderMock).toHaveBeenCalledWith(false); }); - /* + + jest.mock("../../../../hooks/useSession"); + it("should toggle show hidden (on)", () => { const setShowHiddenMock = jest.fn(); - const sessionData = { isAdmin: true }; + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); renderWithStoreAndTheme( { it("should toggle show hidden (off)", () => { const setShowHiddenMock = jest.fn(); - const sessionData = { isAdmin: true }; + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); renderWithStoreAndTheme( { expect(setShowHiddenMock).toHaveBeenCalledWith(false); // Can't test that element is visible now (after toggling), since we can't emulate redux logic, wihtout having the whole tree, // So, I'll just assert that when showJobDurationSlider=true, it shows correctly in the next test - });*/ + }); it("should render a fields selector with all field types", () => { diff --git a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js index 6cec06bb..bab7c08a 100644 --- a/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js +++ b/src/components/HomePage/SearchArea/useUrlSearchParams.spec.js @@ -88,10 +88,6 @@ describe("useUrlSearchParams", () => { params = { "technologies": expectedValue, }; - } else if (fieldName === "showHidden") { - params = { - "showHidden": expectedValue, - }; } const expectedLocationSearch = `?${qs.stringify(params, { skipNulls: true, arrayFormat: "brackets" })}`; From 0b58f92aadb8a798eda3629d7109fae99dbe5c0f Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 23 May 2023 09:49:32 +0100 Subject: [PATCH 56/57] tests: fixed frontend tests Co-authored-by: diogofonte --- .../AdvancedSearch/AdvancedSearchDesktop.spec.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js index 62e71945..8a104013 100644 --- a/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js +++ b/src/components/HomePage/SearchArea/AdvancedSearch/AdvancedSearchDesktop.spec.js @@ -14,6 +14,8 @@ import useSession from "../../../../hooks/useSession"; import { MemoryRouter } from "react-router-dom"; +jest.mock("../../../../hooks/useSession"); + const AdvancedSearchWrapper = ({ children, enableAdvancedSearchDefault, @@ -71,6 +73,7 @@ describe("AdvancedSearchDesktop", () => { describe("render", () => { it("should render a job selector with all job types", () => { + useSession.mockImplementation(() => ({})); renderWithStoreAndTheme( @@ -96,6 +99,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle job duration slider (on)", () => { const setShowJobDurationSliderMock = jest.fn(); + useSession.mockImplementation(() => ({})); renderWithStoreAndTheme( @@ -121,6 +125,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle job duration slider (off)", () => { const setShowJobDurationSliderMock = jest.fn(); + useSession.mockImplementation(() => ({})); renderWithStoreAndTheme( @@ -143,11 +148,10 @@ describe("AdvancedSearchDesktop", () => { expect(setShowJobDurationSliderMock).toHaveBeenCalledWith(false); }); - jest.mock("../../../../hooks/useSession"); it("should toggle show hidden (on)", () => { const setShowHiddenMock = jest.fn(); - useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { isAdmin: true } })); renderWithStoreAndTheme( @@ -170,7 +174,7 @@ describe("AdvancedSearchDesktop", () => { it("should toggle show hidden (off)", () => { const setShowHiddenMock = jest.fn(); - useSession.mockImplementation(() => ({ isLoggedIn: true, data: { email: "admin@admin.com", isAdmin: true } })); + useSession.mockImplementation(() => ({ isLoggedIn: true, data: { isAdmin: true } })); renderWithStoreAndTheme( From a06e434b3ec7ce14abfd34d9b31bdfa5a68e2acd Mon Sep 17 00:00:00 2001 From: CarlosMealha Date: Tue, 23 May 2023 10:42:02 +0100 Subject: [PATCH 57/57] fix: show hidden state --- src/components/HomePage/SearchArea/SearchArea.js | 5 ++--- src/components/HomePage/SearchArea/SearchArea.spec.js | 3 ++- src/components/HomePage/URLSearchParamsParser.js | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/HomePage/SearchArea/SearchArea.js b/src/components/HomePage/SearchArea/SearchArea.js index 9a21d11e..368bb24f 100644 --- a/src/components/HomePage/SearchArea/SearchArea.js +++ b/src/components/HomePage/SearchArea/SearchArea.js @@ -110,6 +110,7 @@ export const AdvancedSearchController = ({ fields, technologies, jobType, + showHidden, searchValue, ); setLoadUrlFromFilters(false); @@ -127,9 +128,7 @@ export const AdvancedSearchController = ({ setSearchValue(queryParams.searchValue); } - setShowHidden(queryParams.showHidden === "false"); - - setShowHidden(queryParams.showHidden === "false"); + setShowHidden(queryParams.showHidden); setSearchValue(queryParams.searchValue); // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/src/components/HomePage/SearchArea/SearchArea.spec.js b/src/components/HomePage/SearchArea/SearchArea.spec.js index 7b9979f1..934745a9 100644 --- a/src/components/HomePage/SearchArea/SearchArea.spec.js +++ b/src/components/HomePage/SearchArea/SearchArea.spec.js @@ -27,7 +27,7 @@ const RouteWrappedContent = ({ children, url = "/" }) => ( const SearchAreaWrapper = ({ searchValue = "", jobType = INITIAL_JOB_TYPE, jobDuration = [null, null], filterJobDuration = false, - showJobDurationSlider = false, fields = [], technologies = [], setShowJobDurationSlider = () => { }, + showJobDurationSlider = false, fields = [], technologies = [], showHidden = false, setShowJobDurationSlider = () => { }, setTechs = () => { }, setJobDuration = () => { }, setFields = () => { }, setJobType = () => { }, setSearchValue = () => { }, onSubmit = () => {}, setShowHidden = () => { }, }) => ( @@ -39,6 +39,7 @@ const SearchAreaWrapper = ({ fields={fields} technologies={technologies} showJobDurationSlider={showJobDurationSlider} + showHidden={showHidden} setShowJobDurationSlider={setShowJobDurationSlider} setTechs={setTechs} setJobDuration={setJobDuration} diff --git a/src/components/HomePage/URLSearchParamsParser.js b/src/components/HomePage/URLSearchParamsParser.js index 4d081344..1a8793c5 100644 --- a/src/components/HomePage/URLSearchParamsParser.js +++ b/src/components/HomePage/URLSearchParamsParser.js @@ -35,6 +35,7 @@ const URLSearchParamsParser = ({ showSearchResults }) => { jobType: queryParams.jobType, fields: ensureArray(queryParams.fields ?? []), technologies: ensureArray(queryParams.technologies ?? []), + showHidden: queryParams.showHidden, }); // we specifically want this to only run once to avoid infinite re-renders