Skip to content

Commit a729f6e

Browse files
committed
Updated UserDefaults
1 parent 2a461d1 commit a729f6e

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

Sources/ScreenDataNavigation/ScreenDataNavigation.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public struct UserDefaultScreenProvider: ScreenProviding {
8383

8484
public func screen(forID id: String) -> AnyPublisher<SomeScreen, Error> {
8585
Future { promise in
86-
guard let data = UserDefaults.standard.data(forKey: baseKey + id) else {
86+
guard let data = UserDefaults.standard.data(forKey: key(forID: id)) else {
8787
promise(.failure(UserDefaultScreenProviderError.noData))
8888
return
8989
}
@@ -96,6 +96,14 @@ public struct UserDefaultScreenProvider: ScreenProviding {
9696
}
9797
.eraseToAnyPublisher()
9898
}
99+
100+
public func key(forID id: String) -> String {
101+
"\(baseKey)-\(id)"
102+
}
103+
104+
public func hasScreen(forId id: String) -> Bool {
105+
UserDefaults.standard.data(forKey: key(forID: id)) != nil
106+
}
99107
}
100108

101109
// MARK: ScreenStoring
@@ -118,7 +126,7 @@ public struct UserDefaultScreenStorer: ScreenStoring {
118126
do {
119127
try screens.forEach { screen in
120128
let data = try JSONEncoder().encode(screen)
121-
let key = baseKey + (screen.id ?? "")
129+
let key = self.key(forID: screen.id ?? "")
122130
UserDefaults.standard.set(data,
123131
forKey: key)
124132
}
@@ -129,6 +137,10 @@ public struct UserDefaultScreenStorer: ScreenStoring {
129137
}
130138
.eraseToAnyPublisher()
131139
}
140+
141+
public func key(forID id: String) -> String {
142+
"\(baseKey)-\(id)"
143+
}
132144
}
133145

134146
// MARK: ScreenLoading

0 commit comments

Comments
 (0)