@@ -17,6 +17,7 @@ enum ServerActionType {
17
17
case copy
18
18
case reset( key: String ? )
19
19
case delete
20
+ case setName( name: String ? )
20
21
}
21
22
22
23
func == ( lhs: ServerActionType , rhs: ServerActionType ) -> Bool {
@@ -90,12 +91,21 @@ class ServerListViewController: BaseViewController<ServerListViewModel> {
90
91
}
91
92
return nil
92
93
} . asDriver ( onErrorDriveWith: . empty( ) )
94
+
95
+ // 设置服务器名称
96
+ let setServerName = action. compactMap { r -> ( Server , String ? ) ? in
97
+ if case ServerActionType . setName( let name) = r. 1 {
98
+ return ( r. 0 , name)
99
+ }
100
+ return nil
101
+ } . asDriver ( onErrorDriveWith: . empty( ) )
93
102
94
103
let output = viewModel. transform ( input: ServerListViewModel . Input (
95
104
selectServer: selectServer,
96
105
copyServer: copyServer,
97
106
deleteServer: deleteServer,
98
- resetServer: resetServer
107
+ resetServer: resetServer,
108
+ setServerName: setServerName
99
109
) )
100
110
101
111
let dataSource = RxTableViewSectionedReloadDataSource < SectionModel < String , ServerListTableViewCellViewModel > > { _, tableView, _, item -> UITableViewCell in
@@ -136,7 +146,7 @@ class ServerListViewController: BaseViewController<ServerListViewModel> {
136
146
return relay
137
147
}
138
148
139
- let alertController = UIAlertController ( title: nil , message: " \( viewModel. address. value ) " , preferredStyle: . actionSheet)
149
+ let alertController = UIAlertController ( title: nil , message: " \( URL ( string : viewModel. server . address) ? . host ?? " " ) " , preferredStyle: . actionSheet)
140
150
alertController. addAction ( UIAlertAction ( title: NSLocalizedString ( " copyAddressAndKey " ) , style: . default, handler: { _ in
141
151
relay. accept ( ( viewModel. server, . copy) )
142
152
} ) )
@@ -157,6 +167,18 @@ class ServerListViewController: BaseViewController<ServerListViewModel> {
157
167
relay. accept ( ( viewModel. server, . select) )
158
168
} ) )
159
169
170
+ alertController. addAction ( UIAlertAction ( title: NSLocalizedString ( " setServerName " ) , style: . default, handler: { _ in
171
+ let alertController = UIAlertController ( title: NSLocalizedString ( " setServerName " ) , message: nil , preferredStyle: . alert)
172
+ alertController. addTextField { textField in
173
+ textField. text = viewModel. server. name
174
+ }
175
+ alertController. addAction ( UIAlertAction ( title: NSLocalizedString ( " confirm " ) , style: . default, handler: { _ in
176
+ relay. accept ( ( viewModel. server, . setName( name: alertController. textFields? . first? . text) ) )
177
+ } ) )
178
+ alertController. addAction ( UIAlertAction ( title: NSLocalizedString ( " Cancel " ) , style: . cancel, handler: nil ) )
179
+ self . navigationController? . present ( alertController, animated: true , completion: nil )
180
+ } ) )
181
+
160
182
alertController. addAction ( UIAlertAction ( title: NSLocalizedString ( " deleteServer " ) , style: . destructive, handler: { _ in
161
183
162
184
let alertController = UIAlertController ( title: nil , message: NSLocalizedString ( " confirmDeleteServer " ) , preferredStyle: . alert)
0 commit comments