ui: group disappearing message config disabled for non-admin

pull/941/head
Ryan Zhao 2 years ago
parent bd23e7ec4a
commit 3041f61e31

@ -206,6 +206,7 @@ class ThreadDisappearingMessagesViewModel: SessionTableViewModel<ThreadDisappear
rightAccessory: .radio( rightAccessory: .radio(
isSelected: { (self?.currentSelection.value.isEnabled == false) } isSelected: { (self?.currentSelection.value.isEnabled == false) }
), ),
isEnabled: false,
onTap: { onTap: {
let updatedConfig: DisappearingMessagesConfiguration = currentSelection let updatedConfig: DisappearingMessagesConfiguration = currentSelection
.with( .with(
@ -230,6 +231,7 @@ class ThreadDisappearingMessagesViewModel: SessionTableViewModel<ThreadDisappear
rightAccessory: .radio( rightAccessory: .radio(
isSelected: { (self?.currentSelection.value.isEnabled == true) && (self?.currentSelection.value.durationSeconds == duration) } isSelected: { (self?.currentSelection.value.isEnabled == true) && (self?.currentSelection.value.durationSeconds == duration) }
), ),
isEnabled: false,
onTap: { onTap: {
let updatedConfig: DisappearingMessagesConfiguration = currentSelection let updatedConfig: DisappearingMessagesConfiguration = currentSelection
.with( .with(

@ -296,18 +296,29 @@ extension SessionCell {
let wasOldSelection: Bool = (!isSelected && storedSelection) let wasOldSelection: Bool = (!isSelected && storedSelection)
radioBorderView.isHidden = false radioBorderView.isHidden = false
if isEnabled {
radioBorderView.themeBorderColor = (isSelected ? radioBorderView.themeBorderColor = (isSelected ?
.radioButton_selectedBorder : .radioButton_selectedBorder :
.radioButton_unselectedBorder .radioButton_unselectedBorder
) )
} else {
radioBorderView.themeBorderColor = .radioButton_border_disabled
}
radioBorderView.layer.cornerRadius = (size.borderSize / 2) radioBorderView.layer.cornerRadius = (size.borderSize / 2)
radioView.alpha = (wasOldSelection ? 0.3 : 1) radioView.alpha = (wasOldSelection ? 0.3 : 1)
radioView.isHidden = (!isSelected && !storedSelection) radioView.isHidden = (!isSelected && !storedSelection)
if isEnabled {
radioView.themeBackgroundColor = (isSelected || wasOldSelection ? radioView.themeBackgroundColor = (isSelected || wasOldSelection ?
.radioButton_selectedBackground : .radioButton_selectedBackground :
.radioButton_unselectedBackground .radioButton_unselectedBackground
) )
} else {
radioView.themeBackgroundColor = (isSelected || wasOldSelection ?
.radioButton_selectedBackground_disabled :
.radioButton_unselectedBackground
)
}
radioView.layer.cornerRadius = (size.selectionSize / 2) radioView.layer.cornerRadius = (size.selectionSize / 2)
radioViewWidthConstraint.constant = size.selectionSize radioViewWidthConstraint.constant = size.selectionSize

@ -43,9 +43,11 @@ internal enum Theme_ClassicDark: ThemeColors {
// RadioButton // RadioButton
.radioButton_selectedBackground: .primary, .radioButton_selectedBackground: .primary,
.radioButton_selectedBackground_disabled: .disabledDark,
.radioButton_unselectedBackground: .clear, .radioButton_unselectedBackground: .clear,
.radioButton_selectedBorder: .classicDark6, .radioButton_selectedBorder: .classicDark6,
.radioButton_unselectedBorder: .classicDark6, .radioButton_unselectedBorder: .classicDark6,
.radioButton_border_disabled: .disabledDark,
// SessionButton // SessionButton
.sessionButton_text: .primary, .sessionButton_text: .primary,

@ -43,9 +43,11 @@ internal enum Theme_ClassicLight: ThemeColors {
// RadioButton // RadioButton
.radioButton_selectedBackground: .primary, .radioButton_selectedBackground: .primary,
.radioButton_selectedBackground_disabled: .disabledLight,
.radioButton_unselectedBackground: .clear, .radioButton_unselectedBackground: .clear,
.radioButton_selectedBorder: .classicLight0, .radioButton_selectedBorder: .classicLight0,
.radioButton_unselectedBorder: .classicLight0, .radioButton_unselectedBorder: .classicLight0,
.radioButton_border_disabled: .disabledLight,
// OutlineButton // OutlineButton
.sessionButton_text: .classicLight0, .sessionButton_text: .classicLight0,

@ -43,9 +43,11 @@ internal enum Theme_OceanDark: ThemeColors {
// RadioButton // RadioButton
.radioButton_selectedBackground: .primary, .radioButton_selectedBackground: .primary,
.radioButton_selectedBackground_disabled: .disabledDark,
.radioButton_unselectedBackground: .clear, .radioButton_unselectedBackground: .clear,
.radioButton_selectedBorder: .oceanDark7, .radioButton_selectedBorder: .oceanDark7,
.radioButton_unselectedBorder: .oceanDark7, .radioButton_unselectedBorder: .oceanDark7,
.radioButton_border_disabled: .disabledDark,
// SessionButton // SessionButton
.sessionButton_text: .primary, .sessionButton_text: .primary,

@ -43,9 +43,11 @@ internal enum Theme_OceanLight: ThemeColors {
// RadioButton // RadioButton
.radioButton_selectedBackground: .primary, .radioButton_selectedBackground: .primary,
.radioButton_selectedBackground_disabled: .disabledLight,
.radioButton_unselectedBackground: .clear, .radioButton_unselectedBackground: .clear,
.radioButton_selectedBorder: .oceanLight1, .radioButton_selectedBorder: .oceanLight1,
.radioButton_unselectedBorder: .oceanLight3, .radioButton_unselectedBorder: .oceanLight3,
.radioButton_border_disabled: .disabledLight,
// SessionButton // SessionButton
.sessionButton_text: .oceanLight1, .sessionButton_text: .oceanLight1,

@ -131,9 +131,11 @@ public indirect enum ThemeValue: Hashable {
// RadioButton // RadioButton
case radioButton_selectedBackground case radioButton_selectedBackground
case radioButton_selectedBackground_disabled
case radioButton_unselectedBackground case radioButton_unselectedBackground
case radioButton_selectedBorder case radioButton_selectedBorder
case radioButton_unselectedBorder case radioButton_unselectedBorder
case radioButton_border_disabled
// SessionButton // SessionButton
case sessionButton_text case sessionButton_text

Loading…
Cancel
Save