@@ -43,7 +43,7 @@ class PresetsController: SPDiffableTableController {
43
43
navigationItem. title = " SPAlert Presets "
44
44
45
45
currentPreset = presets. first!
46
- setCellProviders ( SPDiffableTableCellProviders . default , sections: content)
46
+ configureDiffable ( sections: content, cellProviders : SPDiffableTableDataSource . CellProvider . default )
47
47
48
48
navigationController? . isToolbarHidden = false
49
49
toolbarItems = [
@@ -61,7 +61,19 @@ class PresetsController: SPDiffableTableController {
61
61
. init( barButtonSystemItem: . flexibleSpace, target: nil , action: nil ) ,
62
62
. init( systemItem: . play, primaryAction: . init( handler: { [ weak self] ( action) in
63
63
guard let preset = self ? . currentPreset else { return }
64
- SPAlert . present ( title: preset. title, message: preset. message, preset: preset. preset, completion: nil )
64
+ SPAlert . present (
65
+ title: preset. title,
66
+ message: preset. message,
67
+ preset: preset. preset,
68
+ completion: nil
69
+ )
70
+
71
+ if preset. preset == SPAlertIconPreset . spinner {
72
+ delay ( 2 , closure: {
73
+ SPAlert . dismiss ( )
74
+ } )
75
+ }
76
+
65
77
} ) , menu: nil ) ,
66
78
. init( barButtonSystemItem: . flexibleSpace, target: nil , action: nil ) ,
67
79
]
@@ -107,15 +119,8 @@ class PresetsController: SPDiffableTableController {
107
119
// MARK: - Diffable
108
120
109
121
var currentPreset : AlertPresetModel ? {
110
- willSet {
111
- guard let id = self . currentPreset? . id else { return }
112
- let cell = diffableDataSource? . cell ( UITableViewCell . self, for: id)
113
- cell? . accessoryType = . none
114
- }
115
122
didSet {
116
- guard let id = self . currentPreset? . id else { return }
117
- let cell = diffableDataSource? . cell ( UITableViewCell . self, for: id)
118
- cell? . accessoryType = . checkmark
123
+ self . diffableDataSource? . set ( content, animated: false )
119
124
}
120
125
}
121
126
@@ -124,13 +129,13 @@ class PresetsController: SPDiffableTableController {
124
129
return SPDiffableTableRow (
125
130
text: preset. name,
126
131
accessoryType: ( preset. id == currentPreset? . id) ? . checkmark : . none,
127
- selectionStyle: . none) { [ weak self] _ in
132
+ selectionStyle: . none) { [ weak self] _, _ in
128
133
guard let self = self else { return }
129
134
self . currentPreset = preset
130
135
}
131
136
}
132
137
return [
133
- SPDiffableSection ( identifier : " presets " , header: nil , footer: nil , items: items)
138
+ SPDiffableSection ( id : " presets " , header: nil , footer: nil , items: items)
134
139
]
135
140
}
136
141
}
0 commit comments