Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
5756b21
[Feat] 매장별 환급쿠폰 전체 조회 API를 CouponEndpoint에 추가
blwxnhan Aug 18, 2025
1b2d3ae
[Feat] 매장별 환급쿠폰 전체 조회 API를 CouponService에 로직 추가 및 MarketDetailViewMod…
blwxnhan Aug 18, 2025
881e3e7
[Feat] 환급 쿠폰 다운로드 API MemberCouponEndpoint에 추가
blwxnhan Aug 18, 2025
b21fc20
[Feat] 환급쿠폰 다운로드 API를 MemberCouponService에 로직 추가
blwxnhan Aug 18, 2025
b71dc19
[Feat] 환급쿠폰 다운로드 로직 viewModel에 추가
blwxnhan Aug 18, 2025
a72e37a
[Feat] 쿠폰 타입별 다운로드 API 분리
blwxnhan Aug 18, 2025
c0f2572
[Feat] 환급 쿠폰, 증정 쿠폰 DTO 통일 및 각각 다운로드 처리
blwxnhan Aug 19, 2025
034466d
Merge pull request #52 from MarketPlace-O2O-Platform/Feat#49/MarketDe…
yena0213 Aug 19, 2025
643ec36
[Feat] 로그인 없이 접근 시 보여줄 화면 구현 및 마이페이지에 적용
blwxnhan Aug 19, 2025
3fea584
[Docs] 파일 정리
blwxnhan Aug 19, 2025
6dc4adc
[Feat] 공감 매장 LoginRequiredView 적용
blwxnhan Aug 19, 2025
c09b784
[Feat] 로그인없이 쿠폰 다운로드 클릭 시 보여줄 popup 화면 구현
blwxnhan Aug 20, 2025
3d9d56c
[Feat] 로그인 없이 접근 할 시 전환 로직 구현
blwxnhan Aug 21, 2025
102be26
[Feat] Login 정보 잘못 입력 시 처리 추가
blwxnhan Aug 21, 2025
58ce8e7
[Feat] 비로그인 시 메인화면 알림창 버튼 분기처리
blwxnhan Aug 21, 2025
5cd8da6
Merge pull request #54 from MarketPlace-O2O-Platform/Feat#53/Accessib…
yena0213 Aug 21, 2025
3e2b0a8
[Docs] Info.plist 기기 접근 문구 작성
blwxnhan Aug 21, 2025
992cc1f
Merge pull request #55 from MarketPlace-O2O-Platform/Docs/ModifiedInfo
yena0213 Aug 21, 2025
4cc93a7
Merge pull request #56 from MarketPlace-O2O-Platform/Feature#43/AlarmAPI
blwxnhan Aug 22, 2025
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
Binary file modified .DS_Store
Binary file not shown.
32 changes: 22 additions & 10 deletions MarketPlace.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
2941F7952DE5A5760063CEFE /* Top20DetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7942DE5A5760063CEFE /* Top20DetailViewModel.swift */; };
2941F7972DE5AAB50063CEFE /* NewEventViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7962DE5AAB50063CEFE /* NewEventViewModel.swift */; };
2941F79B2DE5DFDB0063CEFE /* MapViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F79A2DE5DFDB0063CEFE /* MapViewModel.swift */; };
2941F7A12DE5F7FE0063CEFE /* MarketInfoCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2941F7A02DE5F7FE0063CEFE /* MarketInfoCellViewModel.swift */; };
295DCBB02DED6DC0009B5D82 /* MyPageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295DCBAF2DED6DC0009B5D82 /* MyPageViewModel.swift */; };
295DCBB62DED78C0009B5D82 /* MyCouponViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295DCBB52DED78C0009B5D82 /* MyCouponViewModel.swift */; };
295DCBB82DED7C92009B5D82 /* CouponStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295DCBB72DED7C92009B5D82 /* CouponStatus.swift */; };
Expand Down Expand Up @@ -73,6 +72,8 @@
29BF18BF2DE45B3900836D7E /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BF18BE2DE45B3900836D7E /* Category.swift */; };
29BF18C12DE4950700836D7E /* APIResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BF18C02DE4950700836D7E /* APIResDto.swift */; };
29BF193A2DE4AC9600836D7E /* MainHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BF19392DE4AC9600836D7E /* MainHeaderView.swift */; };
29CA0F212E54821C00EB4890 /* LoginRequiredView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CA0F202E54821C00EB4890 /* LoginRequiredView.swift */; };
29CA0F232E5484B100EB4890 /* MarketInfoCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CA0F222E5484B100EB4890 /* MarketInfoCellViewModel.swift */; };
29D19D1C2E13CC2000DEEADD /* KakaoMarketDataResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D19D1B2E13CC2000DEEADD /* KakaoMarketDataResDto.swift */; };
29D19D202E13E63B00DEEADD /* RequestMarketMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D19D1F2E13E63B00DEEADD /* RequestMarketMapView.swift */; };
29D19D2D2E14234900DEEADD /* RequestMarketMapViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D19D2C2E14234900DEEADD /* RequestMarketMapViewModel.swift */; };
Expand All @@ -87,6 +88,7 @@
29E749322DEEA91100E765E0 /* MyCouponCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E749312DEEA91100E765E0 /* MyCouponCellViewModel.swift */; };
29E749342DEEABFA00E765E0 /* MyCouponResDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E749332DEEABFA00E765E0 /* MyCouponResDto.swift */; };
29E749362DEECFBA00E765E0 /* FavoriteMarketModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29E749352DEECFBA00E765E0 /* FavoriteMarketModel.swift */; };
29F588FB2E548EE00022EE89 /* LoginRequriedPopup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29F588FA2E548EE00022EE89 /* LoginRequriedPopup.swift */; };
B207A25F2D54B18C0099A8DB /* MyCouponCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B207A25E2D54B18C0099A8DB /* MyCouponCell.swift */; };
B210EC242D3D686500B1551E /* MyHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B210EC232D3D686500B1551E /* MyHeaderView.swift */; };
B210EC282D3D797F00B1551E /* SearchHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = B210EC272D3D797F00B1551E /* SearchHeader.swift */; };
Expand Down Expand Up @@ -212,7 +214,6 @@
2941F7942DE5A5760063CEFE /* Top20DetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Top20DetailViewModel.swift; sourceTree = "<group>"; };
2941F7962DE5AAB50063CEFE /* NewEventViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewEventViewModel.swift; sourceTree = "<group>"; };
2941F79A2DE5DFDB0063CEFE /* MapViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapViewModel.swift; sourceTree = "<group>"; };
2941F7A02DE5F7FE0063CEFE /* MarketInfoCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketInfoCellViewModel.swift; sourceTree = "<group>"; };
295DCBAF2DED6DC0009B5D82 /* MyPageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyPageViewModel.swift; sourceTree = "<group>"; };
295DCBB52DED78C0009B5D82 /* MyCouponViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponViewModel.swift; sourceTree = "<group>"; };
295DCBB72DED7C92009B5D82 /* CouponStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponStatus.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -243,6 +244,8 @@
29BF18BE2DE45B3900836D7E /* Category.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = "<group>"; };
29BF18C02DE4950700836D7E /* APIResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIResDto.swift; sourceTree = "<group>"; };
29BF19392DE4AC9600836D7E /* MainHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainHeaderView.swift; sourceTree = "<group>"; };
29CA0F202E54821C00EB4890 /* LoginRequiredView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequiredView.swift; sourceTree = "<group>"; };
29CA0F222E5484B100EB4890 /* MarketInfoCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketInfoCellViewModel.swift; sourceTree = "<group>"; };
29D19D1B2E13CC2000DEEADD /* KakaoMarketDataResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KakaoMarketDataResDto.swift; sourceTree = "<group>"; };
29D19D1F2E13E63B00DEEADD /* RequestMarketMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMarketMapView.swift; sourceTree = "<group>"; };
29D19D2C2E14234900DEEADD /* RequestMarketMapViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMarketMapViewModel.swift; sourceTree = "<group>"; };
Expand All @@ -257,6 +260,7 @@
29E749312DEEA91100E765E0 /* MyCouponCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponCellViewModel.swift; sourceTree = "<group>"; };
29E749332DEEABFA00E765E0 /* MyCouponResDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponResDto.swift; sourceTree = "<group>"; };
29E749352DEECFBA00E765E0 /* FavoriteMarketModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteMarketModel.swift; sourceTree = "<group>"; };
29F588FA2E548EE00022EE89 /* LoginRequriedPopup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequriedPopup.swift; sourceTree = "<group>"; };
B207A25E2D54B18C0099A8DB /* MyCouponCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCouponCell.swift; sourceTree = "<group>"; };
B210EC232D3D686500B1551E /* MyHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyHeaderView.swift; sourceTree = "<group>"; };
B210EC272D3D797F00B1551E /* SearchHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchHeader.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -371,6 +375,7 @@
290D93502DE57CCD008AC190 /* Main */ = {
isa = PBXGroup;
children = (
29CA0F222E5484B100EB4890 /* MarketInfoCellViewModel.swift */,
B2122E3E2D6F7D4000BD37F8 /* MarketCategoryDetailViewModel.swift */,
B28A22A72D64B0F900E86EF6 /* MarketDetailViewModel.swift */,
290D93512DE57CDE008AC190 /* CouponInfoCellViewModel.swift */,
Expand Down Expand Up @@ -847,7 +852,6 @@
290D93502DE57CCD008AC190 /* Main */,
B2A42DCB2D843626005FAF15 /* Login */,
B27E56CE2D703B0B000D2881 /* Cheer */,
2941F7A02DE5F7FE0063CEFE /* MarketInfoCellViewModel.swift */,
);
path = ViewModel;
sourceTree = "<group>";
Expand All @@ -858,6 +862,8 @@
B2C3992C2CA1BF7F004800DD /* CategoryButton.swift */,
B21F3D082D2D57BE00B83B34 /* Color.swift */,
B28889A02D4BBCB80040EC3F /* Logger.swift */,
29CA0F202E54821C00EB4890 /* LoginRequiredView.swift */,
29F588FA2E548EE00022EE89 /* LoginRequriedPopup.swift */,
);
path = UICommon;
sourceTree = "<group>";
Expand Down Expand Up @@ -1101,6 +1107,7 @@
B28349112D2E548A00EEDB02 /* MapView.swift in Sources */,
290D93542DE58418008AC190 /* CouponBasicModel.swift in Sources */,
B2C398FD2CA145CB004800DD /* MarketPlaceApp.swift in Sources */,
29CA0F232E5484B100EB4890 /* MarketInfoCellViewModel.swift in Sources */,
29B3EBC02E03F3260095A310 /* CustomAlertView.swift in Sources */,
B28A22AD2D64F1C000E86EF6 /* StoreSearchButton.swift in Sources */,
2941F78D2DE5A28A0063CEFE /* CouponService.swift in Sources */,
Expand Down Expand Up @@ -1148,7 +1155,6 @@
B28889AE2D4BDC4D0040EC3F /* MembersCouponModel.swift in Sources */,
B293A15A2D6FE0B4003E8505 /* CheerView.swift in Sources */,
29E749342DEEABFA00E765E0 /* MyCouponResDto.swift in Sources */,
2941F7A12DE5F7FE0063CEFE /* MarketInfoCellViewModel.swift in Sources */,
290A71B52E02C8AE009AEAF8 /* CouponPopupViewModel.swift in Sources */,
290D93522DE57CDE008AC190 /* CouponInfoCellViewModel.swift in Sources */,
B293A1522D6FDC7B003E8505 /* CheerListView.swift in Sources */,
Expand All @@ -1163,6 +1169,7 @@
2941F79B2DE5DFDB0063CEFE /* MapViewModel.swift in Sources */,
290A71AF2E027909009AEAF8 /* ShimmeringAsyncImage.swift in Sources */,
B27E56CD2D7037AF000D2881 /* CheerMarketModel.swift in Sources */,
29F588FB2E548EE00022EE89 /* LoginRequriedPopup.swift in Sources */,
B28A22C02D668B0600E86EF6 /* MyFavoriteShopListView.swift in Sources */,
B24272632E2657C700E3B0ED /* SubmitReceiptViewModel.swift in Sources */,
B26F4E892E54650C00C39C37 /* NotificationService.swift in Sources */,
Expand All @@ -1177,6 +1184,7 @@
B215F2962DE6D77B00F53C51 /* AlertListView.swift in Sources */,
B28349162D2E604800EEDB02 /* ShopModel.swift in Sources */,
B21F3CF72D267AF900B83B34 /* NewEventView.swift in Sources */,
29CA0F212E54821C00EB4890 /* LoginRequiredView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -1344,13 +1352,15 @@
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_ASSET_PATHS = "\"MarketPlace/Preview Content\"";
DEVELOPMENT_TEAM = 7RR74CRWQW;
DEVELOPMENT_TEAM = F7GYZYWC6V;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MarketPlace/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "쿠러미";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "위치 권한 받아오기";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "위치 권한 받아오기";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "사용자 근처의 매장을 안내해드리기 위해 위치 정보가 필요합니다.";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "사용자 근처의 매장을 안내해드리기 위해 위치 정보가 필요합니다.";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "매장 방문 인증을 위한 영수증을 제출하기 위해 사진 접근권한 라이브러리가 필요합니다.";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "매장 방문 인증을 위한 영수증을 제출하기 위해 사진 접근권한 라이브러리가 필요합니다.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
Expand Down Expand Up @@ -1379,13 +1389,15 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"MarketPlace/Preview Content\"";
DEVELOPMENT_TEAM = 7RR74CRWQW;
DEVELOPMENT_TEAM = F7GYZYWC6V;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MarketPlace/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "쿠러미";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "위치 권한 받아오기";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "위치 권한 받아오기";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "사용자 근처의 매장을 안내해드리기 위해 위치 정보가 필요합니다.";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "사용자 근처의 매장을 안내해드리기 위해 위치 정보가 필요합니다.";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "매장 방문 인증을 위한 영수증을 제출하기 위해 사진 접근권한 라이브러리가 필요합니다.";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "매장 방문 인증을 위한 영수증을 제출하기 위해 사진 접근권한 라이브러리가 필요합니다.";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
Expand Down
Binary file modified MarketPlace/.DS_Store
Binary file not shown.
5 changes: 4 additions & 1 deletion MarketPlace/API/Endpoint/CouponEndpoint.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import Foundation

enum CouponEndpoint: Endpoint {
case fetchValidCoupon(marketId: Int, couponId: Int?, size: Int?)
case fetchValidPaybackCoupon(marketId: Int, couponId: Int?, size: Int?)
case fetchTopPoplarCoupon(pageSize: Int?)
case fetchTopLatestCoupon(pageSize: Int?)
case fetchTopClosingCoupon(pageSize: Int?)
Expand All @@ -21,6 +22,7 @@ enum CouponEndpoint: Endpoint {
var path: String {
switch self {
case .fetchValidCoupon: return "api/coupons"
case .fetchValidPaybackCoupon: return "api/payback-coupons"
case .fetchTopPoplarCoupon: return "api/coupons/top/popular"
case .fetchTopLatestCoupon: return "api/coupons/top/latest"
case .fetchTopClosingCoupon: return "api/coupons/top/closing"
Expand Down Expand Up @@ -90,7 +92,8 @@ enum CouponEndpoint: Endpoint {

return items

case .fetchValidCoupon(let marketId, let couponId, let size):
case .fetchValidCoupon(let marketId, let couponId, let size),
.fetchValidPaybackCoupon(let marketId, let couponId, let size):
var items: [URLQueryItem] = []

items.append(contentsOf: [
Expand Down
6 changes: 5 additions & 1 deletion MarketPlace/API/Endpoint/MemberCouponEndpoint.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import Foundation

enum MemberCouponEndpoint: Endpoint {
case downloadCoupon(couponId: Int)
case downloadPaybackCoupon(couponId: Int)
case fetchMemberCoupon(type: String, memberCouponId: Int?, size: Int?)
case useMemberCoupon(memberCouponId: Int)
case fetchMemeberPaybackCoupon(type: String, memberCouponId: Int?, size: Int?)
Expand All @@ -18,6 +19,7 @@ enum MemberCouponEndpoint: Endpoint {
var path: String {
switch self {
case .downloadCoupon(let couponId): return "api/members/coupons/\(couponId)"
case .downloadPaybackCoupon(let couponId): return "api/members/payback-coupons/\(couponId)"
case .fetchMemberCoupon: return "api/members/coupons"
case .useMemberCoupon: return "api/members/coupons"
case .fetchMemeberPaybackCoupon: return "api/members/payback-coupons"
Expand All @@ -26,7 +28,9 @@ enum MemberCouponEndpoint: Endpoint {

var method: HTTPMethod {
switch self {
case .downloadCoupon: .post
case .downloadCoupon,
.downloadPaybackCoupon:
.post
case .fetchMemberCoupon,
.fetchMemeberPaybackCoupon:
.get
Expand Down
2 changes: 0 additions & 2 deletions MarketPlace/API/Service/NetworkService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ final class NetworkService: NetworkServiceProtocol {
}

print(request.url)
print(request.allHTTPHeaderFields)
print(request.httpBody)

do {

Expand Down
51 changes: 31 additions & 20 deletions MarketPlace/ContentView.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import SwiftUI

struct ContentView: View {
@EnvironmentObject var loginVM: LoginViewModel

init() {
setupTabBarAppearance()
Expand Down Expand Up @@ -31,29 +32,39 @@ struct ContentView: View {
.multilineTextAlignment(.center)
}
}

CheerView()
.tabItem {
VStack {
Image(systemName: "heart.fill")
.resizable()
.scaledToFit()
.frame(width: 18, height: 16)
Text("공감")
.pretendardFont(size: 12, weight: .medium)
.multilineTextAlignment(.center)
}

Group {
if loginVM.isLoggedIn {
CheerView()
} else {
LoginRequiredView()
}
}.tabItem {
VStack {
Image(systemName: "heart.fill")
.resizable()
.scaledToFit()
.frame(width: 18, height: 16)
Text("공감")
.pretendardFont(size: 12, weight: .medium)
.multilineTextAlignment(.center)
}
}

MyPageView()
.tabItem {
VStack {
Image(uiImage: resizeImage(named: "userIcon", width: 24, height: 24))
Text("마이페이지")
.pretendardFont(size: 12, weight: .medium)
.multilineTextAlignment(.center)
}
Group {
if loginVM.isLoggedIn {
MyPageView()
} else {
LoginRequiredView()
}
}.tabItem {
VStack {
Image(uiImage: resizeImage(named: "userIcon", width: 24, height: 24))
Text("마이페이지")
.pretendardFont(size: 12, weight: .medium)
.multilineTextAlignment(.center)
}
}
}
.background(Color.white)
.accentColor(Color(hex: "#303030"))
Expand Down
6 changes: 1 addition & 5 deletions MarketPlace/MarketPlaceApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,7 @@ struct MarketPlaceApp: App {

var body: some Scene {
WindowGroup {
if loginVM.isLoggedIn {
ContentView()
} else {
LoginView()
}
ContentView()
}
.environmentObject(loginVM)
}
Expand Down
5 changes: 3 additions & 2 deletions MarketPlace/Model/CouponModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,10 @@ struct CouponValidModel: Codable, Identifiable {
let couponId: Int
let couponName: String
let couponDescription: String
let deadLine: String
var isAvailable: Bool
let deadLine: String?
var isAvailable: Bool?
var isMemberIssued: Bool
var couponType: String

var id: Int { couponId }
}
Expand Down
Loading
Loading