(
updater: Updater<TData | undefined, TData>,
options?: SetDataOptions
)
| 229 | } |
| 230 | |
| 231 | setData( |
| 232 | updater: Updater<TData | undefined, TData>, |
| 233 | options?: SetDataOptions |
| 234 | ): TData { |
| 235 | const prevData = this.state.data |
| 236 | |
| 237 | // Get the new data |
| 238 | let data = functionalUpdate(updater, prevData) |
| 239 | |
| 240 | // Use prev data if an isDataEqual function is defined and returns `true` |
| 241 | if (this.options.isDataEqual?.(prevData, data)) { |
| 242 | data = prevData as TData |
| 243 | } else if (this.options.structuralSharing !== false) { |
| 244 | // Structurally share data between prev and new data if needed |
| 245 | data = replaceEqualDeep(prevData, data) |
| 246 | } |
| 247 | |
| 248 | // Set data and mark it as cached |
| 249 | this.dispatch({ |
| 250 | data, |
| 251 | type: 'success', |
| 252 | dataUpdatedAt: options?.updatedAt, |
| 253 | }) |
| 254 | |
| 255 | return data |
| 256 | } |
| 257 | |
| 258 | setState( |
| 259 | state: QueryState<TData, TError>, |
no test coverage detected