Skip to content
Open
Show file tree
Hide file tree
Changes from 65 commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
6668436
refactor: 구글 지도를 제외한 나머지 뷰 compose로 마이그레이션
jerry8282 Feb 18, 2026
622efd4
feat: 공유 찜 공간 폴더 목록 조회 기능 구현
jerry8282 Feb 19, 2026
c0d70b0
feat: '내 튜립' 카드 컴포저블 구현
jerry8282 Feb 20, 2026
fbdeeb5
feat: MyTuripTabRow 컴포넌트 구현
jerry8282 Feb 20, 2026
2a4847f
feat: 내 튜립(FolderScreen) UI 구현 및 관련 컴포넌트 추가
jerry8282 Feb 20, 2026
83a0cce
refactor: 찜폴더 및 카드 컴포넌트 텍스트 스타일 수정
jerry8282 Feb 20, 2026
14ce42b
refactor: 찜폴더 TopAppBar수정
jerry8282 Feb 20, 2026
e8ba71c
feat: 개인 폴더 아이콘(ic_individual_folder.xml) 추가
jerry8282 Feb 20, 2026
8a9f8cb
refactor: 튜립 장소 목록 조회 기능 및 UI 구조 개선
jerry8282 Feb 20, 2026
c07fd5a
Merge branch 'develop' of https://github.com/woowacourse-teams/2025-T…
jerry8282 Feb 22, 2026
dfcdc11
refactor: update TuripPlace import paths
jerry8282 Feb 22, 2026
c9ec414
[feat] 폴더 목록 조회 및 상세 화면 전환 기능 구현
jerry8282 Feb 22, 2026
ad3042e
fix: FolderScreen의 불필요한 API 호출 제거 및 UI 개선
jerry8282 Feb 22, 2026
0ad499d
feat: FolderScreen 에러 핸들링 및 로그인 내비게이션 구현
jerry8282 Feb 22, 2026
770a11f
feat: 장소 상세 화면(TuripPlaceScreen) 뒤로가기 처리 및 FolderScreen 파라미터 순서 변경
jerry8282 Feb 22, 2026
bde779c
feat: 장소 상세 화면 내 구글 맵 통합 및 UI 개선
jerry8282 Feb 22, 2026
4ad1df4
feat: 지도 접기/펴기 애니메이션 및 레이아웃 전환 로직 개선
jerry8282 Feb 22, 2026
d6605d0
refactor: TuripDetail 및 TuripPlaceScreen 내 공유 버튼 및 관련 콜백 제거
jerry8282 Feb 22, 2026
d09005b
feat: `TuripPlaceScreen` 헤더 구현 및 뒤로가기/더보기 기능 추가
jerry8282 Feb 23, 2026
aa966aa
fix: `TuripPlaceScreen` 내 지도 영역 이탈 방지를 위한 `clipToBounds` 적용
jerry8282 Feb 23, 2026
5a67724
feat: 폴더 추가 바텀시트 UI 및 관련 상태 정의
jerry8282 Feb 23, 2026
a7f291f
feat: FolderAddBottomSheet 내 폴더명 입력 UI 개선
jerry8282 Feb 23, 2026
1a05610
feat: 폴더 추가 바텀시트 및 생성 기능 구현
jerry8282 Feb 23, 2026
bbb9e04
feat: 내 튜립 폴더 삭제 기능 구현 및 UI 업데이트
jerry8282 Feb 23, 2026
b957a83
feat: 기본 폴더 삭제 버튼 비활성화
jerry8282 Feb 23, 2026
649c000
feat: MyTuripCard 롱프레스 딜레이 시간 커스텀 및 리플 효과 구현
jerry8282 Feb 23, 2026
260aeff
feat: 내 튜립 화면에서 상세 화면 이동 시 폴더명 전달 및 UI 적용
jerry8282 Feb 23, 2026
877e313
feat: 찜 목록 더보기 옵션 바텀시트 UI 구현
jerry8282 Feb 23, 2026
81353c2
refactor: 찜 폴더 더보기 바텀시트 아이콘 및 스타일 수정
jerry8282 Feb 23, 2026
c20dccd
feat: MoreOptionBottomSheet 리팩터링 및 클릭 이벤트 연결
jerry8282 Feb 23, 2026
805edfd
feat: 장소 상세 화면 내 더보기 바텀시트 구현
jerry8282 Feb 23, 2026
f491b8b
feat: 찜한 장소(Turip) 삭제 기능 구현
jerry8282 Feb 23, 2026
8049f9d
feat: 찜 폴더 삭제 확인 다이얼로그 추가 및 UI 상태 변수명 변경
jerry8282 Feb 23, 2026
9260098
feat: 찜 폴더 삭제 확인 다이얼로그 추가 및 UI 상태 변수명 변경
jerry8282 Feb 23, 2026
de7016b
feat: 폴더 화면 삭제 모드 해제 제스처 영역 확대
jerry8282 Feb 23, 2026
fe20577
feat: 기본 폴더 삭제 방지 기능 구현
jerry8282 Feb 23, 2026
4dbd611
feat: 폴더 삭제 모드 UI 피드백 및 삭제 로직 구현
jerry8282 Feb 23, 2026
a18c301
feat: 장소 상세 화면 이탈 시 상태 초기화 및 지도 카메라 초기화 로직 개선
jerry8282 Feb 23, 2026
439212c
refactor: TuripPlaceScreen 지도 가시성 전환 로직 및 레이아웃 개선
jerry8282 Feb 23, 2026
e83afb7
refactor: ktlint적용
jerry8282 Feb 23, 2026
ed2af37
feat: 튜립 추가/삭제 시 스낵바 표시
jerry8282 Feb 24, 2026
5c6852f
feat: FolderAddBottomSheet에 title 파라미터 추가 및 적용
jerry8282 Feb 24, 2026
b07863f
feat: MyTuripCard 롱 프레스 및 클릭 핸들링 로직 개선
jerry8282 Feb 24, 2026
ba5805d
feat: 폴더 타입별 아이콘 적용 및 관련 리소스 추가
jerry8282 Feb 24, 2026
1f71365
style: MyTuripCard 배경색 변경 (white -> container)
jerry8282 Feb 24, 2026
76dc78f
refactor: TuripMapContent를 별도의 파일로 분리
jerry8282 Feb 24, 2026
afa26a9
refactor: 폴더 추가 시 입력된 폴더명을 나타내는 변수명 변경
jerry8282 Feb 24, 2026
615bf2b
feat: 장소 저장 폴더(Turip) 이름 수정 기능 구현
jerry8282 Feb 24, 2026
e45003b
feat: 특정 튜립(폴더) 상세 정보 조회 기능 구현 및 UI 상태 관리 개선
jerry8282 Feb 24, 2026
d0ee6aa
feat: 폴더 이름 수정 기능 및 바텀시트 UI 개선
jerry8282 Feb 24, 2026
9302d54
refactor: 찜 폴더 더보기/이름 수정 BottomSheet 통합
jerry8282 Feb 24, 2026
462bb9f
fix: 삭제 완료 시 다이얼로그가 닫히도록 상태 수정
jerry8282 Feb 24, 2026
2e8e11e
refactor: TuripPlaceScreen 매개변수 기본값 제거 및 필수화
jerry8282 Feb 24, 2026
a8b9e20
chore: 튜립 관련 UI 문자열 하드코딩 제거 및 리소스화
jerry8282 Feb 24, 2026
bd7b3ec
refactor: 기본 폴더에 대한 옵션 비활성화 처리
jerry8282 Feb 24, 2026
4de09f3
refactor: 삭제 성공 시 화면 뒤로가기 로직 위치 변경
jerry8282 Feb 24, 2026
cd75b7a
feat: MyTuripCard UI 고도화 및 아이콘 시스템 개선
jerry8282 Feb 24, 2026
aa60b94
refactor: 'ic_togethet_folder' 리소스 이름 오타 수정
jerry8282 Feb 24, 2026
eadb696
refactor: Folder 관련 클래스명을 MyTurip으로 변경
jerry8282 Feb 24, 2026
033172a
refactor: MyTuripScreen folder package로 이동
jerry8282 Feb 24, 2026
490e132
feat: 장소 클릭 시 지도 카메라 이동 및 마커 표시 기능 구현
jerry8282 Feb 25, 2026
ebde1b2
feat: 툴립 장소 지도 이동 기능 구현
jerry8282 Feb 25, 2026
dd2c519
refactor: ktlint적용
jerry8282 Feb 25, 2026
f43f324
feat: 튜립 장소 삭제 실패 시 에러 처리 로직 추가
jerry8282 Feb 25, 2026
77eedc0
chore: TuripPlaceViewModel 로그 메시지 포맷팅 개선
jerry8282 Feb 25, 2026
39c30c3
refactor: MoreOptionBottomSheet 매개변수 순서 변경
jerry8282 Feb 26, 2026
3823106
style: MoreOptionBottomSheet 프리뷰 메서드 명명 규칙 수정 및 불필요한 어노테이션 제거
jerry8282 Feb 26, 2026
292166d
refactor: Bottom 시트 항목 클래스와 구성 요소의 이름을 변경
jerry8282 Feb 26, 2026
1b4bdbc
refactor: TuripPlaceUiState에서 불필요한 isEmpty 프로퍼티 삭제
jerry8282 Feb 26, 2026
8ae2bc8
feat: TuripPlaceScreenMode에 @Immutable 어노테이션 추가
jerry8282 Feb 26, 2026
4996ab9
feat: MoreOptionBottomSheet의 modifier 위치 수정
jerry8282 Feb 26, 2026
c440e47
refactor: 콜백 함수의 매개변수 명시화
jerry8282 Feb 26, 2026
1503bad
feat: 찜 공간 상세 더보기 바텀시트 기능 개선 및 뒤로가기 추가
jerry8282 Feb 26, 2026
121d0d0
feat: MoreOptionBottomSheet 화면 전환 애니메이션 추가
jerry8282 Feb 26, 2026
aa9f9c6
refactor: 바텀시트 내 폴더 이름 상태를 ViewModel로 이전 및 동기화
jerry8282 Feb 26, 2026
ecd2163
refactor: 지도 표시 여부 판단 로직 수정 (`mapHeight` -> `isMapVisible`)
jerry8282 Feb 26, 2026
38348b7
refactor: TuripDetail 내 불필요한 TuripPlacesContent 컴포저블 제거 및 정리
jerry8282 Feb 26, 2026
6ad1bf1
refactor: 찜한 장소 및 상세 화면 관련 컴포넌트 네이밍 수정
jerry8282 Feb 26, 2026
526a5de
refactor: goback 네이밍 onBack으로 수정
jerry8282 Feb 26, 2026
4fe59af
refactor: Remove 다이얼로그 가시성 상태를 UiState로 이전
jerry8282 Feb 26, 2026
65574bc
feat: `TuripDetailScreen` 하단 시트 이벤트 핸들러 및 매개변수 호출 방식 최적화
jerry8282 Feb 26, 2026
55dcc23
refactor: TuripPlaceViewModel 내 화면 모드 변경 시 입력값 초기화 로직 추가
jerry8282 Feb 26, 2026
f2bf80c
feat: 폴더 이름 수정을 위한 공통 UI 컴포넌트 분리 및 모델 패키지 이동
jerry8282 Feb 26, 2026
cd5430f
refactor: ktlint적용
jerry8282 Feb 26, 2026
8f1284b
refactor: MoreOptionItem 및 MoreOptionIcon을 별도 파일로 분리하여 모듈화
jerry8282 Feb 26, 2026
1817a4e
refactor: Folder -> Turip으로 네이밍 변경
jerry8282 Feb 27, 2026
8ae37e8
refactor: 이름 입력 길이 제한 로직을 ViewModel로 이동
jerry8282 Feb 27, 2026
5969e11
refactor: NameEditorSheetContent 컴포넌트 스타일 수정 및 매개변수 명시
jerry8282 Feb 27, 2026
a8f213f
refactor: TuripTheme의 간격(spacing) 상수를 사용하도록 NameEditorSheetContent의 패…
jerry8282 Feb 27, 2026
1f3533b
refactor: NameEditorSheetContentPreview 프리뷰 옵션 간소화
jerry8282 Feb 27, 2026
3e796ca
refactor: MoreOptionIcon 패키지 위치 변경 (component -> model)
jerry8282 Feb 27, 2026
5bd4b1a
refactor: 사용하지 않는 name 변수 제거 및 MoreOptionBottomSheet 상태 관리 최적화
jerry8282 Feb 27, 2026
ffe53ef
refactor: MoreOptionBottomSheet의 콜백 파라미터명 명시적으로 변경
jerry8282 Feb 27, 2026
d6b1a93
fix: 상세페이지 및 더보기 바텀시트 뒤로가기 동작 개선
jerry8282 Feb 27, 2026
70f802a
refactor: MyTuripModel들 model 패키지로 분리
jerry8282 Feb 27, 2026
2cb5bbe
refactor: folderImage -> turipImage 네이밍 변경
jerry8282 Feb 27, 2026
fa7e808
refactor: MyTuripCard 찜 폴더 삭제 가능 여부 판단 로직 개선
jerry8282 Feb 27, 2026
f1cb661
feat: 튜립 화면 탭 및 카드 텍스트 리소스화
jerry8282 Feb 27, 2026
9a7f4f1
refactor: MyTuripScreen 내 필터링된 리스트 계산 방식 개선
jerry8282 Feb 27, 2026
5a62f36
feat: MyTuripScreen 내 커스텀 스낵바 적용 및 스낵바 실행 제어 로직 구현
jerry8282 Feb 27, 2026
cfd30d1
refactor: MyTurip 삭제 다이얼로그 상태 관리 및 데이터 전달 방식 개선
jerry8282 Feb 27, 2026
8d04a80
refactor: ktlint적용
jerry8282 Feb 27, 2026
f8604a8
refactor: MyTuripViewModel 내 로깅 메시지 수정 및 미사용 import 제거
jerry8282 Feb 27, 2026
5f6589d
feat: NameEditorSheetContent 포커스 요청 시점 수정
jerry8282 Feb 27, 2026
8eabb70
refactor: NameEditorSheetContent 힌트 텍스트 폰트 두께 수정
jerry8282 Feb 27, 2026
7a855da
Merge branch 'develop' of https://github.com/woowacourse-teams/2025-T…
jerry8282 Feb 28, 2026
42d1bd2
refactor: TuripTypeModel 내 정적 팩토리 메서드 명칭 변경 (of -> from)
jerry8282 Feb 28, 2026
ca3b113
refactor: MoreOptionBottomSheet Preview 함수명 변경
jerry8282 Feb 28, 2026
f37df59
refactor: `MyTuripTabRow`에서 `TabRow`를 `SecondaryTabRow`로 변경
jerry8282 Feb 28, 2026
7f1174c
refactor: 바텀시트 이름 변경 콜백의 파라미터 네이밍 명시화
jerry8282 Feb 28, 2026
50fb77c
refactor: MyTuripScreen 내 Scaffold contentWindowInsets 설정 최적화
jerry8282 Feb 28, 2026
3f20c53
refactor: MyTuripScreen 하드코딩된 문자열을 리소스화 (R.string.my_turip_screen_title)
jerry8282 Feb 28, 2026
fcdf71a
refactor: MyTuripViewModel 코드 포맷팅 개선
jerry8282 Feb 28, 2026
b7075ca
feat: 내 츄립 폴더 조회 실패 시 에러 처리 로직 추가
jerry8282 Feb 28, 2026
5f863d7
refactor: MyTuripViewModel 에러 처리 로직 개선 및 재시도 액션 추가
jerry8282 Feb 28, 2026
41a5cdb
fix: 튜립 폴더 추가 및 삭제 시 UI 상태 관리 로직 개선
jerry8282 Feb 28, 2026
d66c7ed
refactor: MyTuripViewModel 로딩 및 에러 처리 로직 개선
jerry8282 Feb 28, 2026
3ab3b59
refactor: UpdateTuripPlaceUseCase 제거 및 TuripRepository 직접 호출로 변경
jerry8282 Feb 28, 2026
b57678b
refactor: 튜립 장소 업데이트 기능을 삭제 기능으로 변경
jerry8282 Feb 28, 2026
934bcbf
feat: 장소 순서 변경 로직 ViewModel 이전 및 드래그 앤 드롭 UI 상태 관리 개선
jerry8282 Feb 28, 2026
304173b
feat: 찜한 장소 순서 변경 기능 및 에러 핸들링 구현
jerry8282 Feb 28, 2026
2d31d11
refactor: turip models를 compose package 로 이동
jerry8282 Feb 28, 2026
429efd6
refactor: TuripDetailViewModel 내 장소 삭제 실패 시 롤백 로직을 별도 메서드로 분리하여 호출 하도…
jerry8282 Feb 28, 2026
3b40089
feat: 내 튜립 삭제 시 UI 스냅샷 저장 및 롤백 기능 구현
jerry8282 Feb 28, 2026
d698f1b
refactor: 튜립 관련 문자열 리소스 키 이름 변경 및 리소스 추가
jerry8282 Feb 28, 2026
7b85c74
refactor: favorite패키지 turipdetail패키지로 네이밍 변경
jerry8282 Feb 28, 2026
1a2ce65
refactor: TuripNameStatusModel 과 NameEditorSheetContent를 common UI pa…
jerry8282 Feb 28, 2026
2b8647b
feat: 튜립 이름 수정 시 중복 이름 에러 처리 로직 추가
jerry8282 Feb 28, 2026
8ff4022
refactor: ktlint적용
jerry8282 Feb 28, 2026
7425cbf
refactor: MyTuripViewModel 코드 가독성 개선
jerry8282 Feb 28, 2026
840f673
refactor: MyTuripViewModel의 addTurip 함수 리팩터링
jerry8282 Feb 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions android/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ plugins {

android {
namespace = "com.on.turip"
compileSdk = 35
compileSdk = 36

defaultConfig {
applicationId = "com.on.turip"
Expand Down Expand Up @@ -152,7 +152,7 @@ dependencies {
implementation(libs.coil.network.okhttp)

// maps
implementation(libs.play.services.maps)
implementation(libs.google.map)

// app update
implementation(libs.app.update)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ fun TuripResponse.toDomain(): Turip =
name = name,
isDefault = isDefault,
placeCount = placeCount,
memberCount = memberCount,
isShared = isShared,
)

fun TuripCreationResponse.toDomain(): Turip =
Expand All @@ -28,6 +30,8 @@ fun TuripCreationResponse.toDomain(): Turip =
name = name,
isDefault = isDefault,
placeCount = 0,
memberCount = 0,
isShared = false,
)

fun String.toPostRequestDto(): TuripPostRequest = TuripPostRequest(name = this)
Expand All @@ -42,6 +46,8 @@ fun TuripByPlaceResponse.toDomain(): Turip =
name = name,
isDefault = false,
placeCount = 0,
memberCount = 0,
isShared = false,
hasIncludePlace = isTuripPlace,
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.on.turip.data.turip.dto.TuripPatchRequest
import com.on.turip.data.turip.dto.TuripPlaceOrderRequest
import com.on.turip.data.turip.dto.TuripPlacesResponse
import com.on.turip.data.turip.dto.TuripPostRequest
import com.on.turip.data.turip.dto.TuripResponse
import com.on.turip.data.turip.dto.TuripsByPlaceResponse
import com.on.turip.data.turip.dto.TuripsResponse
import com.on.turip.data.turip.service.TuripService
Expand All @@ -20,6 +21,11 @@ class DefaultTuripRemoteDataSource @Inject constructor(
private val turipService: TuripService,
private val coroutineContext: CoroutineContext = Dispatchers.IO,
) : TuripRemoteDataSource {
override suspend fun getTurip(turipId: Long): TuripResult<TuripResponse> =
withContext(coroutineContext) {
safeApiCall { turipService.getTurip(turipId) }
}

override suspend fun getTurips(): TuripResult<TuripsResponse> =
withContext(coroutineContext) {
safeApiCall { turipService.getTurips() }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ import com.on.turip.data.turip.dto.TuripPatchRequest
import com.on.turip.data.turip.dto.TuripPlaceOrderRequest
import com.on.turip.data.turip.dto.TuripPlacesResponse
import com.on.turip.data.turip.dto.TuripPostRequest
import com.on.turip.data.turip.dto.TuripResponse
import com.on.turip.data.turip.dto.TuripsByPlaceResponse
import com.on.turip.data.turip.dto.TuripsResponse

interface TuripRemoteDataSource {
suspend fun getTurip(turipId: Long): TuripResult<TuripResponse>

suspend fun getTurips(): TuripResult<TuripsResponse>

suspend fun postTurip(turipPostRequest: TuripPostRequest): TuripResult<TuripCreationResponse>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@ data class TuripResponse(
val isDefault: Boolean,
@SerialName("placeCount")
val placeCount: Int,
@SerialName("memberCount")
val memberCount: Int,
@SerialName("isShared")
val isShared: Boolean,
)
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ import javax.inject.Inject
class DefaultTuripRepository @Inject constructor(
private val turipRemoteDataSource: TuripRemoteDataSource,
) : TuripRepository {
override suspend fun loadTurip(turipId: Long): TuripResult<Turip> =
turipRemoteDataSource.getTurip(turipId).mapCatching { it.toDomain() }

override suspend fun loadTurips(): TuripResult<List<Turip>> = turipRemoteDataSource.getTurips().mapCatching { it.toDomain() }

override suspend fun createTurip(name: String): TuripResult<Turip> =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.on.turip.data.turip.dto.TuripPatchRequest
import com.on.turip.data.turip.dto.TuripPlaceOrderRequest
import com.on.turip.data.turip.dto.TuripPlacesResponse
import com.on.turip.data.turip.dto.TuripPostRequest
import com.on.turip.data.turip.dto.TuripResponse
import com.on.turip.data.turip.dto.TuripsByPlaceResponse
import com.on.turip.data.turip.dto.TuripsResponse
import de.jensklingenberg.ktorfit.http.Body
Expand All @@ -18,6 +19,11 @@ import de.jensklingenberg.ktorfit.http.Path
import de.jensklingenberg.ktorfit.http.Query

interface TuripService {
@GET("turips/{turipId}")
suspend fun getTurip(
@Path("turipId") turipId: Long,
): TuripResponse

@GET("turips")
suspend fun getTurips(): TuripsResponse

Expand Down
2 changes: 2 additions & 0 deletions android/app/src/main/java/com/on/turip/domain/turip/Turip.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@ data class Turip(
val name: String,
val isDefault: Boolean,
val placeCount: Int,
val memberCount: Int,
val isShared: Boolean,
val hasIncludePlace: Boolean = false,
)
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import com.on.turip.domain.bookmark.TuripPlace
import com.on.turip.domain.turip.Turip

interface TuripRepository {
suspend fun loadTurip(turipId: Long): TuripResult<Turip>

suspend fun loadTurips(): TuripResult<List<Turip>>

suspend fun createTurip(name: String): TuripResult<Turip>
Expand Down
Loading