function toggleSelectedQS(key, value) {
if (searchParams.toString().includes(`${key}=${value}`)){
[...searchParmas.entries()].filter(([newKey, newValue]) => {
if (key !== newKey) return true;
else if (value !== newValue) return true;
else return false;
})
setSearchParams(new URLSearchParams(searchParams))
}
else {
const newSearchParams = new URLSearchParams(searchParams);
newSearchParams.filter()
}
}
function applyNextQueryString(next) {
setSearchParams(next);
}
function toggleSelectedQS(selectedQueryKey, selectedQueryValue) {
let nextParamsEntries = [...searchParams.entries()];
const isFilterExist = checkEntryExist(
selectedQueryKey,
selectedQueryValue
);
// selectedQueryValue가 QS에 있다면 제거
const newSelectedEntry = [selectedQueryKey, selectedQueryValue];
const nextEntries = [...searchParams.entries()];
return isValueExist
? [...nextEntries, newSelectedEntry]
: nextEntries.filter(filterOutExistValue);
function filterOutExistValue([queryKey, queryValue]) {
return queryKey !== selectedQueryKey && queryValue !== selectedQueryValue;
}
우연찮게 라이브로 코드리뷰를 해주시면서 리펙토링 하시는 걸 지켜보았다. 보며 느낀점은 크게 2가지!
1) 가독성과 네이밍
2) 함수명과 기능