Skip to content

Commit 129d67a

Browse files
authored
Merge pull request #3992 from anyproto/release-to-dev
Release to dev
2 parents 06a8ca4 + 29d6cf7 commit 129d67a

File tree

27 files changed

+240
-99
lines changed

27 files changed

+240
-99
lines changed

Anytype/Sources/Models/ObjectPermissions/ObjectPermissions.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ extension ObjectPermissions {
6666
&& !isTemplate
6767
&& details.resolvedLayoutValue != .participant
6868
&& canApplyUneditableActions
69-
&& !isObjectType
7069

7170
self.canFavorite = canApplyUneditableActions && !isTemplate && !isObjectType
7271
self.canLinkItself = canApplyUneditableActions && !isTemplate && !isObjectType

Anytype/Sources/PresentationLayer/Flows/HomeWidgetsCoordinator/HomeWidgetsCoordinatorView.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,8 @@ private struct HomeWidgetsCoordinatorInternalView: View {
4141
.anytypeSheet(item: $model.createTypeData) {
4242
CreateObjectTypeView(data: $0)
4343
}
44+
.anytypeSheet(item: $model.deleteSystemWidgetConfirmationData) {
45+
DeleteSystemWidgetConfirmation(data: $0)
46+
}
4447
}
4548
}

Anytype/Sources/PresentationLayer/Flows/HomeWidgetsCoordinator/HomeWidgetsCoordinatorViewModel.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ final class HomeWidgetsCoordinatorViewModel: ObservableObject, HomeWidgetsModule
1313
@Published var showChangeTypeData: WidgetTypeChangeData?
1414
@Published var showCreateWidgetData: CreateWidgetCoordinatorModel?
1515
@Published var createTypeData: CreateObjectTypeData?
16+
@Published var deleteSystemWidgetConfirmationData: DeleteSystemWidgetConfirmationData?
1617

1718
@Injected(\.legacySetObjectCreationCoordinator)
1819
private var setObjectCreationCoordinator: any SetObjectCreationCoordinatorProtocol
@@ -80,6 +81,10 @@ final class HomeWidgetsCoordinatorViewModel: ObservableObject, HomeWidgetsModule
8081
)
8182
}
8283

84+
func showDeleteSystemWidgetAlert(data: DeleteSystemWidgetConfirmationData) {
85+
deleteSystemWidgetConfirmationData = data
86+
}
87+
8388
// MARK: - SetObjectCreationCoordinatorOutput
8489

8590
func showEditorScreen(data: ScreenData) {

Anytype/Sources/PresentationLayer/Modules/HomeWidgets/Container/HomeWidgetsView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,11 @@ private struct HomeWidgetsInternalView: View {
129129

130130
@ViewBuilder
131131
private var objectTypeWidgets: some View {
132-
HomeWidgetsGroupView(title: Loc.objectTypes) {
132+
HomeWidgetsGroupView(title: Loc.objectTypes, onTap: {
133133
model.onTapObjectTypeHeader()
134-
} onCreate: {
134+
}, onCreate: model.canCreateObjectType ? {
135135
model.onCreateObjectType()
136-
}
136+
} : nil)
137137
if model.objectTypeSectionIsExpanded {
138138
VStack(spacing: 12) {
139139
ForEach(model.objectTypeWidgets) { info in

Anytype/Sources/PresentationLayer/Modules/HomeWidgets/Container/HomeWidgetsViewModel.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ final class HomeWidgetsViewModel: ObservableObject {
4848
@Published var wallpaper: SpaceWallpaperType = .default
4949
@Published var pinnedSectionIsExpanded: Bool = false
5050
@Published var objectTypeSectionIsExpanded: Bool = false
51+
@Published var canCreateObjectType: Bool = false
5152

5253
var spaceId: String { info.accountSpaceId }
5354

@@ -177,6 +178,7 @@ final class HomeWidgetsViewModel: ObservableObject {
177178
private func startParticipantTask() async {
178179
for await canEdit in accountParticipantStorage.canEditPublisher(spaceId: info.accountSpaceId).values {
179180
homeState = canEdit ? .readwrite : .readonly
181+
canCreateObjectType = canEdit
180182
}
181183
}
182184

Anytype/Sources/PresentationLayer/Modules/HomeWidgets/Widgets/AllObjects/AllObjectsWidgetView.swift

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,30 @@ struct AllObjectsWidgetView: View {
2828
})
2929
},
3030
menu: {
31-
if !FeatureFlags.homeObjectTypeWidgets {
32-
menu
33-
}
31+
menu
3432
},
3533
content: { EmptyView() }
3634
)
3735
.id(model.data.widgetBlockId)
3836
}
3937

4038
private var menu: some View {
41-
WidgetCommonActionsMenuView(
42-
items: [.addBelow, .remove],
43-
widgetBlockId: model.data.widgetBlockId,
44-
widgetObject: model.data.widgetObject,
45-
homeState: homeState,
46-
output: model.data.output
47-
)
39+
if FeatureFlags.homeObjectTypeWidgets {
40+
WidgetCommonActionsMenuView(
41+
items: [.removeSystemWidget],
42+
widgetBlockId: model.data.widgetBlockId,
43+
widgetObject: model.data.widgetObject,
44+
homeState: homeState,
45+
output: model.data.output
46+
)
47+
} else {
48+
WidgetCommonActionsMenuView(
49+
items: [.addBelow, .remove],
50+
widgetBlockId: model.data.widgetBlockId,
51+
widgetObject: model.data.widgetObject,
52+
homeState: homeState,
53+
output: model.data.output
54+
)
55+
}
4856
}
4957
}

Anytype/Sources/PresentationLayer/Modules/HomeWidgets/Widgets/AllObjects/AllObjectsWidgetViewModel.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ final class AllObjectsWidgetViewModel: ObservableObject {
2525
widgetActionsViewCommonMenuProvider.onDeleteWidgetTap(
2626
widgetObject: data.widgetObject,
2727
widgetBlockId: data.widgetBlockId,
28-
homeState: data.homeState.wrappedValue
28+
homeState: data.homeState.wrappedValue,
29+
output: data.output
2930
)
3031
}
3132
}

Anytype/Sources/PresentationLayer/Modules/HomeWidgets/Widgets/Bin/BinWidgetView.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,24 @@ private struct BinWidgetSubmoduleInternalView: View {
5050

5151
@ViewBuilder
5252
private var menu: some View {
53-
if !FeatureFlags.homeObjectTypeWidgets {
53+
if FeatureFlags.homeObjectTypeWidgets {
54+
WidgetCommonActionsMenuView(
55+
items: [.removeSystemWidget],
56+
widgetBlockId: model.widgetBlockId,
57+
widgetObject: model.widgetObject,
58+
homeState: homeState,
59+
output: model.output
60+
)
61+
} else {
5462
WidgetCommonActionsMenuView(
5563
items: [.addBelow, .remove],
5664
widgetBlockId: model.widgetBlockId,
5765
widgetObject: model.widgetObject,
5866
homeState: homeState,
5967
output: model.output
6068
)
61-
Divider()
6269
}
70+
Divider()
6371
AsyncButton(Loc.Widgets.Actions.emptyBin, role: .destructive) {
6472
try await model.onEmptyBinTap()
6573
}

Anytype/Sources/PresentationLayer/Modules/HomeWidgets/Widgets/Bin/BinWidgetViewModel.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ final class BinWidgetViewModel: ObservableObject {
4949
widgetActionsViewCommonMenuProvider.onDeleteWidgetTap(
5050
widgetObject: data.widgetObject,
5151
widgetBlockId: data.widgetBlockId,
52-
homeState: data.homeState.wrappedValue
52+
homeState: data.homeState.wrappedValue,
53+
output: data.output
5354
)
5455
}
5556
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import SwiftUI
2+
3+
struct DeleteSystemWidgetConfirmationData: Identifiable {
4+
let id = UUID()
5+
let onConfirm: () -> Void
6+
}
7+
8+
struct DeleteSystemWidgetConfirmation: View {
9+
10+
@Environment(\.dismiss) private var dismiss
11+
12+
let data: DeleteSystemWidgetConfirmationData
13+
14+
var body: some View {
15+
BottomAlertView(
16+
title: Loc.Widgets.System.DeleteAlert.title,
17+
message: Loc.Widgets.System.DeleteAlert.message,
18+
icon: .Dialog.question
19+
) {
20+
BottomAlertButton(text: Loc.cancel, style: .secondary) {
21+
dismiss()
22+
}
23+
BottomAlertButton(text: Loc.delete, style: .warning) {
24+
data.onConfirm()
25+
dismiss()
26+
}
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)