mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various fixes
This commit is contained in:
parent
6bc7b4f663
commit
6269971ce7
@ -81,7 +81,7 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
|
|||||||
case timeHeader(PresentationTheme, String)
|
case timeHeader(PresentationTheme, String)
|
||||||
case timePicker(PresentationTheme, InviteLinkTimeLimit)
|
case timePicker(PresentationTheme, InviteLinkTimeLimit)
|
||||||
case timeExpiryDate(PresentationTheme, PresentationDateTimeFormat, Int32?, Bool)
|
case timeExpiryDate(PresentationTheme, PresentationDateTimeFormat, Int32?, Bool)
|
||||||
case timeCustomPicker(PresentationTheme, PresentationDateTimeFormat, Int32?)
|
case timeCustomPicker(PresentationTheme, PresentationDateTimeFormat, Int32?, Bool, Bool)
|
||||||
case timeInfo(PresentationTheme, String)
|
case timeInfo(PresentationTheme, String)
|
||||||
|
|
||||||
case usageHeader(PresentationTheme, String)
|
case usageHeader(PresentationTheme, String)
|
||||||
@ -191,8 +191,8 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
|
|||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
case let .timeCustomPicker(lhsTheme, lhsDateTimeFormat, lhsDate):
|
case let .timeCustomPicker(lhsTheme, lhsDateTimeFormat, lhsDate, lhsDisplayingDateSelection, lhsDisplayingTimeSelection):
|
||||||
if case let .timeCustomPicker(rhsTheme, rhsDateTimeFormat, rhsDate) = rhs, lhsTheme === rhsTheme, lhsDateTimeFormat == rhsDateTimeFormat, lhsDate == rhsDate {
|
if case let .timeCustomPicker(rhsTheme, rhsDateTimeFormat, rhsDate, rhsDisplayingDateSelection, rhsDisplayingTimeSelection) = rhs, lhsTheme === rhsTheme, lhsDateTimeFormat == rhsDateTimeFormat, lhsDate == rhsDate, lhsDisplayingDateSelection == rhsDisplayingDateSelection, lhsDisplayingTimeSelection == rhsDisplayingTimeSelection {
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
@ -272,7 +272,8 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
|
|||||||
arguments.updateState({ state in
|
arguments.updateState({ state in
|
||||||
var updatedState = state
|
var updatedState = state
|
||||||
if value != updatedState.time {
|
if value != updatedState.time {
|
||||||
updatedState.pickingTimeLimit = false
|
updatedState.pickingExpiryDate = false
|
||||||
|
updatedState.pickingExpiryTime = false
|
||||||
}
|
}
|
||||||
updatedState.time = value
|
updatedState.time = value
|
||||||
return updatedState
|
return updatedState
|
||||||
@ -289,13 +290,35 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
|
|||||||
arguments.dismissInput()
|
arguments.dismissInput()
|
||||||
arguments.updateState { state in
|
arguments.updateState { state in
|
||||||
var updatedState = state
|
var updatedState = state
|
||||||
updatedState.pickingTimeLimit = !state.pickingTimeLimit
|
if updatedState.pickingExpiryTime {
|
||||||
|
updatedState.pickingExpiryTime = false
|
||||||
|
} else {
|
||||||
|
updatedState.pickingExpiryDate = !state.pickingExpiryDate
|
||||||
|
}
|
||||||
return updatedState
|
return updatedState
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
case let .timeCustomPicker(_, dateTimeFormat, date):
|
case let .timeCustomPicker(_, dateTimeFormat, date, displayingDateSelection, displayingTimeSelection):
|
||||||
let title = presentationData.strings.InviteLink_Create_TimeLimitExpiryTime
|
let title = presentationData.strings.InviteLink_Create_TimeLimitExpiryTime
|
||||||
return ItemListDatePickerItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, date: date, title: title, displayingDateSelection: false, displayingTimeSelection: false, sectionId: self.section, style: .blocks, toggleDateSelection: {}, toggleTimeSelection: {}, updated: { date in
|
return ItemListDatePickerItem(presentationData: presentationData, dateTimeFormat: dateTimeFormat, date: date, title: title, displayingDateSelection: displayingDateSelection, displayingTimeSelection: displayingTimeSelection, sectionId: self.section, style: .blocks, toggleDateSelection: {
|
||||||
|
arguments.updateState({ state in
|
||||||
|
var updatedState = state
|
||||||
|
updatedState.pickingExpiryDate = !updatedState.pickingExpiryDate
|
||||||
|
if updatedState.pickingExpiryDate {
|
||||||
|
updatedState.pickingExpiryTime = false
|
||||||
|
}
|
||||||
|
return updatedState
|
||||||
|
})
|
||||||
|
}, toggleTimeSelection: {
|
||||||
|
arguments.updateState({ state in
|
||||||
|
var updatedState = state
|
||||||
|
updatedState.pickingExpiryTime = !updatedState.pickingExpiryTime
|
||||||
|
if updatedState.pickingExpiryTime {
|
||||||
|
updatedState.pickingExpiryDate = false
|
||||||
|
}
|
||||||
|
return updatedState
|
||||||
|
})
|
||||||
|
}, updated: { date in
|
||||||
arguments.updateState({ state in
|
arguments.updateState({ state in
|
||||||
var updatedState = state
|
var updatedState = state
|
||||||
updatedState.time = .custom(date)
|
updatedState.time = .custom(date)
|
||||||
@ -312,7 +335,8 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
|
|||||||
arguments.updateState({ state in
|
arguments.updateState({ state in
|
||||||
var updatedState = state
|
var updatedState = state
|
||||||
if value != updatedState.usage {
|
if value != updatedState.usage {
|
||||||
updatedState.pickingTimeLimit = false
|
updatedState.pickingExpiryDate = false
|
||||||
|
updatedState.pickingExpiryTime = false
|
||||||
}
|
}
|
||||||
updatedState.usage = value
|
updatedState.usage = value
|
||||||
return updatedState
|
return updatedState
|
||||||
@ -341,7 +365,8 @@ private enum InviteLinksEditEntry: ItemListNodeEntry {
|
|||||||
if focus {
|
if focus {
|
||||||
arguments.updateState { state in
|
arguments.updateState { state in
|
||||||
var updatedState = state
|
var updatedState = state
|
||||||
updatedState.pickingTimeLimit = false
|
updatedState.pickingExpiryDate = false
|
||||||
|
updatedState.pickingExpiryTime = false
|
||||||
updatedState.pickingUsageLimit = true
|
updatedState.pickingUsageLimit = true
|
||||||
return updatedState
|
return updatedState
|
||||||
}
|
}
|
||||||
@ -394,9 +419,9 @@ private func inviteLinkEditControllerEntries(invite: ExportedInvitation?, state:
|
|||||||
} else if let value = state.time.value {
|
} else if let value = state.time.value {
|
||||||
time = currentTime + value
|
time = currentTime + value
|
||||||
}
|
}
|
||||||
entries.append(.timeExpiryDate(presentationData.theme, presentationData.dateTimeFormat, time, state.pickingTimeLimit))
|
entries.append(.timeExpiryDate(presentationData.theme, presentationData.dateTimeFormat, time, state.pickingExpiryDate || state.pickingExpiryTime))
|
||||||
if state.pickingTimeLimit {
|
if state.pickingExpiryDate || state.pickingExpiryTime {
|
||||||
entries.append(.timeCustomPicker(presentationData.theme, presentationData.dateTimeFormat, time))
|
entries.append(.timeCustomPicker(presentationData.theme, presentationData.dateTimeFormat, time, state.pickingExpiryDate, state.pickingExpiryTime))
|
||||||
}
|
}
|
||||||
entries.append(.timeInfo(presentationData.theme, presentationData.strings.InviteLink_Create_TimeLimitInfo))
|
entries.append(.timeInfo(presentationData.theme, presentationData.strings.InviteLink_Create_TimeLimitInfo))
|
||||||
|
|
||||||
@ -424,7 +449,8 @@ private struct InviteLinkEditControllerState: Equatable {
|
|||||||
var usage: InviteLinkUsageLimit
|
var usage: InviteLinkUsageLimit
|
||||||
var time: InviteLinkTimeLimit
|
var time: InviteLinkTimeLimit
|
||||||
var requestApproval = false
|
var requestApproval = false
|
||||||
var pickingTimeLimit = false
|
var pickingExpiryDate = false
|
||||||
|
var pickingExpiryTime = false
|
||||||
var pickingUsageLimit = false
|
var pickingUsageLimit = false
|
||||||
var updating = false
|
var updating = false
|
||||||
}
|
}
|
||||||
@ -452,9 +478,9 @@ public func inviteLinkEditController(context: AccountContext, updatedPresentatio
|
|||||||
timeLimit = .unlimited
|
timeLimit = .unlimited
|
||||||
}
|
}
|
||||||
|
|
||||||
initialState = InviteLinkEditControllerState(title: title ?? "", usage: InviteLinkUsageLimit(value: usageLimit), time: timeLimit, requestApproval: requestApproval, pickingTimeLimit: false, pickingUsageLimit: false)
|
initialState = InviteLinkEditControllerState(title: title ?? "", usage: InviteLinkUsageLimit(value: usageLimit), time: timeLimit, requestApproval: requestApproval, pickingExpiryDate: false, pickingExpiryTime: false, pickingUsageLimit: false)
|
||||||
} else {
|
} else {
|
||||||
initialState = InviteLinkEditControllerState(title: "", usage: .unlimited, time: .unlimited, requestApproval: false, pickingTimeLimit: false, pickingUsageLimit: false)
|
initialState = InviteLinkEditControllerState(title: "", usage: .unlimited, time: .unlimited, requestApproval: false, pickingExpiryDate: false, pickingExpiryTime: false, pickingUsageLimit: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
let statePromise = ValuePromise(initialState, ignoreRepeated: true)
|
let statePromise = ValuePromise(initialState, ignoreRepeated: true)
|
||||||
@ -604,7 +630,7 @@ public func inviteLinkEditController(context: AccountContext, updatedPresentatio
|
|||||||
|
|
||||||
let previousState = previousState.swap(state)
|
let previousState = previousState.swap(state)
|
||||||
var animateChanges = false
|
var animateChanges = false
|
||||||
if let previousState = previousState, previousState.pickingTimeLimit != state.pickingTimeLimit || previousState.requestApproval != state.requestApproval {
|
if let previousState = previousState, previousState.pickingExpiryDate != state.pickingExpiryDate || previousState.pickingExpiryTime != state.pickingExpiryTime || previousState.requestApproval != state.requestApproval {
|
||||||
animateChanges = true
|
animateChanges = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user