diff --git a/Koin/Core/View/OrderHistoryUIComponents/EmptyStateView.swift b/Koin/Core/View/OrderHistoryUIComponents/EmptyStateView.swift deleted file mode 100644 index 94db407b..00000000 --- a/Koin/Core/View/OrderHistoryUIComponents/EmptyStateView.swift +++ /dev/null @@ -1,133 +0,0 @@ -// -// EmptyStateView.swift -// koin -// -// Created by 김성민 on 9/19/25. -// - -import UIKit -import SnapKit - -final class EmptyStateView: UIView { - - var onTapAction: (() -> Void)? - private var symbolCenterY: Constraint? - - struct Config{ - let title: String - let showSeeOrderHistoryButton: Bool - } - - private let centerGuide = UILayoutGuide() - - private let symbolImageView = UIImageView().then { - $0.image = UIImage.appImage(asset: .sleepBcsdSymbol) - } - - private let noOrderHistoryLabel = UILabel().then { - $0.text = "주문 내역이 없어요" - $0.font = UIFont.appFont(.pretendardBold, size: 18) - $0.textColor = UIColor.appColor(.new500) - $0.textAlignment = .center - } - - private let seeOrderHistoryButton = UIButton( - configuration: { - var config = UIButton.Configuration.plain() - config.attributedTitle = AttributedString("과거 주문 내역 보기", attributes: .init([ - .font: UIFont.appFont(.pretendardBold, size: 13) - ])) - config.baseForegroundColor = UIColor.appColor(.neutral500) - - var background = UIBackgroundConfiguration.clear() - background.cornerRadius = 8 - background.backgroundColor = UIColor.appColor(.neutral0) - config.background = background - - config.contentInsets = NSDirectionalEdgeInsets(top: 7, leading: 7, bottom: 7, trailing: 7) - return config - }() - ).then { - $0.layer.masksToBounds = false - $0.layer.shadowColor = UIColor.black.cgColor - $0.layer.shadowOpacity = 0.2 - $0.layer.shadowOffset = CGSize(width: 0, height: 2) - $0.layer.shadowRadius = 4 - } - - override init(frame: CGRect){ - super.init(frame: frame) - configureView() - setAddTarget() - isHidden = true - - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - -} - - -// MARK: - Set UI - -extension EmptyStateView { - - private func configureView() { - backgroundColor = UIColor.appColor(.newBackground) - setLayout() - } - - private func setLayout(){ - [symbolImageView, noOrderHistoryLabel, seeOrderHistoryButton].forEach{ - addSubview($0) - } - - addLayoutGuide(centerGuide) - } - - override func didMoveToSuperview() { - super.didMoveToSuperview() - guard let host = superview else { return } - - symbolImageView.snp.remakeConstraints { - $0.centerX.equalTo(host.snp.centerX) - $0.centerY.equalTo(host.snp.centerY) - $0.width.equalTo(95) - $0.height.equalTo(75) - } - - noOrderHistoryLabel.snp.remakeConstraints { - $0.top.equalTo(symbolImageView.snp.bottom).offset(16) - $0.centerX.equalTo(host.snp.centerX) - } - - seeOrderHistoryButton.snp.remakeConstraints { - $0.top.equalTo(noOrderHistoryLabel.snp.bottom).offset(16) - $0.centerX.equalTo(host.snp.centerX) - $0.height.equalTo(35) - } - } - - - - private func setAddTarget(){ - seeOrderHistoryButton.addTarget(self, action: #selector(seeOrderHistoryButtonTapped), for: .touchUpInside) - } - - func apply(_ config: Config){ - noOrderHistoryLabel.text = config.title - seeOrderHistoryButton.isHidden = !config.showSeeOrderHistoryButton - layoutIfNeeded() - } - - - //MARK: - @Objc - @objc private func seeOrderHistoryButtonTapped() { - onTapAction?() - } - - - -} diff --git a/Koin/Core/View/OrderHistoryUIComponents/FilteringButton.swift b/Koin/Core/View/OrderHistoryUIComponents/FilteringButton.swift deleted file mode 100644 index 018b3c5a..00000000 --- a/Koin/Core/View/OrderHistoryUIComponents/FilteringButton.swift +++ /dev/null @@ -1,103 +0,0 @@ -// -// FilteringButton.swift -// koin -// -// Created by 김성민 on 9/6/25. -// - -import UIKit - -final class FilteringButton: UIButton { - - private var isSelectable: Bool = true - private var forcedOn: Bool? = nil - - override init(frame: CGRect) { - super.init(frame: frame) - titleLabel?.numberOfLines = 1 - - var config = UIButton.Configuration.plain() - config.imagePlacement = .trailing - config.imagePadding = 6 - config.contentInsets = .init(top: 6, leading: 8, bottom: 6, trailing: 8) - config.attributedTitle = AttributedString("필터", attributes: .init([ - .font: UIFont.appFont(.pretendardBold, size: 14) - ])) - - var background = UIBackgroundConfiguration.clear() - background.backgroundColor = UIColor.appColor(.neutral0) - background.cornerRadius = 24 - background.strokeWidth = 0.5 - background.strokeColor = UIColor.appColor(.neutral300) - config.background = background - - config.image = UIImage.appImage(asset: .chevronDown) - config.baseForegroundColor = UIColor.appColor(.neutral500) - - self.configuration = config - - self.configurationUpdateHandler = { [weak self] button in - guard let self = self, var config = button.configuration else { return } - var background = config.background - let on = self.forcedOn ?? button.isSelected - if on { - background.backgroundColor = UIColor.appColor(.new500) - background.strokeWidth = 0 - background.strokeColor = nil - config.baseForegroundColor = UIColor.appColor(.neutral0) - } else { - background.backgroundColor = UIColor.appColor(.neutral0) - background.strokeWidth = 0.5 - background.strokeColor = UIColor.appColor(.neutral300) - config.baseForegroundColor = UIColor.appColor(.neutral500) - } - config.background = background - button.configuration = config - } - - addTarget(self, action: #selector(handleTap), for: .touchUpInside) - } - - required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } - - func setTitle(_ text: String) { - guard var config = configuration else { return } - config.attributedTitle = AttributedString(text, attributes: .init([ - .font: UIFont.appFont(.pretendardBold, size: 14) - ])) - configuration = config - } - - func set(title: String, iconRight: UIImage? = nil, showsChevron: Bool = false) { - guard var config = configuration else { return } - config.attributedTitle = AttributedString(title, attributes: .init([ - .font: UIFont.appFont(.pretendardBold, size: 14) - ])) - if showsChevron { - config.image = UIImage.appImage(asset: .chevronDown) - } else { - config.image = iconRight?.withRenderingMode(.alwaysTemplate) - } - config.imagePlacement = .trailing - config.imagePadding = (config.image == nil) ? 0 : 6 - configuration = config - setNeedsUpdateConfiguration() - } - - func applyFilter(_ on: Bool) { - forcedOn = on - setNeedsUpdateConfiguration() - } - - func setSelectable(_ selectable: Bool) { - isSelectable = selectable - } - - @objc private func handleTap() { - if isSelectable { - isSelected.toggle() - setNeedsUpdateConfiguration() - } - } -} - diff --git a/Koin/Core/View/OrderHistoryUIComponents/OrderFloatingButton.swift b/Koin/Core/View/OrderHistoryUIComponents/OrderFloatingButton.swift deleted file mode 100644 index 5bca7eff..00000000 --- a/Koin/Core/View/OrderHistoryUIComponents/OrderFloatingButton.swift +++ /dev/null @@ -1,174 +0,0 @@ -// -// OrderFloatingButton.swift -// koin -// -// Created by 이은지 on 9/8/25. -// - -import UIKit -import Lottie -import Then -import SnapKit - -final class OrderFloatingButton: UIControl { - - // MARK: - Properties - var titleText: String? { - get { titleLabel.text } - set { titleLabel.text = newValue } - } - - var subtitleText: String? { - get { subtitleLabel.text } - set { subtitleLabel.text = newValue } - } - - var rightImage: UIImage? { - get { rightImageView.image } - set { rightImageView.image = newValue } - } - - // MARK: - UI Components - private let containerView = UIView().then { - $0.backgroundColor = .white - $0.layer.cornerRadius = 32 - $0.layer.shadowColor = UIColor.black.cgColor - $0.layer.shadowOffset = CGSize(width: 0, height: 4) - $0.layer.shadowRadius = 8 - $0.layer.shadowOpacity = 0.2 - } - - let lottieView = LottieAnimationView().then { - $0.contentMode = .scaleAspectFit - $0.loopMode = .loop - } - - private let labelStackView = UIStackView().then { - $0.axis = .vertical - $0.alignment = .leading - $0.distribution = .fillEqually - $0.spacing = 0 - } - - private let titleLabel = UILabel().then { - $0.font = UIFont.appFont(.pretendardBold, size: 16) - $0.textColor = UIColor.appColor(.new500) - } - - private let subtitleLabel = UILabel().then { - $0.font = UIFont.appFont(.pretendardMedium, size: 12) - $0.textColor = UIColor.appColor(.neutral600) - } - - private let rightImageView = UIImageView().then { - $0.contentMode = .scaleAspectFit - $0.image = UIImage.appImage(asset: .chevronRight)?.withRenderingMode(.alwaysTemplate) - $0.tintColor = UIColor.appColor(.new500) - } - - // MARK: - Initializers - override init(frame: CGRect) { - super.init(frame: frame) - configureView() - setAddTarget() - - containerView.isUserInteractionEnabled = false - lottieView.isUserInteractionEnabled = false - labelStackView.isUserInteractionEnabled = false - rightImageView.isUserInteractionEnabled = false - - } - - required init?(coder: NSCoder) { - super.init(coder: coder) - configureView() - setAddTarget() - } - - private func setAddTarget() { - addTarget(self, action: #selector(touchDown), for: .touchDown) - addTarget(self, action: #selector(touchUp), for: [.touchUpInside, .touchUpOutside, .touchCancel]) - } - - // MARK: - Lottie Animation Methods - func setLottieAnimation(named name: String, bundle: Bundle = .main) { - lottieView.animation = LottieAnimation.named(name, bundle: bundle) - } - - func playLottieAnimation() { - lottieView.play() - } - - func stopLottieAnimation() { - lottieView.stop() - } -} - -// MARK: - @objc -extension OrderFloatingButton { - @objc private func touchDown() { - UIView.animate(withDuration: 0.1) { - self.containerView.transform = CGAffineTransform(scaleX: 0.95, y: 0.95) - self.containerView.alpha = 0.8 - } - } - - @objc private func touchUp() { - UIView.animate(withDuration: 0.1) { - self.containerView.transform = .identity - self.containerView.alpha = 1.0 - } - } -} - -// MARK: - UI Function -extension OrderFloatingButton { - private func setUpLayout() { - addSubview(containerView) - - containerView.addSubview(lottieView) - containerView.addSubview(labelStackView) - containerView.addSubview(rightImageView) - - labelStackView.addArrangedSubview(titleLabel) - labelStackView.addArrangedSubview(subtitleLabel) - } - - private func setUpConstraints() { - containerView.snp.makeConstraints { - $0.edges.equalToSuperview() - $0.height.equalTo(64) - } - - lottieView.snp.makeConstraints { - $0.leading.equalToSuperview().offset(6.5) - $0.centerY.equalToSuperview() - $0.width.equalTo(60) - $0.height.equalTo(57) - } - - labelStackView.snp.makeConstraints { - $0.leading.equalTo(lottieView.snp.trailing).offset(12) - $0.centerY.equalToSuperview() - $0.trailing.lessThanOrEqualTo(rightImageView.snp.leading).offset(-12) - } - - rightImageView.snp.makeConstraints { - $0.trailing.equalToSuperview().inset(14.5) - $0.centerY.equalToSuperview() - $0.width.equalTo(24) - $0.height.equalTo(12) - } - } - - private func configureView() { - setUpLayout() - setUpConstraints() - } -} - -extension OrderFloatingButton { - var lottieAnimationView: LottieAnimationView { - return lottieView - } -} diff --git a/Koin/Core/View/OrderHistoryUIComponents/OrderHistoryCustomSearchBar.swift b/Koin/Core/View/OrderHistoryUIComponents/OrderHistoryCustomSearchBar.swift deleted file mode 100644 index 743a464c..00000000 --- a/Koin/Core/View/OrderHistoryUIComponents/OrderHistoryCustomSearchBar.swift +++ /dev/null @@ -1,143 +0,0 @@ -// -// OrderHistoryCustomSearchBar.swift -// koin -// -// Created by 김성민 on 9/8/25. -// - -import UIKit -import SnapKit - -final class OrderHistoryCustomSearchBar: UIView { - - //MARK: - CallBack - var onTextChanged: ((String) -> Void)? - var onReturn: ((String) -> Void)? - - // MARK: - UI - private let iconView = UIImageView().then { - $0.image = UIImage.appImage(asset: .search)?.withRenderingMode(.alwaysTemplate) - $0.tintColor = UIColor.appColor(.neutral500) - $0.contentMode = .scaleAspectFit - } - - let textField = UITextField().then { - - $0.clearButtonMode = .whileEditing - $0.returnKeyType = .search - $0.autocapitalizationType = .none - $0.clearButtonMode = .never - $0.autocorrectionType = .no - $0.spellCheckingType = .no - $0.font = UIFont.appFont(.pretendardRegular, size: 14) - $0.textColor = .label - $0.attributedPlaceholder = NSAttributedString( - string: "주문한 메뉴/매장을 찾아보세요", - attributes: [ - .foregroundColor: UIColor.appColor(.neutral400), - .font: UIFont.appFont(.pretendardRegular, size: 14) - ] - ) - } - - // MARK: - Layout Config - var contentInsets = UIEdgeInsets(top: 6, left: 12, bottom: 6, right: 12) { didSet { remakeConstraints() } } - var spacing: CGFloat = 8 { didSet { remakeConstraints() } } - var iconSize: CGFloat = 18 { didSet { iconView.snp.updateConstraints { $0.size.equalTo(iconSize) } } } - - override init(frame: CGRect) { - super.init(frame: frame) - setupUI() - setupActions() - setDelegate() - makeConstraints() - } - required init?(coder: NSCoder) { fatalError() } - - func setPlaceholder(_ text: String) { - textField.attributedPlaceholder = NSAttributedString( - string: text, - attributes: [ - .foregroundColor: UIColor.appColor(.neutral400), - .font: UIFont.appFont(.pretendardRegular, size: 14) - ] - ) - } - - func setLeftIcon(_ image: UIImage?, tint: UIColor? = nil) { - iconView.image = image?.withRenderingMode(.alwaysTemplate) - if let tint { iconView.tintColor = tint } - } - - @discardableResult - func focus() -> Bool { textField.becomeFirstResponder() } - func unfocus() { textField.resignFirstResponder() } - - // MARK: - Private - private func setupUI() { - backgroundColor = UIColor.appColor(.neutral0) - layer.cornerRadius = 16 - layer.masksToBounds = false - - layer.shadowColor = UIColor.black.cgColor - layer.shadowOffset = CGSize(width: 0, height: 2) - layer.shadowRadius = 4 - layer.shadowOpacity = 0.06 - - addSubview(iconView) - addSubview(textField) - } - - private func setupActions() { - textField.addTarget(self, action: #selector(textDidChange), for: .editingChanged) - } - - private func setDelegate(){ - textField.delegate = self - } - - private func makeConstraints() { - iconView.snp.makeConstraints { - $0.size.equalTo(iconSize) - $0.leading.equalToSuperview().inset(contentInsets.left) - $0.centerY.equalToSuperview() - } - textField.snp.makeConstraints { - $0.leading.equalTo(iconView.snp.trailing).offset(spacing) - $0.top.equalToSuperview().inset(contentInsets.top) - $0.bottom.equalToSuperview().inset(contentInsets.bottom) - $0.trailing.equalToSuperview().inset(contentInsets.right) - $0.height.greaterThanOrEqualTo(28) - } - } - - private func remakeConstraints() { - iconView.snp.remakeConstraints { - $0.size.equalTo(iconSize) - $0.leading.equalToSuperview().inset(contentInsets.left) - $0.centerY.equalToSuperview() - } - textField.snp.remakeConstraints { - $0.leading.equalTo(iconView.snp.trailing).offset(spacing) - $0.top.equalToSuperview().inset(contentInsets.top) - $0.bottom.equalToSuperview().inset(contentInsets.bottom) - $0.trailing.equalToSuperview().inset(contentInsets.right) - $0.height.greaterThanOrEqualTo(28) - } - layoutIfNeeded() - } - - @objc private func textDidChange() { - onTextChanged?(textField.text ?? "") - } -} - -extension OrderHistoryCustomSearchBar: UITextFieldDelegate { - func textFieldShouldReturn(_ textField: UITextField) -> Bool { - onReturn?(textField.text ?? "") - return true - } -} - - - diff --git a/Koin/Core/View/TrackPaddedSlider.swift b/Koin/Core/View/TrackPaddedSlider.swift deleted file mode 100644 index fcfb45de..00000000 --- a/Koin/Core/View/TrackPaddedSlider.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// TrackPaddedSlider.swift -// koin -// -// Created by 이은지 on 8/8/25. -// - -import UIKit - -final class TrackPaddedSlider: UISlider { - - public var horizontalPadding: CGFloat = 0 - - override func trackRect(forBounds bounds: CGRect) -> CGRect { - let originalRect = super.trackRect(forBounds: bounds) - - let newRect = CGRect( - x: originalRect.origin.x + horizontalPadding, - y: originalRect.origin.y, - width: originalRect.size.width - (horizontalPadding * 2), - height: originalRect.size.height - ) - - return newRect - } -} diff --git a/koin.xcodeproj/project.pbxproj b/koin.xcodeproj/project.pbxproj index c01a4cdd..ec9ae71a 100644 --- a/koin.xcodeproj/project.pbxproj +++ b/koin.xcodeproj/project.pbxproj @@ -757,9 +757,6 @@ B47839052E70FAFE00D002E3 /* OrderShopSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = B47839042E70FAFE00D002E3 /* OrderShopSummary.swift */; }; B47839072E70FF2B00D002E3 /* OrderShopMenusGroups.swift in Sources */ = {isa = PBXBuildFile; fileRef = B47839062E70FF2B00D002E3 /* OrderShopMenusGroups.swift */; }; B4B3EB262E6E7CAD00F8A23A /* OrderShopMenus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4B3EB252E6E7CAD00F8A23A /* OrderShopMenus.swift */; }; - B608F0E62EB5DC2D0006F355 /* OrderHistoryCustomSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B608F0E42EB5DC2C0006F355 /* OrderHistoryCustomSearchBar.swift */; }; - B608F0E72EB5DC2D0006F355 /* FilteringButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B608F0E32EB5DC2C0006F355 /* FilteringButton.swift */; }; - B608F0E82EB5DC2D0006F355 /* EmptyStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B608F0E22EB5DC2C0006F355 /* EmptyStateView.swift */; }; B60D25462ED72017000E57B7 /* RadioButtonState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B60D25442ED72017000E57B7 /* RadioButtonState.swift */; }; B60D25472ED72017000E57B7 /* RadioButtonGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B60D25432ED72017000E57B7 /* RadioButtonGroup.swift */; }; B60D25482ED72017000E57B7 /* RadioButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B60D25412ED72017000E57B7 /* RadioButton.swift */; }; @@ -998,7 +995,6 @@ D874DB4D2DBF1A6C0098EED0 /* SendVerificationCodeUsecase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D874DB4C2DBF1A6B0098EED0 /* SendVerificationCodeUsecase.swift */; }; D874DB4F2DBF1FEE0098EED0 /* SendVerificationCodeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D874DB4E2DBF1FEE0098EED0 /* SendVerificationCodeRequest.swift */; }; D874DB512DBF200C0098EED0 /* SendVerificationCodeDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = D874DB502DBF200C0098EED0 /* SendVerificationCodeDto.swift */; }; - D891F25F2E45DC9D006D1F41 /* TrackPaddedSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D891F25E2E45DC9D006D1F41 /* TrackPaddedSlider.swift */; }; D89BAA392DCA5B3D006D3BB7 /* GeneralRegisterFormRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D89BAA382DCA5B3D006D3BB7 /* GeneralRegisterFormRequest.swift */; }; D89BAA3B2DCA5B47006D3BB7 /* StudentRegisterFormRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D89BAA3A2DCA5B47006D3BB7 /* StudentRegisterFormRequest.swift */; }; D89BAA3D2DCA6483006D3BB7 /* RegisterFormUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D89BAA3C2DCA6483006D3BB7 /* RegisterFormUseCase.swift */; }; @@ -1007,7 +1003,6 @@ D8B1A9EC2E321E7800943535 /* ShopSortType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8B1A9EB2E321E7800943535 /* ShopSortType.swift */; }; D8B4E0022DBFAB95001FBC89 /* CheckVerificationCodeUsecase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8B4E0012DBFAB95001FBC89 /* CheckVerificationCodeUsecase.swift */; }; D8B4E0042DBFAD1A001FBC89 /* CheckVerificationCodeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8B4E0032DBFAD1A001FBC89 /* CheckVerificationCodeRequest.swift */; }; - D8F5C54A2E6EF76800FB6708 /* OrderFloatingButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F5C5492E6EF76800FB6708 /* OrderFloatingButton.swift */; }; D8F5C54C2E6F012500FB6708 /* LottieAnimationManageable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8F5C54B2E6F012500FB6708 /* LottieAnimationManageable.swift */; }; D8F5C5562E6F144300FB6708 /* floatingLogo.json in Resources */ = {isa = PBXBuildFile; fileRef = D8F5C5532E6F144300FB6708 /* floatingLogo.json */; }; F1A000010000000000000001 /* ZoomingCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A000010000000000000002 /* ZoomingCollectionView.swift */; }; @@ -1782,9 +1777,6 @@ B47839042E70FAFE00D002E3 /* OrderShopSummary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderShopSummary.swift; sourceTree = ""; }; B47839062E70FF2B00D002E3 /* OrderShopMenusGroups.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderShopMenusGroups.swift; sourceTree = ""; }; B4B3EB252E6E7CAD00F8A23A /* OrderShopMenus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderShopMenus.swift; sourceTree = ""; }; - B608F0E22EB5DC2C0006F355 /* EmptyStateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyStateView.swift; sourceTree = ""; }; - B608F0E32EB5DC2C0006F355 /* FilteringButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilteringButton.swift; sourceTree = ""; }; - B608F0E42EB5DC2C0006F355 /* OrderHistoryCustomSearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderHistoryCustomSearchBar.swift; sourceTree = ""; }; B60D25412ED72017000E57B7 /* RadioButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButton.swift; sourceTree = ""; }; B60D25422ED72017000E57B7 /* RadioButtonColors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonColors.swift; sourceTree = ""; }; B60D25432ED72017000E57B7 /* RadioButtonGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtonGroup.swift; sourceTree = ""; }; @@ -2027,7 +2019,6 @@ D874DB4C2DBF1A6B0098EED0 /* SendVerificationCodeUsecase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendVerificationCodeUsecase.swift; sourceTree = ""; }; D874DB4E2DBF1FEE0098EED0 /* SendVerificationCodeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendVerificationCodeRequest.swift; sourceTree = ""; }; D874DB502DBF200C0098EED0 /* SendVerificationCodeDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendVerificationCodeDto.swift; sourceTree = ""; }; - D891F25E2E45DC9D006D1F41 /* TrackPaddedSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackPaddedSlider.swift; sourceTree = ""; }; D89BAA382DCA5B3D006D3BB7 /* GeneralRegisterFormRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralRegisterFormRequest.swift; sourceTree = ""; }; D89BAA3A2DCA5B47006D3BB7 /* StudentRegisterFormRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudentRegisterFormRequest.swift; sourceTree = ""; }; D89BAA3C2DCA6483006D3BB7 /* RegisterFormUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterFormUseCase.swift; sourceTree = ""; }; @@ -2036,7 +2027,6 @@ D8B1A9EB2E321E7800943535 /* ShopSortType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShopSortType.swift; sourceTree = ""; }; D8B4E0012DBFAB95001FBC89 /* CheckVerificationCodeUsecase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckVerificationCodeUsecase.swift; sourceTree = ""; }; D8B4E0032DBFAD1A001FBC89 /* CheckVerificationCodeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckVerificationCodeRequest.swift; sourceTree = ""; }; - D8F5C5492E6EF76800FB6708 /* OrderFloatingButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderFloatingButton.swift; sourceTree = ""; }; D8F5C54B2E6F012500FB6708 /* LottieAnimationManageable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LottieAnimationManageable.swift; sourceTree = ""; }; D8F5C5532E6F144300FB6708 /* floatingLogo.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = floatingLogo.json; sourceTree = ""; }; EC692285302700A400EE26ED /* koinUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = koinUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -4691,17 +4681,6 @@ path = Fonts; sourceTree = ""; }; - B608F0E52EB5DC2C0006F355 /* OrderHistoryUIComponents */ = { - isa = PBXGroup; - children = ( - B608F0E22EB5DC2C0006F355 /* EmptyStateView.swift */, - B608F0E32EB5DC2C0006F355 /* FilteringButton.swift */, - B608F0E42EB5DC2C0006F355 /* OrderHistoryCustomSearchBar.swift */, - D8F5C5492E6EF76800FB6708 /* OrderFloatingButton.swift */, - ); - path = OrderHistoryUIComponents; - sourceTree = ""; - }; B60D25452ED72017000E57B7 /* RadioButton */ = { isa = PBXGroup; children = ( @@ -5323,9 +5302,7 @@ D289873D2D21B30D00AA7285 /* DebouncedButton.swift */, D89F8FD82DF0A8A4000265DC /* DefaultTextField.swift */, D89F8FDA2DF12847000265DC /* StatefulButton.swift */, - D891F25E2E45DC9D006D1F41 /* TrackPaddedSlider.swift */, 7C61D3502F22B344005FAC3A /* ExtendedTouchAreaView.swift */, - B608F0E52EB5DC2C0006F355 /* OrderHistoryUIComponents */, 7C65FDCA2FE69A00007831CE /* AutoScrollableInfiniteCarouselCollectionView */, ); path = View; @@ -5865,7 +5842,6 @@ D215725C2CEDD04C0061E725 /* LectureRequest.swift in Sources */, D29F21F62C4FD2C700994554 /* FetchLandDetailRequest.swift in Sources */, D208A7A02CA10F1A007040E7 /* AbTestRepository.swift in Sources */, - D8F5C54A2E6EF76800FB6708 /* OrderFloatingButton.swift in Sources */, D2B2193B2D66626900EAF5B1 /* LostItemChatHistoryData.swift in Sources */, 83DD0DBB2C551E5100278ABD /* BusTimetableInfo.swift in Sources */, B47839052E70FAFE00D002E3 /* OrderShopSummary.swift in Sources */, @@ -6019,9 +5995,6 @@ 833D9C392C7058C300982145 /* NoticeListRepository.swift in Sources */, D27DD0E22BA609740081FD36 /* MenuDto.swift in Sources */, D27A5D9C2C6BE56500C4275F /* FetchShopListRequest.swift in Sources */, - B608F0E62EB5DC2D0006F355 /* OrderHistoryCustomSearchBar.swift in Sources */, - B608F0E72EB5DC2D0006F355 /* FilteringButton.swift in Sources */, - B608F0E82EB5DC2D0006F355 /* EmptyStateView.swift in Sources */, D29F21C32C4DE27C00994554 /* UserService.swift in Sources */, D837FB122E254BD8002BFB9F /* CustomSessionManager.swift in Sources */, D2DCB2922CE5D639005CABEE /* PostCallNotificationUseCase.swift in Sources */, @@ -6691,7 +6664,6 @@ D2FB236C2C0409900098BA2B /* LogAnalyticsEventUseCase.swift in Sources */, B4B3EB262E6E7CAD00F8A23A /* OrderShopMenus.swift in Sources */, 7C17EEB02EBF708B008BCA89 /* ShopSearchDto.swift in Sources */, - D891F25F2E45DC9D006D1F41 /* TrackPaddedSlider.swift in Sources */, D21572522CEDC1720061E725 /* FetchFrameUseCase.swift in Sources */, D2908D282BB8D1580008F908 /* LectureDto.swift in Sources */, D2908D2C2BB9D4150008F908 /* TimetablesDto.swift in Sources */,