λλμ΄ μ€λ λ°νλ μ΄λ€.
μλ WILμ μ£Όλ§μ μ μ΄μΌνμ§λ§ νλ‘μ νΈλ‘ μΈν΄ μ λ§ μΈ μκ°μ΄ μμλ€...γ
κ·Έ μ£Όλ§λμ νμλ€μ λ³΄λ €κ³ μμΈ κΉμ§ κ°λλ° μ§μ§ κ·Έ μκ°μ΄ μκΉμ§ μμ μ λλ‘ νμλΆλ€μ΄ μ’μλ€.π
λ§ μ§μμ μ»λκ²λ μμ§λ§ λ¬Όλ‘ , μ¬λμ μ»μλ€λΌλ ννμ΄ μ΄λ²μ λ μ λ§μλ κ²κ°λ€.
μ€λμ΄ μ§λλ©΄ μ΄μ κ°μ λ€λ₯Έ νμλ€κ³Ό μλ‘μ΄ νμ μμνκ² λκ² μ§λ§ κ·Έλλ κ³μ κΎΈμ€ν μ°λ½μ ν κ² κ°λ€.
(μ΄λ €μ΄κ±° μμΌλ©΄ μ°λ½νλΌλ λ§μ΄ μ§μ§ κ³ λ§μ λ€....γ )
μνΌ μ΄λ² μ£Όλ μ λ§ λ§μ μΌμ΄ μμ΄μ WILμ΄ μμ² κΈΈμ΄μ§κΊΌκ°λ€. κ·Όλ° κ·Έλ§νΌ μ λ§ μ΄μ¬ν νλ€. μ μ μ΄λ κ² μ μμ μ΄μλ μΆμμ λλ‘
κ·Έλμ λμ± μ μ°©μ΄ κ°λ νλ‘μ νΈκ° λ κΊΌ κ°κ³ , μ²μμΌλ‘ λ§λ€μ΄ λ³Έ μ λλ‘ λ λμ νλ‘μ νΈλΌμ λ μλ―Έκ° μλ€.
<μ΄λ² μ£Ό κΈ°μ΅μ λ¨λ νλ€μλ κΈ°λ₯>
: 리뷰_κ²μκΈ μμ νκΈ°
- λ©μΈνμ΄μ§μμ > νΉμ ν μ΄λνλ₯Ό λλ₯΄λ©΄ > μμΈ νμ΄μ§λ‘ λμ΄κ°μ 리뷰λ₯Ό μμ±νκ³ > λ±λ‘λ 리뷰λ₯Ό μμ νλ κΈ°λ₯
1.μ²μ μκ°ν ꡬν
μ²μ μ μ 리뷰<p>λ₯Ό κ°μ§κ³ μμ μμ λ²νΌμ λλ₯΄λ©΄ textareaλ‘ λ°λλ©΄μ μλ μλ κ°μ κ°μ§λ μμ μ°½μ ꡬνν΄λ³΄λ €κ³ νλ€.
=> μλ μλ κ°μ κ°μ§ μμ inputμ΄ λ μ¬μ©μμκ² λ μ’μ κ» κ°μμ κ·Έλ κ² κ΅¬νμ νλ€.
κ·Έλμ μμνλ μμκ°
: 1) μμ λ²νΌμ λ§λ€κ³ μ μ κ° μ΄ λ²νΌμ λλ₯΄λ©΄ μ΄ λ²νΌλ€μ μ¬λΌμ ΈμΌνλ€.(μ μ κ° ν·κ°λ¦΄ μ μμΌλ) + κ·Έλ¦¬κ³ μλ‘μ΄ μλ£ λ²νΌμ λ§λ λ€
2) μμ λ²νΌμ λλ¦κ³Ό λμμ μλ‘μ΄ textareaκ° λ¬λ€.
3) textareaμμλ μ μ κ° λ¨Όμ μ μ 리뷰ν μ€νΈκ° κ·Έλλ‘ μ μ§κ° λμ΄ μμ΄μΌνλ€.
4) μλ£λ²νΌμ λλ₯΄λ©΄ κ·Έ textareaμ λ΄μ©μ΄ λ³Έλμ p κ° λλ€.
μ΄ μμλ‘ μ§νμ μ§κ³ μμνλ€.
μλλ μ΄λ κ² κ΅¬νμ μ§κ³ μμνμ§ μμλλ° κ·Έ μ΄μ κ° κ·Έλμ λ§λ€μλ κΈ°λ₯λ€μ΄ κ°λ¨ν μμλ₯Ό κ°μ§κ³ μμ΄μ κ·Έλ¬λ κ²κ°λ€.
κ·Όλ° μ μ 볡μ‘ν΄μ§λ κΈ°λ₯μ μ λ κ² κΈ°λ₯μ λ§λ€μ΄ λκ³ νλμ© μμ°¨μ μΌλ‘ μ½λλ₯Ό μ§λκ² λ ν¨μ¨μ μ΄λΌλ μκ°μ΄ λ€μλ€.
(μ¬μ€ νλ€κ° μ€κ°μ 'μ΄..? λ΄κ° κ·Έλμ μ΄λκΉμ§ νλλΌ'κ° μκΈ°λκΉ μκΎΈ μ§μ€μ΄ λκ²Όλ€.)
2.νλ€μλ μ
:νλ€μλ μ μ λ»νλ€. μ λ κ² μκ°μ ν΄λ μ€λ₯λ μκΈ΄λ€.π
μ΄λ¬λ©΄μ μ’ λ ꡬ체μ μΈ κ³ν, λ€μ λκ°μ μ€λ₯λ₯Ό λ§λ¬μ λ λ μ¬μ λ‘μ΄ μ¬λμ΄ λ μ μμκΊΌκ°λ€γ
κ·Όλ° μ΄ μ€λ₯κ° νλ‘μ νΈ μμ±μ΄ λ€ λμ΄ κ°λλ° ν΄κ²°μ΄ μλμ κΈνλκ±°....? ν λͺμΌλμ κ³μ μ€λ₯λ§ μκ°μ νλ€... γ γ
export const reviseReview = async (event) => {
event.preventDefault();
const udBtns = document.querySelectorAll(".editButtons");
udBtns.forEach((udBtn) => udBtn.classList.add("noDisplay"));
const reviewBody = event.target; //μμ μμ΄μ½
console.log(reviewBody);
const commentText = document.querySelector("#reviseComment");
//commentText : boardμμ λ€κ³ μ¨ textarea
console.log(commentText);
const userOriginText = document.querySelector(".reviewComment");
const reviseBtn = document.querySelector(".saveReviseComment"); //μμ μλ£λ²νΌ
commentText.classList.remove("noDisplay");
userOriginText.classList.add("noDisplay");
reviseBtn.classList.remove("noDisplay");
console.log(userOriginText);
};
export const updateReviews = async (event) => {
const parentNode = event.target.parentNode;
console.log(parentNode);
const commentText = parentNode.children[0];
console.log(commentText);
const commentInputP = commentText.value;
const creatorId = localStorage.getItem("id");
const commentRef = doc(dbService, "reviews", creatorId);
const savebtn = document.querySelector(".saveReviseComment");
savebtn.classList.add("noDisplay");
try {
await updateDoc(commentRef, { text: commentInputP });
const changeComment = document.querySelector("#reviseComment");
changeComment.value = commentInputP;
const changeDiv = document.querySelector(".reviewBody");
changeDiv.innerHTML = '';
const p = `<p class="reviewComment">${commentInputP}`;
changeDiv.innerHTML = p;
} catch (error) {
alert(error);
}
};
> μ΄ λΆλΆμ΄ μμ μ νκ³ λμ μ μ₯λ²νΌμ λλ₯΄λ©΄ μ€νλλ ν¨μμ΄λ€.
${ isOwner? `<div class="editButtons">
<i id="fix" class="fa-regular fa-pen-to-square reviewEdit" onclick="reviseReview(event)"></i>
<i class="fa-regular fa-trash-can reviewDelete" onclick="deleteReview(event)"></i>
</div>`
: ""
}
</div>
<div class="reviewImgBox" role="img">
<img class="reviewImg" src="${poster.reviewImg}" />
</div>
<div class="reviewBody">
<textarea
id="reviseComment" class="noDisplay reviseInputArea">${
poster.text
}</textarea>
<button onclick="updateReviews(event)" class="saveReviseComment noDisplay">μ μ₯</button>
</div>
<p class="reviewComment">${poster.text}
> μ΄ λΆλΆμ μμ μ ν λΆλΆμ htmlλΆλΆμ΄λ€.(μ μ²΄κ° μλκ³ λΆλΆλ§ λΌμ¨κ±°λΌ νκ·Έκ° μμ ν λ«νμ§ μμλ€)
μ¬μ€ μ΄ μ½λλ€μ μμ±λ μ½λλ€. κΈ°μ‘΄μ μμλ μ½λλ€μ κ°μ Έμμ λ΄κ° κ³ μΉ κ²λ μμ§λ§ μ΄λ κ² κΈ°λ₯μ΄ κ΅¬ν λλ€λ...κ·Έμ κ°μ¬ν λ°λ¦
μ λ κ² κΈ°μ‘΄μ μλ λ΄μ©λ€μ΄ μ μ§λμ± λ΄μ©μ λ°κΏ μ μλλ‘ λμ¨λ€.
μ μ₯μ λλ₯΄λ©΄β
λ΄μ©μ΄ μ μ₯λλ€. κ·Έλμ μ½λλ₯Ό 보면
try {
await updateDoc(commentRef, { text: commentInputP });
const changeComment = document.querySelector("#reviseComment");
changeComment.value = commentInputP;
const changeDiv = document.querySelector(".reviewBody");
changeDiv.innerHTML = '';
const p = `<p class="reviewComment">${commentInputP}`;
changeDiv.innerHTML = p;
} catch (error) {
alert(error);
}
μ΄ λΆλΆμ΄μλλ° μμ ν κΈμ μ μ₯νκ³ λμ pλ‘ λ°κΏμ£Όλ μ½λμ΄λ€.
μ΄κ² 보면 changeDivλ‘ htmlμ reviewbodyλ₯Ό μ§μ ν΄μ£Όκ³ λμ κ·Έ μμ κ°μ λΉμμ£Όκ³ μλ‘ μ μ ν μ€νΈλ₯Ό innerHTMLλ‘ λ£μ΄μ£Όκ³ μλ€
μ΄ λΆλΆμ΄ μλμ ν ν루λ₯Ό μ λ¨Ήμλκ²κ°λ€. λ΄κ° 볡μ‘νκ² μκ°ν΄μ κ·Έλ°μ§ γ γ μ μ₯ν ν μ€νΈλ₯Ό pνκ·Έλ‘ λ°κΏμ£Όλ ν¨μλ₯Ό λ°λ‘ λ λ§λ€κ³ μμλ€.
μ΄λ κ² λ°λ‘ λ§λ€λ€ 보λκΉ κ·Έ λ°λ λΆλΆλ§ μμ μ΄ μλ μμ μλ νμ΄μ§κ° μ²μ λ λλ§ λ λμ²λΌ λ λ΄μ©μ κ°μ§κ³ μ€λ? κ·Έλ°
λ°©μμΌλ‘ λμλ€. κ·Έλ¬λκΉ λ§ κ²½λ‘κ° λ 볡μ‘νκ³ νλλ₯Ό ν΄κ²°νλ©΄ λ λ€λ₯Έ μλ¬κ° λμ€κ³ λ리μλ€ κ·Έλ₯ λ§ κ·Έλλ‘ λ리...γ
μ΄λΆλΆμ μ΄λ»κ² ν€μ³λκ°μΌν κΉ μκ°μ νλ€κ° μ κ·Έλ₯ κ·Έ μλμλ λ΄μ©μ λΉμ°κ³ μλ‘μ΄κ±Έ μ±μ°μ
μ΄ λ°©λ²μ μ μ₯ λ²νΌμ μ ν λμ ν¨μμ λ€ λ£μ΄λ²λ¦¬μ λΌλ μκ°μ΄ λ€μλ€.
κ·Έλμ νλλ° γ γ γ μ§μ§ νλ°©μ ν΄κ²° γ γ γ μΌλ§λ μμ΄ μμνμ§ ,,, κΈ°λ€λ €μ€ νμλΆλ€νν λ―Έμνκ³ γ γ μΆννλ€κ³ μκΈ°ν΄μ£Όλ
κ²λ κ³ λ§κ³ κ·Έλ¬λ€ λ§ γ λκ° ν΄μΌνλκ² ν΄κ²°μ΄ λλκΉ κ·Έλ λΆν° λ§μμ΄ μμ² κ°λ²Όμ λ€.
μμ λ²νΌ κΈ°λ₯ ꡬνμ ν΄μΌνλ€κ³ λ€μμ§ 3μΌλ§μ ν΄κ²°λκ±°λΌ ν....γ μ΄λ κ² κ³ μν΄λμΌλ©΄ λ€μλ²μ νκ²° μ½κ² μ§λΌκ³ μκ°ν©λλ€.γ
μλμ λ΄κ° λ§‘κΈ°λ‘ ν λ§μ΄νμ΄μ§ κ°μ κ²½μ°λ 미리 κ³νμ μ‘κ³ μ΅λν ν μ μλλ§νΌ 빨리 λλ΄λ³΄μκ° λͺ©νλΌμ
λͺ©μμΌ?μ―€ μ΄λμ λ λ€ κΈ°λ₯μ΄ λλμνμλ€ λ¬Όλ‘ κ·Έλλ λ§μ΄νμ΄μ§ μ μμ΄ μ € μ΄λ €μ μ TIL 보면 λ§μ΄νμ΄μ§ μ°‘μ°‘λκ±Έ μ μ΄λ¨λ€.
κ·Έλ¬λ€κ° μ£Όλ§μ―€μ κ°μκΈ° μμ λ²νΌκΈ°λ₯μ λ§‘μΌλ©΄μ μ€λ₯λ₯Ό λ§λ¬λλ°γ γ γ κ·Έλμ κ·Έλ°μ§ κΈ°μ΅μ μ € μ€λ λ¨λλ€.
μ κ·Έλ¦¬κ³ λκ° λ¨νν λμμ μ μλ°κ³ μ€μ€λ‘ ν΄κ²°ν΄λ³Έ κΈ°λ₯μ΄λΌ λ κ³ μμ νμ§λ§ κΈ°μ΅μ λ¨λ? μνΌ κ·Έλ¬λ€γ
μ κ·Έλ¦¬κ³ μ΄λ² μ£Ό μμ¬μ λ μ βοΈ
: λκ° κΈ°λ₯μ νλ λ§‘μμ νλ€λκ² λ΄κ° μΈμ λλ μ§ λͺ¨λ₯΄κΈ°μ νμ 리λ°μ κ±Έμ΄λκ³ κ·ΈλκΉμ§ ν΄λ³Έλ€ νκ³ μλλ°
μ΄λ²μ£Όλ μ΄λμ λ 리λ°μκ°μ΄ μ§μΌμ§κΈ΄νμ§λ§ μ« μ€λ°κ° λ κ²½μ°λ μμ΄μ μμ¬μ λ°.. λ€μλΆν°λ 리λ°μκ° μ μ§μΌμ κΈ°λ₯ ꡬν ν΄λ΄μΌμ§!
νλ€μλκ²μ μ§λμ μ»μ μ
1) μΌλ¨ λκΈ°λ₯Ό μ»μλ€. μ λλ μ΄λ κ² νλμ λ§€λ¬λ¦΄ μκ° μꡬλ λΌλ μ λλ‘ λλ κΈ°κ°β
μμΈκΉμ§ κ°μ μΉκ΅¬λ μΉ΄νμμ μ½λλ₯Ό νκ³ μμλμ γ γ μ겨μ μ μ΄λμΌκ² λ€. μ΄λ μ€λ₯κ° ν΄κ²° λ¬λλ° μ§μ§ μ λ§μμ΄ μμνλ€...
2) 곡λΆλ₯Ό ν λͺ©νκ° μκΈ΄μ ..? μ’μ νμλ€κ³Ό μκΈ°νλ©΄μ μ΄λ° λΆλ€κ³Ό μΌνλ©΄ μ’κ² λ°λΌλ μκ°μ΄λ€μλ€. κ·Όλ° κ·Έλ΄λ €λ©΄ λ΄κ° λ¨Όμ μ€λ ₯μ΄ μ’μμΌ νλ€λ μκ°μ΄ κ°λ ₯ν λ€μλ°....!
μ’μ νλ‘μ νΈλ₯Ό λ§λ€μ΄ λ³Έ κ²½νμ μΌμμ λμ±λ λ€μ νλ‘μ νΈκ° μμ¬μ΄ λλ€. κ·Έλ§νΌ λ΄κ° λ μ΄μ¬ν ν΄μΌμ§λΌλ λκΈ°λΆμ¬κ° λλ€.
κ·Έλμ μ΄λ²μ£Ό WILμ μ¬κΈ°μ λγ
'WILπ±' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ²μ μ΄ λ¬λΌμ κ³ μν WIL(07) (0) | 2022.12.18 |
---|---|
WIL(06) (1) | 2022.12.11 |
κ°μΈκ³΅λΆ WIL(05) (0) | 2022.12.04 |
WIL(02) (0) | 2022.11.14 |
첫 WIL(01) (0) | 2022.11.05 |