Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
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
461 changes: 461 additions & 0 deletions EATSSU/App/Resources/en.lproj/Localizable.strings

Large diffs are not rendered by default.

462 changes: 462 additions & 0 deletions EATSSU/App/Resources/ko.lproj/Localizable.strings

Large diffs are not rendered by default.

13 changes: 7 additions & 6 deletions EATSSU/App/Sources/Notification/NotificationManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -119,25 +119,26 @@ class NotificationManager {
}

// MARK: - Error Types

enum NotificationError: Error {
case permissionDenied
case unknown

var message: String {
switch self {
case .permissionDenied:
return "알림 권한 필요"
return TextLiteral.Notification.permissionDeniedMessage
case .unknown:
return "알 수 없는 오류"
return TextLiteral.Notification.unknownErrorMessage
}
}

var description: String {
switch self {
case .permissionDenied:
return "알림을 받으려면 설정에서 알림 권한을 허용해주세요."
return TextLiteral.Notification.permissionDeniedDescription
case .unknown:
return "다시 시도해주세요."
return TextLiteral.Notification.unknownErrorDescription
}
}
}
Expand Down
43 changes: 22 additions & 21 deletions EATSSU/App/Sources/Presentation/Auth/View/LoginView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,30 @@ final class LoginView: BaseUIView {
imageView.image = EATSSUDesignAsset.Images.authLogo.image
return imageView
}()

private let logoSubTitle: UIImageView = {
let imageView = UIImageView()
imageView.image = EATSSUDesignAsset.Images.authSubTitle.image
return imageView
}()

let appleLoginButton: UIButton = {
let button = UIButton()
button.setImage(EATSSUDesignAsset.Images.appleLoginButton.image, for: .normal)
return button
}()

let kakaoLoginButton: UIButton = {
let button = UIButton()
button.setImage(EATSSUDesignAsset.Images.kakaoLoginButton.image, for: .normal)
return button

private let logoSubTitle: UILabel = {
let label = UILabel()
label.font = .header2
label.attributedText = TextLiteral.Common.logoSubTitle.logoHighlightedLastWord(
baseColor: .black,
highlightColor: .primary
)
return label
}()


let appleLoginButton = SocialLoginButton(type: .apple)

let kakaoLoginButton = SocialLoginButton(type: .kakao)

let lookingWithNoSignInButton: UIButton = {
let button = UIButton()
button.setImage(EATSSUDesignAsset.Images.lookAroundButton.image, for: .normal)
let button = UIButton(type: .system)
button.setTitle(TextLiteral.Auth.lookingWithNoSignIn, for: .normal)
button.setTitleColor(.gray400, for: .normal)
button.titleLabel?.font = .body2
button.backgroundColor = .clear
return button
}()

private var lastLoginTooltipView: LastLoginTooltipView?

override func configureUI() {
Expand All @@ -69,11 +68,13 @@ final class LoginView: BaseUIView {

appleLoginButton.snp.makeConstraints {
$0.centerX.equalToSuperview()
$0.horizontalEdges.equalToSuperview().inset(45)
$0.bottom.equalTo(self.safeAreaLayoutGuide).inset(151)
}

kakaoLoginButton.snp.makeConstraints {
$0.centerX.equalToSuperview()
$0.horizontalEdges.equalToSuperview().inset(45)
$0.bottom.equalTo(self.safeAreaLayoutGuide).inset(90)
}

Expand Down
84 changes: 60 additions & 24 deletions EATSSU/App/Sources/Presentation/MyPage/Enum/MyPageLabels.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,65 @@

import Foundation

/// "마이파이지"에서 확인할 수 있는 서비스 리스트
enum MyPageLabels: Int {
/// 푸시 알림 설정
case NotificationSetting = 0

/// 내 정보
case MyInfo
/// "마이페이지"에서 확인할 수 있는 서비스 리스트
enum MyPageLabels {
case notificationSetting
case myInfo
case myReview
case inquiry
case creators
case instagram
case languageSetting
case termsAndPolicy
case logout

/// 내 리뷰
case MyReview

/// 문의하기
case Inquiry

/// 서비스 이용약관
case TermsOfUse

/// 개인정보 이용약관
case PrivacyTermsOfUse

/// 만든사람들
case Creator

/// 로그아웃
case Logout
var title: String {
switch self {
case .notificationSetting:
return TextLiteral.MyPage.pushNotificationSetting
case .myInfo:
return TextLiteral.MyPage.myInfo
case .myReview:
return TextLiteral.MyPage.myReview
case .inquiry:
return TextLiteral.MyPage.inquiry
case .creators:
return TextLiteral.MyPage.creators
case .instagram:
return TextLiteral.MyPage.instagram
case .languageSetting:
return TextLiteral.MyPage.languageSetting
case .termsAndPolicy:
return TextLiteral.MyPage.termsAndPolicy
case .logout:
return TextLiteral.MyPage.logout
}
}

var subtitle: String? {
switch self {
case .notificationSetting:
return TextLiteral.MyPage.pushNotificationDescription
default:
return nil
}
}

var rightText: String? {
switch self {
case .languageSetting:
return TextLiteral.MyPage.currentLanguage
default:
return nil
}
}

var showsDisclosure: Bool {
switch self {
case .notificationSetting, .logout:
return false
default:
return true
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//
// MyPageTableMetric.swift
// EATSSU
//
// Created by jeongminji on 5/3/26.
//

import Foundation

enum MyPageTableMetric {
static let normalRowHeight: CGFloat = 48
static let notificationRowHeight: CGFloat = 74
static let headerHeight: CGFloat = 18
static let footerHeight: CGFloat = 16

static func rowHeight(for item: MyPageLabels) -> CGFloat {
switch item {
case .notificationSetting:
return notificationRowHeight

default:
return normalRowHeight
}
}
}
42 changes: 0 additions & 42 deletions EATSSU/App/Sources/Presentation/MyPage/Model/MyPageLocalData.swift

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
//
// MyPageSectionData.swift
// EATSSU
//
// Created by jeongminji on 5/3/26.
//

import Foundation

struct MyPageSectionData {
let headerTitle: String
let items: [MyPageLabels]
}

extension MyPageSectionData {
static var sections: [MyPageSectionData] {
[
MyPageSectionData(
headerTitle: TextLiteral.MyPage.activitySection,
items: [
.notificationSetting,
.myInfo,
.myReview
]
),
MyPageSectionData(
headerTitle: TextLiteral.MyPage.serviceInfoSection,
items: [
.inquiry,
.creators,
.instagram
]
),
MyPageSectionData(
headerTitle: TextLiteral.MyPage.etcSection,
items: [
.languageSetting,
.termsAndPolicy,
.logout
]
)
]
}
}
Loading