Skip to content

Instantly share code, notes, and snippets.

@NewFieldForMe
Created August 27, 2020 08:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NewFieldForMe/63b6c4b3df9b8568d4a92bf347a9dc93 to your computer and use it in GitHub Desktop.
Save NewFieldForMe/63b6c4b3df9b8568d4a92bf347a9dc93 to your computer and use it in GitHub Desktop.
Combine: sink and transform
class TodoListSideMenuViewModel: ObservableObject {
@Published var darkModeModel = DarkModeModel()
@Published var darkModeSystemName: String = ""
private var bag = Set<AnyCancellable>()
init() {
self.darkModeModel.$isDark.sink(receiveValue: { [weak self] isDark in
self?.darkModeSystemName = isDark ? "moon.fill" : "sun.max.fill"
}).store(in: &bag)
}
func switchDarkMode() {
darkModeModel.isDark = !darkModeModel.isDark
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment