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

🔀 :: (#575) 검색 곡 결과 화면 구현 #582

Merged
merged 117 commits into from
Jun 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
72c083d
:fire: :: 스토리보드에서 AfterContentVC제거
yongbeomkwak Jun 5, 2024
ad65668
:fire: :: 파일 헤더 제거
yongbeomkwak Jun 5, 2024
cdac7a3
:sparkles: :: 리엑터 생성
yongbeomkwak Jun 5, 2024
4d7fb96
:truck: :: 버튼 이미지 추가
yongbeomkwak Jun 5, 2024
218486e
:truck: :: Factory 생성 및 Enum을 interface로 옮김
yongbeomkwak Jun 5, 2024
893bfbd
:zap: :: 검색 결과 화면을 뷰컨 2개로 나눔
yongbeomkwak Jun 5, 2024
72cd127
:zap: :: 섹션 및 레이아웃 정의
yongbeomkwak Jun 6, 2024
e7686b7
:sparkles: :: 해셔블 포토콜 채택
yongbeomkwak Jun 6, 2024
261b44b
:art: :: final 키워드
yongbeomkwak Jun 6, 2024
86049a2
:zap: :: 데이터 소스 생성
yongbeomkwak Jun 6, 2024
50867eb
:zap: :: 셀 정의
yongbeomkwak Jun 6, 2024
c754d16
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 6, 2024
153bfb6
:art: :: Section명 변경
yongbeomkwak Jun 6, 2024
b34cc14
:art: :: 리믹스 탭 제거
yongbeomkwak Jun 6, 2024
9c7bc29
:zap: :: cell 레이아웃 설정
yongbeomkwak Jun 6, 2024
44aed63
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 6, 2024
fb24e43
:fire: :: 불필요한 코드 삭제
yongbeomkwak Jun 7, 2024
4bbf9a2
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 7, 2024
61db6f3
:truck: :: 구조 변경에의한 이름 변경
yongbeomkwak Jun 7, 2024
2c2908f
:fire: :: 불필요한 코드 삭제
yongbeomkwak Jun 7, 2024
a07eb47
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 7, 2024
31cc0e4
:zap: :: 필터 및 정렬 헤더
yongbeomkwak Jun 7, 2024
45ae543
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 7, 2024
9a27a3e
:truck: :: 리액터 이름 변경
yongbeomkwak Jun 7, 2024
8521eb6
:bulb: :: 워닝 명시
yongbeomkwak Jun 7, 2024
b3c5b4a
:truck: :: 팩토리 및 컴포넌트 이름 변경
yongbeomkwak Jun 7, 2024
2926565
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 7, 2024
8a22833
Merge branch 'develop' into 575-develop-result-of-search
yongbeomkwak Jun 10, 2024
410f310
:poop: :: reduce 함수 위치 변경
yongbeomkwak Jun 10, 2024
93c89b7
:zap: :: 가독성 증진
yongbeomkwak Jun 10, 2024
cc06935
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 10, 2024
9ed6e08
Merge branch '575-develop-result-of-search' of https://github.com/wak…
yongbeomkwak Jun 10, 2024
d2cee62
:zap: :: 파일 나누기
yongbeomkwak Jun 10, 2024
d8504fd
:zap: :: section 캡쳐
yongbeomkwak Jun 10, 2024
0ea3a94
:zap: :: 니들
yongbeomkwak Jun 10, 2024
d634f2a
:zap: :: 연산 프로퍼티에서 변수 선언을 옮김
yongbeomkwak Jun 10, 2024
0cbfe2f
🎨 :: 코드 Formatting 적용
yongbeomkwak Jun 10, 2024
f1bf2e7
Merge branch 'develop' into 575-develop-result-of-search
yongbeomkwak Jun 11, 2024
e7c5eb5
Merge branch 'develop' into 575-develop-result-of-search
yongbeomkwak Jun 11, 2024
702a182
Merge branch '575-develop-result-of-search' into develop
yongbeomkwak Jun 11, 2024
3042751
⚡️ :: [#591] 패러블 로고 추가
KangTaeHoon Jun 10, 2024
a1b3749
🎨 :: 코드 Formatting 적용
KangTaeHoon Jun 10, 2024
1c5073d
⚡️ :: [#591] accessLevel 변경
KangTaeHoon Jun 10, 2024
e15bfa3
💄 :: [#550] 이미지 리소스 추가 및 LoginWarningView
youn9k May 30, 2024
53be881
🔨 :: BaseFeature -> ErrorModule 의존성 추가
youn9k May 30, 2024
e272ce5
🔨 :: MyInfoFeature 의존성 추가
youn9k May 30, 2024
1e70ff0
💄 :: [#550] 내 정보 화면 UI
youn9k May 30, 2024
5ae5042
💄 :: [#550] 내 정보 화면 Reactor 바인딩
youn9k May 30, 2024
085ee8e
💄 :: [#550] 설정화면 UI
youn9k May 31, 2024
3c68faf
💄 :: [#550] 설정화면 Reactor 바인딩
youn9k May 31, 2024
d9552b9
🚚 :: 오픈소스&서비스이용약관 BaseFeature로 이동
youn9k May 31, 2024
5c31794
🚚 :: 공지사항 BaseFeature로 이동
youn9k May 31, 2024
ede6259
🚚 :: 자주묻는질문 BaseFeature로 이동
youn9k May 31, 2024
8934e95
🚚 :: 문의하기 BaseFeature로 이동
youn9k May 31, 2024
ac2d365
🚚 :: BaseFeature -> MyInfoFeature 재이동
youn9k May 31, 2024
aeedc39
💄 :: [#550] 내정보 화면 Reactor 바인딩
youn9k May 31, 2024
94707db
🚚 :: Request MyInfoFeature로 이동
youn9k May 31, 2024
3cdc3f4
:bricks: :: 포맷팅
youn9k May 31, 2024
fafcb69
💄 :: [#550] 내정보 화면 네비게이션 연결
youn9k Jun 1, 2024
bb3c034
💄 :: [#550] 팀 소개 화면 뷰 추가
youn9k Jun 1, 2024
9a53b4e
💄 :: [#550] 앱 알림 설정 추가
youn9k Jun 1, 2024
9f59e99
💉 :: 개인정보 처리방침 & 서비스 이용약관 컴포넌트 분리
youn9k Jun 1, 2024
f4958e0
💄 :: [#550] 설정 화면 네비게이션 연결
youn9k Jun 1, 2024
abcdd3e
💄 :: [#550] 로그인 버튼 연결
youn9k Jun 1, 2024
67c56d2
🐛 :: 모듈 변경
youn9k Jun 1, 2024
ea6bd49
💄 :: [#550] 닉네임 하이라이팅
youn9k Jun 1, 2024
3225075
💄 :: [#550] 좋아요 탭으로 이동 기능
youn9k Jun 2, 2024
92c743e
💄 :: [#550] 좋아요 버튼 비로그인 시 처리
youn9k Jun 2, 2024
30fc335
💄 :: [#550] 캐시 데이터 삭제 기능
youn9k Jun 2, 2024
fe7c125
💄 :: [#550] 회원탈퇴 기능
youn9k Jun 2, 2024
b0dbabf
💄 :: [#550] 토스트 메세지 추가
youn9k Jun 2, 2024
f5d475e
♻️ :: 네비게이션 코드 정리
youn9k Jun 2, 2024
893b832
♻️ :: 사용하지 않는 모듈 임포트 제거
youn9k Jun 3, 2024
493b40c
♻️ :: 네비게이션 코드 정리
youn9k Jun 4, 2024
082bed1
🎨 :: 코드 Formatting 적용
youn9k Jun 4, 2024
ea14793
💄 :: [#550] 자간 추가
youn9k Jun 4, 2024
e9053f2
♻️ :: 불필요한 프린트 제거
youn9k Jun 4, 2024
6549872
♻️ :: [#550] 작은 화면 대응 스크롤뷰 추가
youn9k Jun 10, 2024
aa640d7
🎨 :: 코드 Formatting 적용
youn9k Jun 10, 2024
1f325b3
♻️ :: [#550] 코드 수정
youn9k Jun 10, 2024
66e498b
♻️ :: SettingFactoryStub 프로토콜 생성
youn9k Jun 4, 2024
2bc58cd
:art: :: Testing 타겟 추가
youn9k Jun 4, 2024
d5a04d6
:sparkles: :: [569] Auth, User Domain 스파이 객체 추가
youn9k Jun 4, 2024
6a39752
:sparkles: :: [569] BaseFeature Factory & Stub
youn9k Jun 4, 2024
5f37e8f
:art: :: 코드 Formatting 적용
youn9k Jun 4, 2024
40bd3e0
:sparkles: :: [569] BaseFeature FactoryStub 추가
youn9k Jun 4, 2024
ddda644
:art: :: 디펜던시 추가
youn9k Jun 4, 2024
2eef7b4
:sparkles: :: [569] UserDomain Stub 추가
youn9k Jun 4, 2024
0316a90
:sparkles: :: [569] SignInFeature Stub 추가
youn9k Jun 4, 2024
9dedf01
:art: :: 디펜던시 추가
youn9k Jun 4, 2024
328913b
:art: :: Factory 프로토콜을 의존하도록 변경
youn9k Jun 5, 2024
6ce978f
:art: :: Demo 타겟 testing 의존성 추가
youn9k Jun 5, 2024
76d192f
:fire: :: 불필요한 코드 삭제
youn9k Jun 5, 2024
6e23c0d
🎨 :: BaseFeature 디펜던시 추가
youn9k Jun 6, 2024
9fa0d8d
♻️ :: 외부 모듈 spy init 접근제어자 추가
youn9k Jun 6, 2024
be90011
:fire: :: 불필요한 코드 삭제
youn9k Jun 6, 2024
f0e0178
🎨 :: Base, SignIn Testing -> Feature 구현체 모듈 의존성 추가
youn9k Jun 6, 2024
2da9169
:fire: :: 불필요한 코드 삭제
youn9k Jun 6, 2024
ae6b9cc
🐛 :: 키체인 모듈 연결
youn9k Jun 6, 2024
a0f56a5
♻️ :: [#569] Spy -> Stub 리네이밍
youn9k Jun 6, 2024
d9e7c4c
♻️ :: [#550] 설정 네비게이션 버튼 하이라이트 효과
youn9k Jun 7, 2024
88b21da
♻️ :: [#550] 설정 네비게이션 버튼 리네이밍
youn9k Jun 7, 2024
7c70a99
🎨 :: 코드 Formatting 적용
youn9k Jun 7, 2024
11055e9
♻️ :: [#550] 상태 변화 메소드 캡슐화
youn9k Jun 10, 2024
89e8555
🎨 :: 코드 Formatting 적용
youn9k Jun 10, 2024
2c9ea4b
♻️ :: [#550] 상태 변화 메소드 캡슐화 - 2
youn9k Jun 10, 2024
a640cb9
🎨 :: 코드 Formatting 적용
youn9k Jun 10, 2024
ce744b3
💄 :: [#550] 회원 탈퇴 버튼 디자인 및 위치 변경
youn9k Jun 7, 2024
512a672
♻️ :: [#550] 접근제한자 추가
youn9k Jun 10, 2024
5a32270
:art: :: 설정 화면 stub 작업
youn9k Jun 6, 2024
ab2be02
🎨 :: 코드 Formatting
youn9k Jun 6, 2024
b861aca
🎨 :: Testing -> Feature 구현체 모듈 의존성 추가
youn9k Jun 6, 2024
3174d30
🎨 :: 코드 Formatting 적용
youn9k Jun 6, 2024
b4600c9
🎨 :: usecase spy 연결
youn9k Jun 6, 2024
008cc6b
Merge branch '575-develop-result-of-search' of https://github.com/wak…
yongbeomkwak Jun 11, 2024
8f55b07
Merge branch 'develop' into 575-develop-result-of-search
yongbeomkwak Jun 11, 2024
b731625
:zap: :: 니들 업데이트
yongbeomkwak Jun 11, 2024
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 Projects/App/Sources/Application/AppComponent+Search.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ extension AppComponent {
AfterSearchComponent(parent: self)
}

var afterSearchContentComponent: AfterSearchContentComponent {
AfterSearchContentComponent(parent: self)
var songSearchResultFactory: any SongSearchResultFactory {
SongSearchResultComponent(parent: self)
}
}
200 changes: 100 additions & 100 deletions Projects/App/Sources/Application/NeedleGenerated.swift

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Foundation

public struct SongEntity: Equatable {
public struct SongEntity: Hashable, Equatable {
public init(
id: String,
title: String,
Expand Down Expand Up @@ -29,6 +29,10 @@ public struct SongEntity: Equatable {
public let date: String
public var isSelected: Bool

public func hash(into hasher: inout Hasher) {
hasher.combine(id)
}

public static func == (lhs: SongEntity, rhs: SongEntity) -> Bool {
lhs.id == rhs.id
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ final class AppDelegate: UIResponder, UIApplicationDelegate {

let fetchPlayListUseCase: FetchPlayListUseCaseStub = .init()

let component =
let wakMucomponent =
WakmusicRecommendViewController(
playlistDetailFactory: PlaylistDetailFactoryStub(),
reactor: WakmusicRecommendReactor(fetchRecommendPlayListUseCase: fetchPlayListUseCase)
)

let component = SongSearchResultViewController(reactor: SongSearchResultReactor())

let viewController = Inject.ViewControllerHost(
UINavigationController(rootViewController: component)
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
public enum TabPosition: Int {
case song = 0
case list

var title: String {
switch self {
case .song:
"노래"
case .list:
"리스트"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Foundation

public enum TypingStatus {
case before
case typing
case search
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import Foundation
import UIKit

public protocol SongSearchResultFactory {
func makeView() -> UIViewController
}
33 changes: 0 additions & 33 deletions Projects/Features/SearchFeature/Resources/Search.storyboard
Original file line number Diff line number Diff line change
Expand Up @@ -62,36 +62,6 @@
</objects>
<point key="canvasLocation" x="1754.9618320610687" y="-2.1126760563380285"/>
</scene>
<!--After Search Content View Controller-->
<scene sceneID="ewL-de-ykJ">
<objects>
<viewController storyboardIdentifier="AfterSearchContentViewController" id="wFs-UV-N8n" customClass="AfterSearchContentViewController" customModule="SearchFeature" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Xtf-ws-O1l">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="AFm-fr-N46">
<rect key="frame" x="0.0" y="115" width="393" height="703"/>
<color key="backgroundColor" name="SUB 1"/>
</tableView>
</subviews>
<viewLayoutGuide key="safeArea" id="rcw-Ju-H6e"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstItem="rcw-Ju-H6e" firstAttribute="trailing" secondItem="AFm-fr-N46" secondAttribute="trailing" id="7tt-pj-WAb"/>
<constraint firstItem="AFm-fr-N46" firstAttribute="top" secondItem="rcw-Ju-H6e" secondAttribute="top" constant="56" id="eIZ-1L-S7b"/>
<constraint firstItem="rcw-Ju-H6e" firstAttribute="bottom" secondItem="AFm-fr-N46" secondAttribute="bottom" id="fma-yd-7O3"/>
<constraint firstItem="AFm-fr-N46" firstAttribute="leading" secondItem="rcw-Ju-H6e" secondAttribute="leading" id="saW-gc-dM6"/>
</constraints>
</view>
<connections>
<outlet property="tableView" destination="AFm-fr-N46" id="6Hf-WL-ueX"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="IVM-sj-ICq" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="2491" y="-2"/>
</scene>
<!--검색-->
<scene sceneID="s0d-6b-0kx">
<objects>
Expand Down Expand Up @@ -189,9 +159,6 @@
</scene>
</scenes>
<resources>
<namedColor name="SUB 1">
<color red="0.15294117647058825" green="0.37647058823529411" blue="0.95686274509803926" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="gray100">
<color red="0.94900000095367432" green="0.9570000171661377" blue="0.96899998188018799" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@ import BaseFeature
import BaseFeatureInterface
import Foundation
import NeedleFoundation
import SearchFeatureInterface
import SongsDomainInterface

public protocol AfterSearchDependency: Dependency {
var afterSearchContentComponent: AfterSearchContentComponent { get }
var songSearchResultFactory: any SongSearchResultFactory { get }
var containSongsFactory: any ContainSongsFactory { get }
}

public final class AfterSearchComponent: Component<AfterSearchDependency> {
public func makeView() -> AfterSearchViewController {
return AfterSearchViewController.viewController(
afterSearchContentComponent: dependency.afterSearchContentComponent,
songSearchResultFactory: dependency.songSearchResultFactory,
containSongsFactory: dependency.containSongsFactory,
reactor: .init()
)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import BaseFeature
import BaseFeatureInterface
import Foundation
import NeedleFoundation
import SearchFeatureInterface
import UIKit

public final class SongSearchResultComponent: Component<EmptyDependency>, SongSearchResultFactory {
public func makeView() -> UIViewController {
SongSearchResultViewController(reactor: SongSearchResultReactor())
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Foundation

#warning("실제 데이터 entity로 바꾸기")

enum BeforeVcDataSoruce: Hashable {
case youtube(model: Model)
case recommend(model2: Model)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import Foundation

enum FilterType {
case all
case title
case artist
case credit

var title: String {
switch self {
case .all:
"전체"
case .title:
"제목"
case .artist:
"아티스트"
case .credit:
"크레딧"
}
}
}

enum SortType {
case newest
case oldest
case likes
case views
case alphabeticalOrder

var title: String {
switch self {
case .newest:
"최신순"
case .oldest:
"과거순"
case .likes:
"좋아요순"
case .views:
"조회수순"
case .alphabeticalOrder:
"가나다순"
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Foundation

internal enum BeforeSearchSection: Int {
case youtube
case recommend
case popularList
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import Foundation

internal enum RecommendSection: Hashable {
case main
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import Foundation

internal enum SongSearchResultSection: Int {
case song = 0

var title: String {
switch self {
case .song:
"노래"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ final class BeforeSearchCollectionViewLayout: UICollectionViewCompositionalLayou
init() {
super.init { sectionIndex, layoutEnvironment in

guard let layoutKind = Section(rawValue: sectionIndex) else { return nil }
guard let layoutKind = BeforeSearchSection(rawValue: sectionIndex) else { return nil }

return BeforeSearchCollectionViewLayout.configureLayoutSection(layoutKind)
}
Expand All @@ -18,13 +18,11 @@ final class BeforeSearchCollectionViewLayout: UICollectionViewCompositionalLayou
}

extension BeforeSearchCollectionViewLayout {
private static func configureLayoutSection(_ layoutKind: Section) -> NSCollectionLayoutSection {
private static func configureLayoutSection(_ layoutKind: BeforeSearchSection) -> NSCollectionLayoutSection {
let itemSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),
heightDimension: .fractionalHeight(1.0)
)
var item: NSCollectionLayoutItem = NSCollectionLayoutItem(layoutSize: itemSize)
item.contentInsets = NSDirectionalEdgeInsets(top: .zero, leading: 8, bottom: 0, trailing: 8)

let headerLayout = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .absolute(30))

Expand All @@ -36,6 +34,9 @@ extension BeforeSearchCollectionViewLayout {

header.contentInsets = .init(top: .zero, leading: 8, bottom: .zero, trailing: 8)

var item: NSCollectionLayoutItem = NSCollectionLayoutItem(layoutSize: itemSize)
item.contentInsets = NSDirectionalEdgeInsets(top: .zero, leading: 8, bottom: 0, trailing: 8)

let group: NSCollectionLayoutGroup
let section: NSCollectionLayoutSection

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import UIKit
import Utility

final class SongSearchResultCollectionViewLayout: UICollectionViewCompositionalLayout {
init() {
super.init { _, _ in

return SongSearchResultCollectionViewLayout.configureLayout()
}
}

@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

extension SongSearchResultCollectionViewLayout {
private static func configureLayout() -> NSCollectionLayoutSection {
let itemSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),
heightDimension: .fractionalHeight(1.0)
)

let headerLayout = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .absolute(30))

let header = NSCollectionLayoutBoundarySupplementaryItem(
layoutSize: headerLayout,
elementKind: SearchResultHeaderView.kind,
alignment: .top
)

let item: NSCollectionLayoutItem = NSCollectionLayoutItem(layoutSize: itemSize)
let groupSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),
heightDimension: .fractionalWidth(0.16)
)
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])

let section = NSCollectionLayoutSection(group: group)
section.contentInsets = NSDirectionalEdgeInsets(top: .zero, leading: 20.0, bottom: 20.0, trailing: 20.0)
section.boundarySupplementaryItems = [header]

return section
}
}
26 changes: 0 additions & 26 deletions Projects/Features/SearchFeature/Sources/Enum/Enum+Search.swift

This file was deleted.

Loading
Loading