···11+---
22+'@urql/preact': patch
33+---
44+55+Apply shallow difference patch from React bindings to `@urql/preact` (See: #3195)
+17-1
packages/preact-urql/src/hooks/useSource.ts
···8899let currentInit = false;
10101111+// Two operations are considered equal if they have the same key
1212+const areOperationsEqual = (
1313+ a: { key: number } | undefined,
1414+ b: { key: number } | undefined
1515+) => {
1616+ return a === b || !!(a && b && a.key === b.key);
1717+};
1818+1119const isShallowDifferent = (a: any, b: any) => {
1220 if (typeof a != 'object' || typeof b != 'object') return a !== b;
1321 for (const x in a) if (!(x in b)) return true;
1414- for (const x in b) if (a[x] !== b[x]) return true;
2222+ for (const key in b) {
2323+ if (
2424+ key === 'operation'
2525+ ? !areOperationsEqual(a[key], b[key])
2626+ : a[key] !== b[key]
2727+ ) {
2828+ return true;
2929+ }
3030+ }
1531 return false;
1632};
1733