Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ksw_devlog

TIL 4주 4일차 본문

TIL

TIL 4주 4일차

kimcoach 2022. 11. 24. 20:56

프로필 페이지에서 MBTI를 입력하는 칸을 만들었다.

<div class="profile-desc">
            <p id="user-mbti">제 MBTI는 OOOO입니다</p>
            <div id="edit-user-mbti-button-container">
                <button onclick="startMBTIChange()">변경</button>
            </div>
            <p id="user-motd">프로필에 대한 설명</p>
            <div id="edit-user-motd-button-container">
                <button onclick="startMotdChange()">변경</button>
            </div>
        </div>

변경 버튼을 클릭하면 startMBTIChange 함수가 적용된다 

 

-->

window.startMBTIChange = async function() {
    $("#edit-user-mbti-button-container").empty()
    $("#edit-user-mbti-button-container").append(
        `
<input id="new-user-mbti">
<button onclick="onMBTIChanged()">완료</button>
        `
    )
}

id가  "#edit-user-mbti-button-container"

 

에 해당하는 내용을 empty로 비워주고 변경할 내용을 추가하고

onMBTIChanged()  

함수가 적용된다.

 

window.onMBTIChanged = async function() {
    const newMBTI = stripHTMLTags($("#new-user-mbti").val())
    await updateMyProfileMBTI(newMBTI)
    await $("#edit-user-mbti-button-container").empty()
    document.getElementById("user-mbti").innerHTML = newMBTI
    updateUserInfoToCache()
}
 
->>

updateUserInfoToCache()

함수 적용

 

export async function updateMyProfileMBTI(newMBTI) {
    const user = authService.currentUser
    if (user) {
        const docSnap = await getDoc(
            doc(dbService,"userData", user.uid)
        )
        const newName = user.displayName
        const newEmail = user.email
        const newPhotoURL = user.photoURL
        var newMotd = null
        try {
            if (docSnap.exists()) {
                newMotd = docSnap.data()["motd"]
            }
        }
        catch {}

        await setDoc(
            doc(dbService, "userData", user.uid), {
                displayName: newName,
                email: newEmail,
                photoURL: newPhotoURL,
                motd: newMotd,
                mbti: newMBTI
            }
        )
    }
}
export async function getUserMBTI(uid) {
    const user = await getDoc(
        doc(dbService, "userData", uid)
    )
    if (user.exists()) {
        return user.data()["mbti"]
    }
    else {
        return "(mbti)"
    }
}

 

 

 

'TIL' 카테고리의 다른 글

TIL 5주 2일차  (0) 2022.11.29
TIL 5주 1일차  (0) 2022.11.29
TIL 4주 3일차  (0) 2022.11.23
TIL 4주 2일차  (0) 2022.11.23
TIL 3주 5일차  (0) 2022.11.18