File tree Expand file tree Collapse file tree 3 files changed +16
-4
lines changed
SwiftUI-WorkoutApp/Screens/Journals/EntriesList Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ struct JournalEntriesList: View {
3232 JournalEntryCell (
3333 model: $0,
3434 reportClbk: { viewModel. reportEntry ( $0) } ,
35+ canDelete: viewModel. checkIfCanDelete ( entry: $0) ,
3536 deleteClbk: initiateDeletion,
3637 editClbk: setupEntryToEdit
3738 )
Original file line number Diff line number Diff line change @@ -32,6 +32,13 @@ final class JournalEntriesListViewModel: ObservableObject {
3232 if !refresh { isLoading. toggle ( ) }
3333 }
3434
35+ /// Проверяем возможность удаления указанной записи
36+ ///
37+ /// Сервер не дает удалить самую первую запись в дневнике
38+ func checkIfCanDelete( entry: JournalEntryResponse ) -> Bool {
39+ entry. id != list. map ( \. id) . min ( )
40+ }
41+
3542 func delete( _ entryID: Int ? , with defaults: DefaultsProtocol ) async {
3643 guard let entryID, !isLoading else { return }
3744 isLoading. toggle ( )
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ struct JournalEntryCell: View {
77 @EnvironmentObject private var defaults : DefaultsService
88 let model : JournalEntryResponse
99 let reportClbk : ( JournalEntryResponse ) -> Void
10+ let canDelete : Bool
1011 let deleteClbk : ( Int ) -> Void
1112 let editClbk : ( JournalEntryResponse ) -> Void
1213
@@ -46,10 +47,12 @@ private extension JournalEntryCell {
4647 } label: {
4748 Label ( " Изменить " , systemImage: " rectangle.and.pencil.and.ellipsis " )
4849 }
49- Button ( role: . destructive) {
50- deleteClbk ( model. id)
51- } label: {
52- Label ( " Удалить " , systemImage: " trash " )
50+ if canDelete {
51+ Button ( role: . destructive) {
52+ deleteClbk ( model. id)
53+ } label: {
54+ Label ( " Удалить " , systemImage: " trash " )
55+ }
5356 }
5457 } else {
5558 Button ( role: . destructive) {
@@ -78,6 +81,7 @@ struct JournalEntryCell_Previews: PreviewProvider {
7881 JournalEntryCell (
7982 model: . preview,
8083 reportClbk: { _ in } ,
84+ canDelete: true ,
8185 deleteClbk: { _ in } ,
8286 editClbk: { _ in }
8387 )
You can’t perform that action at this time.
0 commit comments