Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/tgyuu/#78 #79

Merged
merged 20 commits into from
Jan 3, 2024
Merged

Feature/tgyuu/#78 #79

merged 20 commits into from
Jan 3, 2024

Conversation

tgyuuAn
Copy link
Member

@tgyuuAn tgyuuAn commented Jan 3, 2024

1. 📄 관련된 이슈 및 소개

closed #78

2. 🔥변경된 점

- 관리 화면에서 일정을 클릭할 시, 일정 수정 화면으로 넘어갑니다.

3. 📸 스크린샷(선택)

ezgif com-crop (17)

4. 💡알게된 혹은 궁금한 사항들

Compose Navigation 시 여러 개의 인자를 한 번에 보내기

const val eventEditNavigationRoute = "event/edit/{date}/{eventId}"

fun NavController.navigateToEventEdit(
    date: String,
    eventId: String,
    navOptions: NavOptions? = navOptions {},
) {
    this.navigate("event/edit/$date/$eventId", navOptions)
}

fun NavGraphBuilder.eventEditScreen(
    navigateToManagement: () -> Unit,
) {
    composable(
        route = eventEditNavigationRoute,
        arguments = listOf(
            navArgument("date") { type = NavType.StringType },
            navArgument("eventId") { type = NavType.StringType },
        ),
    ) { navBackStackEntry ->
        val date = navBackStackEntry.arguments?.getString("date") ?: ""
        val eventId = navBackStackEntry.arguments?.getString("eventId") ?: ""
        EventEditRoute(
            date = date,
            eventId = eventId,
            navigateToManagement = navigateToManagement,
        )
    }
}

그냥 한 개 보낼 때 처럼하면 되고, 나중에 arguments 속성에만 새로 넣어주면 된다.

레퍼런스




Firebase 데이터 덮어쓰지 않고 수정하기

        firebaseFirestore.collection(EVENT_COLLECTION)
            .document(getMonth(startDate))
            .collection(EVENT_COLLECTION)
            .document(eventId)
            .update(
                mapOf(
                    "title" to title,
                    "content" to content,
                    "location" to location,
                    "startDateTime" to startDateTime,
                    "endDateTime" to endDateTime,
                ),
            )
            .await()

와 같이 updaate 메소드에 map 형식으로 넣어주면 한 번에 수정할 수 있음.

레퍼런스

@tgyuuAn tgyuuAn added 🌱기능🌱 새로운 기능 두두둥장! 🎨유아이🎨 피그마, 엑세멜, 컴포즈 유아이/유엑스 작업 🧩태규🧩 ENFP 안태규 24세 🔥리뷰 기다리는 중🔥 PR을 올리고 코드리뷰를 기다리고 있는 상태입니다. labels Jan 3, 2024
@tgyuuAn tgyuuAn self-assigned this Jan 3, 2024
Copy link
Member

@jeongjaino jeongjaino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨어요 태구 상상상상상상의 나라 에버랜드 ~

eventContent: String,
eventLocation: String,
eventStartDateTime: LocalDateTime,
eventEndDateTime: LocalDateTime,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

인자 네이밍에서 따로 각 인자마다 event를 붙이신 이유가 있을까요 ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jeongjaino

별 다른 이유는 없었습니다!

생각해보니 별로 필요도 없을 것 같아요. 이건 수정해야겠따

.collection(EVENT_COLLECTION)
.document(eventId)
.update(
mapOf(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

따로 변수로 map을 빼고, update에 인자로 넣는건 어때요 ??

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update와 저희가 보통 작성하는 set + MergeOptions의 차이가 뭔지 궁금했는데

image

update는 전체가 아닌 부분업데이트라고 하네요 !!

Copy link
Member Author

@tgyuuAn tgyuuAn Jan 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jeongjaino

오호라 그럼 이런 경우에는 update가 적당할까요 ? 아니면 MergeOptions를 쓰는게 적당한걸까요?

업데이트 되지 않는 항은 eventId밖에 없긴해요.




따로 변수로 map을 빼고, update에 인자로 넣는건 어때요 ??

좋은 생각입니다!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

보통의 상황에서 업데이트를 위한 기능이라면 무조건 update가 낫지 않을까요

좀 과장되게 표현하자면 DiffUtil과 notifyDataSetChanged 차이 같은데요 하하

일부로 MergeOptions을 넣은 경우는
두가지 데이터가 한번에 들어갈 수도 있고, 중복되는 경우를 막기 위한 목적이라
업데이트와 같은 기능은 무조건 update가 맞을 것 같아요

navigateToManagement = navigateToManagement,
)
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥🔥🔥🔥

}

fun updateEvent() {
if (_eventLocation.value.isEmpty()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 부분 따로 함수로 뺴는건 어떨까요 ???

Copy link
Member Author

@tgyuuAn tgyuuAn Jan 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jeongjaino

작업해놓았았씁니다!

@jeongjaino jeongjaino added ✏️수정 요청✏️ 코드 리뷰후 코드 수정 요청 and removed 🔥리뷰 기다리는 중🔥 PR을 올리고 코드리뷰를 기다리고 있는 상태입니다. ✏️수정 요청✏️ 코드 리뷰후 코드 수정 요청 labels Jan 3, 2024
@jeongjaino jeongjaino added the 🌟머지 해주세요🌟 코드 리뷰가 완료된 뒤 PR을 올린사람이 Merge를 하면 되는 단계입니다. label Jan 3, 2024
@tgyuuAn tgyuuAn merged commit 3d15a25 into develop Jan 3, 2024
@tgyuuAn tgyuuAn deleted the feature/tgyuu/#78 branch February 6, 2024 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🌟머지 해주세요🌟 코드 리뷰가 완료된 뒤 PR을 올린사람이 Merge를 하면 되는 단계입니다. 🌱기능🌱 새로운 기능 두두둥장! 🎨유아이🎨 피그마, 엑세멜, 컴포즈 유아이/유엑스 작업 🧩태규🧩 ENFP 안태규 24세
Projects
None yet
2 participants