This repository was archived by the owner on Jun 7, 2020. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -247,9 +247,8 @@ extension DirectoryViewController: UISearchBarDelegate {
247247
248248extension DirectoryViewController : DirectoryFiltersViewDelegate {
249249
250- func userDidChangeFilterOption( selected: DirectoryRequestType , workspace : DirectoryWorkspaceType ) {
250+ func userDidChangeFilterOption( selected: DirectoryRequestType ) {
251251 viewModel. type = selected
252- viewModel. workspace = workspace
253252
254253 tableView. reloadData ( )
255254
Original file line number Diff line number Diff line change @@ -10,10 +10,12 @@ import Foundation
1010
1111final class DirectoryViewModel {
1212
13- var workspace : DirectoryWorkspaceType = . all {
14- didSet {
15- clear ( )
13+ var workspace : DirectoryWorkspaceType {
14+ if UserDefaults . standard . bool ( forKey : kDirectoryFilterViewWorkspaceLocalKey ) {
15+ return . local
1616 }
17+
18+ return . all
1719 }
1820
1921 var type : DirectoryRequestType = . users {
@@ -52,6 +54,7 @@ final class DirectoryViewModel {
5254 var showing = 0
5355 var total = 0
5456
57+ var task : URLSessionTask ?
5558 var isLoadingMore = false
5659 var isShowingAllData : Bool {
5760 return showing >= total
@@ -78,6 +81,9 @@ final class DirectoryViewModel {
7881 currentPage = 0
7982 showing = 0
8083 total = 0
84+
85+ isLoadingMore = false
86+ task? . cancel ( )
8187 }
8288
8389 func user( at index: Int ) -> UnmanagedUser {
@@ -93,13 +99,15 @@ final class DirectoryViewModel {
9399 return
94100 }
95101
102+ self . task? . cancel ( )
103+
96104 isLoadingMore = true
97105
98106 let requestType = self . type
99107 let request = DirectoryRequest ( query: query, type: requestType, workspace: workspace)
100108 let options : APIRequestOptionSet = [ . paginated( count: pageSize, offset: currentPage * pageSize) ]
101109
102- API . current ( ) ? . fetch ( request, options: options) { [ weak self] response in
110+ let task = API . current ( ) ? . fetch ( request, options: options) { [ weak self] response in
103111 guard
104112 let self = self ,
105113 case let . resource( resource) = response
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ import UIKit
1111let kDirectoryFilterViewWorkspaceLocalKey = " kDirectoryFilterViewWorkspaceLocalKey "
1212
1313protocol DirectoryFiltersViewDelegate : class {
14- func userDidChangeFilterOption( selected: DirectoryRequestType , workspace : DirectoryWorkspaceType )
14+ func userDidChangeFilterOption( selected: DirectoryRequestType )
1515}
1616
1717final class DirectoryFiltersView : UIView {
@@ -137,32 +137,21 @@ final class DirectoryFiltersView: UIView {
137137 }
138138
139139 @IBAction func switchWorkspaceDidChange( _ sender: Any ) {
140- delegate? . userDidChangeFilterOption (
141- selected: . users,
142- workspace: switchWorkspace. isOn ? . all : . local
143- )
144-
145140 UserDefaults . standard. set (
146141 !switchWorkspace. isOn,
147142 forKey: kDirectoryFilterViewWorkspaceLocalKey
148143 )
144+
145+ delegate? . userDidChangeFilterOption ( selected: . users)
149146 }
150147
151148 @IBAction func buttonFilterChannelDidPressed( _ sender: Any ) {
152- delegate? . userDidChangeFilterOption (
153- selected: . channels,
154- workspace: switchWorkspace. isOn ? . all : . local
155- )
156-
149+ delegate? . userDidChangeFilterOption ( selected: . channels)
157150 close ( )
158151 }
159152
160153 @IBAction func buttonFilterUserDidPressed( _ sender: Any ) {
161- delegate? . userDidChangeFilterOption (
162- selected: . users,
163- workspace: switchWorkspace. isOn ? . all : . local
164- )
165-
154+ delegate? . userDidChangeFilterOption ( selected: . users)
166155 close ( )
167156 }
168157
You can’t perform that action at this time.
0 commit comments