* ๊ตฌ์กฐ
ํ๋ฉด์ 2๊ฐ์ ๊ทธ๋ฆฌ๋๊ฐ ์กด์ฌ. ์ผ์ชฝ ๊ทธ๋ฆฌ๋ ํ์ ํด๋ฆญํ๋ฉด ์์ธ ์ ๋ณด๊ฐ ์ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๋์ ๋ธ.
* ๋ง๋ค๊ณ ์ ํ๋ ๊ธฐ๋ฅ
์ผ์ชฝ ๊ทธ๋ฆฌ๋ ํ์ ํด๋ฆญํ ํ ์์ธ ์ ๋ณด๋ฅผ ์์ ์ค์ ์ผ์ชฝ ๊ทธ๋ฆฌ๋ ๋ค๋ฅธ ํ์ ํด๋ฆญํ ๋ '์์ฑ์ค์ ๋๋ค. ์ ์ฅํ์ง ์๊ณ ์กฐํ ์งํํ์๊ฒ ์ต๋๊น?' alert ์ฐฝ์ด ๋ฐ ์ ์๊ฒ ํ๊ณ , ํ์ธ์ ๋๋ฅด๋ฉด ์กฐํ๋ฅผ ์งํ / ์ทจ์๋ฅผ ๋๋ฅด๋ฉด ํ์ํ๋ฅผ ์ ์ง์ํค๋ ค๊ณ ํ๋ค.(return)
* ๋ฌธ์ ๋ฐ์
return์ ์์ผ๋, ๋ค๋ฅธ ํ์ ํด๋ฆญํ๋๊ฒ ๊ณ์ ๋จ์์์๋ค. ์ผ์ชฝ ๊ทธ๋ฆฌ๋์์ ํด๋ฆญ๋ ํ๊ณผ ์ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๋์ ์์ธ์ ๋ณด๊ฐ ์๋ก ๋ง์ง ์๊ฒ ๋ ๊ฒ.
* ํด๊ฒฐ ๋ฐฉ์
๊ฐ์ ๋ก ๋ค์ ๊ธฐ์กด ํ์ ํด๋ฆญํ๋๋ก ๋ง๋ค๊ธฐ๋ก ํ๋ค. ์ด๋ setSelected ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
forEachNode๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ค ๋ณด๋๋ฐ (map๊ฐ์ ๋๋์ธ๋ฏ ์ถ๋ค)
๊ทธ ๋ ธ๋๋ค ์ค์ ์ค๋ฅธ์ชฝ ๊ทธ๋ฆฌ๋์ ์์ธ์ ๋ณด name๊ณผ ๊ฐ์ ๋ ธ๋๋ฅผ ์ฐพ์ ์ ํ์ ์์ผ์ฃผ๋ ๊ฒ์ด๋ค.
const setSelectedRows = (name: any) => {
gridRef?.current?.api.forEachNode((node: any) => {
node.setSelected(node.data.cdNm === name);
});
};
/* ๊ทธ๋ฆฌ๋ ํ ํด๋ฆญ */
const onCellClicked = async (params: any) => {
const name = detailList.find((el) => el.setting === 'name')?.value;
// ์์ฑ ์ค ์กฐํ ๋ฒํผ ๋๋ฅด๋ฉด ์๋ฆผ ํ์
if (isChanged) {
if (params[0]?.cdNm !== name) {
const bConfirmed = await openConfirm('์์ฑ์ค์
๋๋ค.\n์ ์ฅํ์ง ์๊ณ ์กฐํ ์งํํ์๊ฒ ์ต๋๊น?');
if (!bConfirmed) {
setSelectedRows(name);
return;
}
} else return;
}
<์๋ต>
}