Skip to content

Commit

Permalink
#559 fix : url_queryString (#560)
Browse files Browse the repository at this point in the history
  • Loading branch information
youngsikkk authored Nov 4, 2023
1 parent 3d182d1 commit cb66be6
Show file tree
Hide file tree
Showing 14 changed files with 130 additions and 101 deletions.
15 changes: 7 additions & 8 deletions src/components/Admin/CurationFormPage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -180,13 +180,11 @@ export default function CurationForm({id}) {
const [open, setOpen] = useState(false);
const [size, setSize] = useState("");
const location = useLocation();
const queryString = qs.parse(location.search, {
ignoreQueryPrefix: true
});
const request = Request(navigate);
const ref = useRef();
const myEmail = localStorage.getItem('email');
const [message, setMessage] = useState(false);
const [page, setPage] = useState(1);

const uploadCuration = async () => {
const formData = new FormData();
Expand Down Expand Up @@ -260,10 +258,10 @@ export default function CurationForm({id}) {

useEffect(() => {
handleSearchToggle();
}, [open, queryString.page]);
}, [open, page]);

useEffect(() =>{
queryString.page = 1;
setPage(1);
},[open, search]) // 검색할 때마다 페이지 번호 1로 수정

const handleOpen = value => {
Expand All @@ -285,11 +283,11 @@ export default function CurationForm({id}) {
} //초기화 방지
setSearchToggle(true);
const response = await request.get("/stories/story_search/", {
page:queryString.page,
page:page,
search: search,
}, null);

search ? setSearchParams({page:queryString.page, search: search}) : setSearchParams({page:queryString.page});
search ? setSearchParams({page:page, search: search}) : setSearchParams({page:page});
setItem(response.data.data.results);
setPageCount(response.data.data.count);
};
Expand Down Expand Up @@ -365,7 +363,8 @@ export default function CurationForm({id}) {
<Pagination
total={pageCount}
limit={limit}
page={queryString.page}
page={page}
setPage={setPage}
/>
</Modal.Body>
<Modal.Footer>
Expand Down
16 changes: 11 additions & 5 deletions src/components/Curation/components/CurationMoreView.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ const CurationMoreView = () => {
const queryString = qs.parse(location.search, {
ignoreQueryPrefix: true
});
const [page, setPage] = useState(1);
// const token = cookies.name; // 쿠키에서 id 를 꺼내기
const token = localStorage.getItem("accessTK"); //localStorage에서 accesstoken꺼내기
const request = Request(navigate);
Expand All @@ -126,14 +127,14 @@ const CurationMoreView = () => {
setSearch(e.target.value);
};
useEffect(() =>{
if (search) queryString.page = 1;
if (search) setPage(1);
},[search]) // 검색할 때마다 페이지 번호 1로 수정

// page가 변경될 때마다 page를 붙여서 api 요청하기
useEffect(() => {
handleSearchToggle();
checkSasmAdmin(token, setLoading, navigate).then((result) => setIsSasmAdmin(result));
}, [queryString.page]);
}, [page]);


const handleSearchToggle = async (e) => {
Expand All @@ -148,10 +149,14 @@ const CurationMoreView = () => {
searched = search.trim();
}
const response = await request.get("/curations/admin_curations/", {
page: queryString.page,
page: page,
search: searched
}, null);
if(search.length !== 0) {setSearchParams({page:queryString.page, search: search});}
const params = {
page: page
}
if(search) params.search = search;
setSearchParams(params);
setItem(response.data.data.results);
setPageCount(response.data.data.count);
}
Expand Down Expand Up @@ -191,7 +196,8 @@ const CurationMoreView = () => {
<Pagination
total={pageCount}
limit={limit}
page={queryString.page}
page={page}
setPage={setPage}
/>
{isSasmAdmin ? (
<AdminButton
Expand Down
21 changes: 11 additions & 10 deletions src/components/Curation/components/CurationUserMoreView.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@ import Loading from "../../common/Loading";
import SearchBar from "../../common/SearchBar";
import searchBlack from "../../../assets/img/search_black.svg";
import Request from "../../../functions/common/Request";
import { useCookies } from "react-cookie";
import checkSasmAdmin from "../../Admin/Common";
import Pagination from "../../common/Pagination";
import qs from 'qs';
import AdminButton from "../../Admin/components/AdminButton";

const Section = styled.div`
Expand Down Expand Up @@ -116,9 +114,7 @@ const CurationUserMoreView = () => {
const [isVerified, setIsVerified] = useState(false);
const navigate = useNavigate();
const location = useLocation();
const queryString = qs.parse(location.search, {
ignoreQueryPrefix: true
});
const [page, setPage] = useState(1);
const token = localStorage.getItem("accessTK"); //localStorage에서 accesstoken꺼내기
const request = Request(navigate);

Expand All @@ -137,15 +133,15 @@ const CurationUserMoreView = () => {
}

useEffect(() =>{
if (search) queryString.page = 1;
if (search) setPage(1);
},[search]) // 검색할 때마다 페이지 번호 1로 수정

// page가 변경될 때마다 page를 붙여서 api 요청하기
useEffect(() => {
handleSearchToggle();
checkVerfied();
checkSasmAdmin(token, setLoading, navigate).then((result) => setIsSasmAdmin(result));
}, [queryString.page]);
}, [page]);

const handleSearchToggle = async (e) => {
if(e) e.preventDefault();
Expand All @@ -159,10 +155,14 @@ const CurationUserMoreView = () => {
searched = search.trim();
}
const response = await request.get("/curations/verified_user_curations/", {
page: queryString.page,
page: page,
search: searched
}, null);
if(search) setSearchParams({page:queryString.page, search: search});
const params = {
page: page
}
if(search) params.search = search;
setSearchParams(params);
setItem(response.data.data.results);
setPageCount(response.data.data.count);
setLoading(false);
Expand Down Expand Up @@ -203,7 +203,8 @@ const CurationUserMoreView = () => {
<Pagination
total={pageCount}
limit={limit}
page={queryString.page}
page={page}
setPage={setPage}
/>
{isSasmAdmin&&isVerified ? (
<AdminButton
Expand Down
22 changes: 14 additions & 8 deletions src/components/SpotMap/DataContainer.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export default function DataContainer({ Location }) {
const [checkedList, setCheckedList] = useState('');
const [loading, setLoading] = useState(true);
const navigate = useNavigate();
const [page, setPage] = useState(1);
const token = localStorage.getItem("accessTK"); //localStorage에서 accesstoken꺼내기
const request = Request(navigate);
const [placeData, setPlaceData] = useState({
Expand Down Expand Up @@ -90,7 +91,7 @@ export default function DataContainer({ Location }) {
const queryParams = {
left: location.state?.lat || searchHere.lat,
right: location.state?.lng || searchHere.lng,
page: queryString.page,
page: page,
search: location.state?.name || localStorage.getItem("place_name") || search.trim(),
filter: checkedList
}
Expand All @@ -101,7 +102,12 @@ export default function DataContainer({ Location }) {
search: queryParams.search, // gotomap으로 넘어왔을 때
filter: queryParams.filter
});

const params = {
page: page
}
if (search) params.search = search;
if (checkedList) params.checkedList = checkedList;
setSearchParams(params);
setPlaceData({
total: response_list.data.data.count,
MapList: response_list.data.data.results,
Expand All @@ -124,8 +130,8 @@ export default function DataContainer({ Location }) {
}, [searchHere, checkedList, queryString.page]);

useEffect(() => {
queryString.page = 1
},[checkedList]);
setPage(1);
},[checkedList, search]);

//page, 검색어, 체크리스트 변경시 작동
useEffect(() => {
Expand All @@ -134,7 +140,7 @@ export default function DataContainer({ Location }) {
setCategoryNum(7);
}
getList();
}, [searchHere, search, checkedList, queryString.page]);
}, [searchHere, search, checkedList, page]);

return (
<>
Expand All @@ -153,8 +159,8 @@ export default function DataContainer({ Location }) {
<FilterOptions>
<CategorySelector checkedList={checkedList} onCheckedElement={onCheckedElement} />
</FilterOptions>
<SpotList categoryNum={categoryNum} placeData={placeData.MapList} setTemp={setTemp}></SpotList>
<Pagination total={placeData.total} limit={20} page={queryString.page}/>
<SpotList categoryNum={categoryNum} placeData={placeData.MapList} setTemp={setTemp} searchParams={searchParams}setSearchParams={setSearchParams}></SpotList>
<Pagination total={placeData.total} limit={20} page={page} setPage={setPage}/>
{
isSasmAdmin &&
<AdminButton
Expand All @@ -167,7 +173,7 @@ export default function DataContainer({ Location }) {
</AdminButton>
}
</ListWrapper>
<Map categoryNum={categoryNum} placeData={placeData.MapList} temp={temp} setTemp={setTemp} setSearchHere={setSearchHere} />
<Map categoryNum={categoryNum} placeData={placeData.MapList} temp={temp} setTemp={setTemp} setSearchHere={setSearchHere} searchParams={searchParams} />
</>
)
}
10 changes: 6 additions & 4 deletions src/components/SpotMap/Map.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ const ControllerWrapper = styled.div`
}
`;

const Markers = ({ navermaps, left, right, title, id, category, categoryNum, setTemp }) => {
const Markers = ({ navermaps, left, right, title, id, category, categoryNum, setTemp, searchParams }) => {
const [modalOpen, setModalOpen] = useState(false);
const location = useLocation();
const queryString = qs.parse(location.search, {
Expand Down Expand Up @@ -125,7 +125,7 @@ const Markers = ({ navermaps, left, right, title, id, category, categoryNum, set
const handleClick = () => {
MarkerChange();
setModalOpen(true);
navigate(`/map?page=${queryString.page}&place=${title}`);
navigate(`?${searchParams.toString()}&place=${title}`);
};

// 상세보기 모달 닫기 이벤트
Expand Down Expand Up @@ -242,7 +242,7 @@ const Markers = ({ navermaps, left, right, title, id, category, categoryNum, set
);
};

const NaverMapAPI = ({ placeData, temp, setTemp, setSearchHere, categoryNum }) => {
const NaverMapAPI = ({ placeData, temp, setTemp, setSearchHere, categoryNum, searchParams }) => {
const location = useLocation();
const navigate = useNavigate();
const navermaps = useNavermaps();
Expand Down Expand Up @@ -355,6 +355,7 @@ const NaverMapAPI = ({ placeData, temp, setTemp, setSearchHere, categoryNum }) =
category={itemdata.category}
navermaps={navermaps}
key={`marker_${itemdata.id}`}
searchParams={searchParams}
/>
))}
<Marker
Expand All @@ -374,7 +375,7 @@ const NaverMapAPI = ({ placeData, temp, setTemp, setSearchHere, categoryNum }) =
);
};

export default function Map({ placeData, temp, setTemp, setSearchHere, categoryNum }) {
export default function Map({ placeData, temp, setTemp, setSearchHere, categoryNum, searchParams }) {

const markerData = placeData.map(data => {
return {
Expand Down Expand Up @@ -406,6 +407,7 @@ export default function Map({ placeData, temp, setTemp, setSearchHere, categoryN
temp={temp}
setTemp={setTemp}
setSearchHere={setSearchHere}
searchParams={searchParams}
/>
</MapDiv>
</MapSection>
Expand Down
4 changes: 2 additions & 2 deletions src/components/SpotMap/SpotList.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ const SpotsWrapper = styled.div`
}
`;

export default function SpotList({ setTemp, placeData, categoryNum }) {
export default function SpotList({ setTemp, placeData, categoryNum, searchParams, setSearchParams }) {
return (
<SpotListSection>
{/* 데이터 없을때 장소가 없습니다 띄우기 */}
Expand All @@ -92,7 +92,7 @@ export default function SpotList({ setTemp, placeData, categoryNum }) {
:
placeData.map((itemdata) => {
return (
<ItemCard categoryNum={categoryNum} setTemp={setTemp} key={`itemcard_${itemdata.id}`} placeData={itemdata} />
<ItemCard categoryNum={categoryNum} setTemp={setTemp} key={`itemcard_${itemdata.id}`} placeData={itemdata} searchParams={searchParams} setSearchParams={setSearchParams} />
);
})
}
Expand Down
6 changes: 3 additions & 3 deletions src/components/SpotMap/SpotList/ItemCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ const DetailBox = styled.div`
position: absolute;
`;

export default function ItemCard({ placeData, categoryNum, setTemp }) {
export default function ItemCard({ placeData, categoryNum, setTemp, searchParams, setSearchParams }) {
const [like, setLike] = useState(false);
const location = useLocation();
const queryString = qs.parse(location.search, {
Expand Down Expand Up @@ -194,12 +194,12 @@ export default function ItemCard({ placeData, categoryNum, setTemp }) {
return (
<div ref={node}>
<StyledCard key={Date.now()}>
<ImgLink to={`/map?page=${queryString.page}&place=${placeData.place_name}`} onClick={handleClick}>
<ImgLink to={`?${searchParams.toString()}&place=${placeData.place_name}`} onClick={handleClick}>
<img src={placeData.rep_pic} className="itemcard_image" alt="placeImage" width="100%" height="100%" />
</ImgLink>
<TextBox>
<TitleBox>
<TitleLink to={`/map?page=${queryString.page}&place=${placeData.place_name}`} onClick={handleClick}>
<TitleLink to={`?${searchParams.toString()}&place=${placeData.place_name}`} onClick={handleClick}>
{placeData.place_name}
</TitleLink>
<LikeButton style={{ position: "absolute", right: "5%", bottom: "15%" }}>
Expand Down
Loading

0 comments on commit cb66be6

Please sign in to comment.