Cherry-pick story-related fixes

This commit is contained in:
Ali 2023-08-18 01:02:13 +04:00
parent 094527347e
commit 4e2c082e0c
3 changed files with 33 additions and 7 deletions

View File

@ -1676,6 +1676,7 @@ private final class StoryContainerScreenComponent: Component {
for (id, itemSetView) in self.visibleItemSetViews {
if !validIds.contains(id) {
removedIds.append(id)
itemSetView.view.parentState = nil
itemSetView.removeFromSuperview()
if let view = itemSetView.view.view as? StoryItemSetContainerComponent.View {

View File

@ -2243,6 +2243,17 @@ public final class StoryItemSetContainerComponent: Component {
if !likeButtonView.isDescendant(of: self) {
return
}
if likeButtonView.isHidden {
return
}
if likeButtonView.alpha == 0.0 {
return
}
if component.slice.peer.isService {
return
} else if case .unsupported = component.slice.item.storyItem.media {
return
}
let tooltipScreen = TooltipScreen(
account: component.context.account,
@ -3700,7 +3711,7 @@ public final class StoryItemSetContainerComponent: Component {
strings: component.strings,
theme: component.theme,
text: component.slice.item.storyItem.text,
entities: component.slice.item.storyItem.entities,
entities: component.slice.peer.isPremium ? component.slice.item.storyItem.entities : [],
entityFiles: component.slice.item.entityFiles,
action: { [weak self] action in
guard let self, let component = self.component else {

View File

@ -272,6 +272,10 @@ final class StoryItemSetViewListComponent: Component {
var eventCycleState: EventCycleState?
var totalCount: Int? {
return self.viewListState?.totalCount
}
var hasContent: Bool = false
var hasContentUpdated: ((Bool) -> Void)?
@ -1361,12 +1365,22 @@ final class StoryItemSetViewListComponent: Component {
if !component.hasPremium, component.storyItem.expirationTimestamp <= Int32(Date().timeIntervalSince1970) {
} else {
if let views = component.storyItem.views, views.hasList {
if views.seenCount >= 20 || component.context.sharedContext.immediateExperimentalUISettings.storiesExperiment {
displayModeSelector = true
displaySearchBar = true
}
if views.reactedCount >= 10 || component.context.sharedContext.immediateExperimentalUISettings.storiesExperiment {
displaySortSelector = true
if let currentContentView = self.currentContentView, let totalCount = currentContentView.totalCount {
if totalCount >= 20 || component.context.sharedContext.immediateExperimentalUISettings.storiesExperiment {
displayModeSelector = true
displaySearchBar = true
}
if (views.reactedCount >= 10 && totalCount >= 20) || component.context.sharedContext.immediateExperimentalUISettings.storiesExperiment {
displaySortSelector = true
}
} else {
if views.seenCount >= 20 || component.context.sharedContext.immediateExperimentalUISettings.storiesExperiment {
displayModeSelector = true
displaySearchBar = true
}
if (views.reactedCount >= 10 && views.seenCount >= 20) || component.context.sharedContext.immediateExperimentalUISettings.storiesExperiment {
displaySortSelector = true
}
}
}
if let privacy = component.storyItem.privacy, case .everyone = privacy.base {