@sudobility/wildduck_client 2.2.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +46 -0
  2. package/dist/components/WebSocketStatus.d.ts +26 -0
  3. package/dist/components/WebSocketStatus.d.ts.map +1 -0
  4. package/dist/components/WebSocketStatus.js +187 -0
  5. package/dist/components/WebSocketStatus.js.map +1 -0
  6. package/dist/components/index.d.ts +2 -0
  7. package/dist/components/index.d.ts.map +1 -0
  8. package/dist/components/index.js +2 -0
  9. package/dist/components/index.js.map +1 -0
  10. package/dist/hooks/useWildduckAutoReply.d.ts +5 -2
  11. package/dist/hooks/useWildduckAutoReply.d.ts.map +1 -1
  12. package/dist/hooks/useWildduckAutoReply.js +84 -3
  13. package/dist/hooks/useWildduckAutoReply.js.map +1 -1
  14. package/dist/hooks/useWildduckFilters.d.ts +5 -2
  15. package/dist/hooks/useWildduckFilters.d.ts.map +1 -1
  16. package/dist/hooks/useWildduckFilters.js +100 -3
  17. package/dist/hooks/useWildduckFilters.js.map +1 -1
  18. package/dist/hooks/useWildduckMessages.d.ts +4 -1
  19. package/dist/hooks/useWildduckMessages.d.ts.map +1 -1
  20. package/dist/hooks/useWildduckMessages.js +148 -3
  21. package/dist/hooks/useWildduckMessages.js.map +1 -1
  22. package/dist/hooks/useWildduckSettings.d.ts +10 -7
  23. package/dist/hooks/useWildduckSettings.d.ts.map +1 -1
  24. package/dist/hooks/useWildduckSettings.js +105 -34
  25. package/dist/hooks/useWildduckSettings.js.map +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/network/wildduck-client.d.ts +3 -3
  31. package/dist/network/wildduck-client.d.ts.map +1 -1
  32. package/dist/network/wildduck-client.js +12 -6
  33. package/dist/network/wildduck-client.js.map +1 -1
  34. package/package.json +1 -1
package/README.md CHANGED
@@ -9,8 +9,10 @@ TypeScript client library for the WildDuck email API with React and React Native
9
9
 
10
10
  - ✅ **Complete Type Safety** - Full TypeScript support with comprehensive type definitions
11
11
  - ✅ **React Integration** - Built-in hooks using @tanstack/react-query for optimal data fetching
12
+ - ✅ **Real-time WebSocket Support** - Optional WebSocket connections for instant updates (v2.3.0+)
12
13
  - ✅ **Crypto Authentication** - SIWE (Sign-in with Ethereum) and traditional password authentication
13
14
  - ✅ **Comprehensive API** - User, mailbox, message, address, filter, and autoreply management
15
+ - ✅ **React Native Compatible** - Works seamlessly in both React JS and React Native (0.64+)
14
16
  - ✅ **Development Mode** - Mock data for testing without a live server
15
17
  - ✅ **Integration Tests** - Full test coverage with real WildDuck server testing
16
18
  - ✅ **Cloudflare Worker Support** - Optional worker URL configuration for proxying requests
@@ -216,6 +218,50 @@ See [docs/GAP_ANALYSIS.md](./docs/GAP_ANALYSIS.md) for a comprehensive breakdown
216
218
 
217
219
  For detailed documentation on all hooks, see [docs/HOOKS_DOCUMENTATION.md](./docs/HOOKS_DOCUMENTATION.md).
218
220
 
221
+ ## WebSocket Real-time Support
222
+
223
+ Since v2.3.0, all hooks support optional WebSocket connections for real-time updates.
224
+
225
+ ### Quick Start
226
+
227
+ ```tsx
228
+ import { WebSocketProvider } from '@sudobility/wildduck_client';
229
+
230
+ function App() {
231
+ return (
232
+ <WebSocketProvider
233
+ enabled={true}
234
+ config={{ url: 'ws://your-server.com/ws' }}
235
+ >
236
+ <YourApp />
237
+ </WebSocketProvider>
238
+ );
239
+ }
240
+
241
+ // Enable WebSocket in any hook
242
+ const { mailboxes } = useWildduckMailboxes(
243
+ networkClient,
244
+ config,
245
+ wildduckUserAuth,
246
+ false,
247
+ { enableWebSocket: true } // ← Enable real-time updates
248
+ );
249
+ ```
250
+
251
+ ### Features
252
+
253
+ - **Automatic reconnection** with exponential backoff
254
+ - **Per-user connections** - one WebSocket per authenticated user
255
+ - **Seamless fallback** to REST API if WebSocket unavailable
256
+ - **React Query integration** - automatic cache updates
257
+ - **Event-driven updates** - mailboxes, messages, filters, settings, autoreply
258
+
259
+ ### Documentation
260
+
261
+ - **[Complete WebSocket Guide](./docs/WEBSOCKET.md)** - Setup, configuration, API reference
262
+ - **[Usage Examples](./docs/examples/WEBSOCKET_EXAMPLES.md)** - Real-world code examples
263
+ - **[React Native Compatibility](./docs/REACT_NATIVE_COMPATIBILITY.md)** - Mobile support guide
264
+
219
265
  ## Development
220
266
 
221
267
  ### Setup
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import type { WildduckUserAuth } from "@sudobility/types";
3
+ import type { ConnectionState } from "../websocket/types";
4
+ export interface WebSocketStatusProps {
5
+ wildduckUserAuth: WildduckUserAuth | null;
6
+ showReconnectCount?: boolean;
7
+ showDetails?: boolean;
8
+ className?: string;
9
+ style?: React.CSSProperties;
10
+ renderStatus?: (state: ConnectionState, reconnectAttempt: number) => React.ReactNode;
11
+ }
12
+ export declare function WebSocketStatus({ wildduckUserAuth, showReconnectCount, showDetails, className, style, renderStatus, }: WebSocketStatusProps): React.ReactElement | null;
13
+ export interface WebSocketStatusBadgeProps {
14
+ wildduckUserAuth: WildduckUserAuth | null;
15
+ size?: number;
16
+ className?: string;
17
+ style?: React.CSSProperties;
18
+ }
19
+ export declare function WebSocketStatusBadge({ wildduckUserAuth, size, className, style, }: WebSocketStatusBadgeProps): React.ReactElement | null;
20
+ export interface WebSocketStatsProps {
21
+ wildduckUserAuth: WildduckUserAuth | null;
22
+ className?: string;
23
+ style?: React.CSSProperties;
24
+ }
25
+ export declare function WebSocketStats({ wildduckUserAuth, className, style, }: WebSocketStatsProps): React.ReactElement | null;
26
+ //# sourceMappingURL=WebSocketStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSocketStatus.d.ts","sourceRoot":"","sources":["../../src/components/WebSocketStatus.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IAEnC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAG1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAG7B,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAG5B,YAAY,CAAC,EAAE,CACb,KAAK,EAAE,eAAe,EACtB,gBAAgB,EAAE,MAAM,KACrB,KAAK,CAAC,SAAS,CAAC;CACtB;AAUD,wBAAgB,eAAe,CAAC,EAC9B,gBAAgB,EAChB,kBAAyB,EACzB,WAAmB,EACnB,SAAc,EACd,KAAK,EACL,YAAY,GACb,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAwJlD;AAKD,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,gBAAgB,EAChB,IAAQ,EACR,SAAc,EACd,KAAK,GACN,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAyDvD;AAKD,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,EAC7B,gBAAgB,EAChB,SAAc,EACd,KAAK,GACN,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA+DjD"}
@@ -0,0 +1,187 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { useWebSocket } from "../websocket/useWebSocket";
3
+ export function WebSocketStatus({ wildduckUserAuth, showReconnectCount = true, showDetails = false, className = "", style, renderStatus, }) {
4
+ const wsContext = useWebSocket();
5
+ const [connectionState, setConnectionState] = useState("disconnected");
6
+ const [reconnectAttempt, setReconnectAttempt] = useState(0);
7
+ const [reconnectDelay, setReconnectDelay] = useState(0);
8
+ const [lastError, setLastError] = useState(null);
9
+ useEffect(() => {
10
+ if (!wsContext || !wildduckUserAuth) {
11
+ return;
12
+ }
13
+ const client = wsContext.getClient(wildduckUserAuth);
14
+ if (!client) {
15
+ return;
16
+ }
17
+ setConnectionState(client.state);
18
+ setReconnectAttempt(client.reconnectAttempt);
19
+ const handleStateChange = (_oldState, newState) => {
20
+ setConnectionState(newState);
21
+ if (newState === "connected") {
22
+ setLastError(null);
23
+ setReconnectAttempt(0);
24
+ }
25
+ };
26
+ const handleReconnecting = (attempt, delay) => {
27
+ setReconnectAttempt(attempt);
28
+ setReconnectDelay(delay);
29
+ };
30
+ const handleError = (error) => {
31
+ setLastError(error.message);
32
+ };
33
+ client.on("stateChange", handleStateChange);
34
+ client.on("reconnecting", handleReconnecting);
35
+ client.on("error", handleError);
36
+ return () => {
37
+ client.off("stateChange", handleStateChange);
38
+ client.off("reconnecting", handleReconnecting);
39
+ client.off("error", handleError);
40
+ };
41
+ }, [wsContext, wildduckUserAuth]);
42
+ if (!wsContext || !wildduckUserAuth) {
43
+ return null;
44
+ }
45
+ if (renderStatus) {
46
+ return React.createElement(React.Fragment, null, renderStatus(connectionState, reconnectAttempt));
47
+ }
48
+ const statusConfig = {
49
+ disconnected: { color: "#6c757d", text: "Offline", emoji: "⚫" },
50
+ connecting: { color: "#ffc107", text: "Connecting...", emoji: "🟡" },
51
+ connected: { color: "#28a745", text: "Live", emoji: "🟢" },
52
+ reconnecting: {
53
+ color: "#fd7e14",
54
+ text: "Reconnecting...",
55
+ emoji: "🟠",
56
+ },
57
+ disconnecting: { color: "#dc3545", text: "Disconnecting...", emoji: "🔴" },
58
+ };
59
+ const { color, text } = statusConfig[connectionState];
60
+ return (React.createElement("div", { className: `websocket-status ${className}`, style: {
61
+ display: "flex",
62
+ alignItems: "center",
63
+ gap: "8px",
64
+ padding: "4px 12px",
65
+ borderRadius: "16px",
66
+ backgroundColor: "rgba(0, 0, 0, 0.05)",
67
+ fontSize: "14px",
68
+ ...style,
69
+ } },
70
+ React.createElement("span", { className: "status-dot", style: {
71
+ display: "inline-block",
72
+ width: "8px",
73
+ height: "8px",
74
+ borderRadius: "50%",
75
+ backgroundColor: color,
76
+ }, title: text }),
77
+ React.createElement("span", { className: "status-text", style: { fontWeight: 500 } }, text),
78
+ showReconnectCount &&
79
+ connectionState === "reconnecting" &&
80
+ reconnectAttempt > 0 && (React.createElement("span", { className: "reconnect-info", style: { fontSize: "12px", color: "#6c757d" } },
81
+ "(attempt ",
82
+ reconnectAttempt,
83
+ ")")),
84
+ showDetails && (React.createElement("div", { className: "status-details", style: {
85
+ fontSize: "12px",
86
+ color: "#6c757d",
87
+ marginLeft: "8px",
88
+ } },
89
+ connectionState === "reconnecting" && reconnectDelay > 0 && (React.createElement("span", null,
90
+ "Retry in ",
91
+ Math.round(reconnectDelay / 1000),
92
+ "s")),
93
+ lastError && connectionState !== "connected" && (React.createElement("span", { title: lastError }, " | Error"))))));
94
+ }
95
+ export function WebSocketStatusBadge({ wildduckUserAuth, size = 8, className = "", style, }) {
96
+ const wsContext = useWebSocket();
97
+ const [connectionState, setConnectionState] = useState("disconnected");
98
+ useEffect(() => {
99
+ if (!wsContext || !wildduckUserAuth) {
100
+ return;
101
+ }
102
+ const client = wsContext.getClient(wildduckUserAuth);
103
+ if (!client) {
104
+ return;
105
+ }
106
+ setConnectionState(client.state);
107
+ const handleStateChange = (_oldState, newState) => {
108
+ setConnectionState(newState);
109
+ };
110
+ client.on("stateChange", handleStateChange);
111
+ return () => {
112
+ client.off("stateChange", handleStateChange);
113
+ };
114
+ }, [wsContext, wildduckUserAuth]);
115
+ if (!wsContext || !wildduckUserAuth) {
116
+ return null;
117
+ }
118
+ const colorMap = {
119
+ disconnected: "#6c757d",
120
+ connecting: "#ffc107",
121
+ connected: "#28a745",
122
+ reconnecting: "#fd7e14",
123
+ disconnecting: "#dc3545",
124
+ };
125
+ return (React.createElement("span", { className: `websocket-status-badge ${className}`, style: {
126
+ display: "inline-block",
127
+ width: `${size}px`,
128
+ height: `${size}px`,
129
+ borderRadius: "50%",
130
+ backgroundColor: colorMap[connectionState],
131
+ ...style,
132
+ }, title: connectionState }));
133
+ }
134
+ export function WebSocketStats({ wildduckUserAuth, className = "", style, }) {
135
+ const wsContext = useWebSocket();
136
+ const [stats, setStats] = useState({
137
+ state: "disconnected",
138
+ reconnectAttempt: 0,
139
+ subscriptions: 0,
140
+ });
141
+ useEffect(() => {
142
+ if (!wsContext || !wildduckUserAuth) {
143
+ return;
144
+ }
145
+ const client = wsContext.getClient(wildduckUserAuth);
146
+ if (!client) {
147
+ return;
148
+ }
149
+ const updateStats = () => {
150
+ setStats({
151
+ state: client.state,
152
+ reconnectAttempt: client.reconnectAttempt,
153
+ subscriptions: client.subscriptions.size,
154
+ });
155
+ };
156
+ updateStats();
157
+ const handleStateChange = () => updateStats();
158
+ const handleReconnecting = () => updateStats();
159
+ client.on("stateChange", handleStateChange);
160
+ client.on("reconnecting", handleReconnecting);
161
+ return () => {
162
+ client.off("stateChange", handleStateChange);
163
+ client.off("reconnecting", handleReconnecting);
164
+ };
165
+ }, [wsContext, wildduckUserAuth]);
166
+ if (!wsContext || !wildduckUserAuth) {
167
+ return null;
168
+ }
169
+ return (React.createElement("div", { className: `websocket-stats ${className}`, style: {
170
+ padding: "8px",
171
+ fontSize: "12px",
172
+ fontFamily: "monospace",
173
+ backgroundColor: "rgba(0, 0, 0, 0.05)",
174
+ borderRadius: "4px",
175
+ ...style,
176
+ } },
177
+ React.createElement("div", null,
178
+ "State: ",
179
+ stats.state),
180
+ React.createElement("div", null,
181
+ "Subscriptions: ",
182
+ stats.subscriptions),
183
+ stats.reconnectAttempt > 0 && (React.createElement("div", null,
184
+ "Reconnect attempts: ",
185
+ stats.reconnectAttempt))));
186
+ }
187
+ //# sourceMappingURL=WebSocketStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSocketStatus.js","sourceRoot":"","sources":["../../src/components/WebSocketStatus.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { WebSocketStatus, WebSocketStatusBadge, WebSocketStats, type WebSocketStatusProps, type WebSocketStatusBadgeProps, type WebSocketStatsProps, } from "./WebSocketStatus";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { WebSocketStatus, WebSocketStatusBadge, WebSocketStats, } from "./WebSocketStatus";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,cAAc,GAIf,MAAM,mBAAmB,CAAC"}
@@ -18,6 +18,9 @@ interface UseWildduckAutoReplyReturn {
18
18
  deleteError: Optional<Error>;
19
19
  clearError: () => void;
20
20
  }
21
- declare const useWildduckAutoReply: (networkClient: NetworkClient, config: WildduckConfig, wildduckUserAuth: Optional<WildduckUserAuth>, _devMode?: boolean) => UseWildduckAutoReplyReturn;
22
- export { useWildduckAutoReply, type UseWildduckAutoReplyReturn };
21
+ interface UseWildduckAutoReplyOptions {
22
+ enableWebSocket?: boolean;
23
+ }
24
+ declare const useWildduckAutoReply: (networkClient: NetworkClient, config: WildduckConfig, wildduckUserAuth: Optional<WildduckUserAuth>, _devMode?: boolean, options?: UseWildduckAutoReplyOptions) => UseWildduckAutoReplyReturn;
25
+ export { useWildduckAutoReply, type UseWildduckAutoReplyReturn, type UseWildduckAutoReplyOptions, };
23
26
  //# sourceMappingURL=useWildduckAutoReply.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWildduckAutoReply.d.ts","sourceRoot":"","sources":["../../src/hooks/useWildduckAutoReply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAG3B,UAAU,0BAA0B;IAElC,SAAS,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAGxB,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,KAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7B,eAAe,EAAE,CACf,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,wBAAwB,KAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE7B,eAAe,EAAE,CACf,gBAAgB,EAAE,gBAAgB,KAC/B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAG7B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAYD,QAAA,MAAM,oBAAoB,GACxB,eAAe,aAAa,EAC5B,QAAQ,cAAc,EACtB,kBAAkB,QAAQ,CAAC,gBAAgB,CAAC,EAC5C,WAAU,OAAe,KACxB,0BAwLF,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"useWildduckAutoReply.d.ts","sourceRoot":"","sources":["../../src/hooks/useWildduckAutoReply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAK3B,UAAU,0BAA0B;IAElC,SAAS,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAGxB,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,KAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAG7B,eAAe,EAAE,CACf,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,wBAAwB,KAC7B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE7B,eAAe,EAAE,CACf,gBAAgB,EAAE,gBAAgB,KAC/B,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAG7B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAKD,UAAU,2BAA2B;IAEnC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAaD,QAAA,MAAM,oBAAoB,GACxB,eAAe,aAAa,EAC5B,QAAQ,cAAc,EACtB,kBAAkB,QAAQ,CAAC,gBAAgB,CAAC,EAC5C,WAAU,OAAe,EACzB,UAAU,2BAA2B,KACpC,0BAiTF,CAAC;AAEF,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,GACjC,CAAC"}
@@ -1,10 +1,91 @@
1
1
  import { useMutation, useQueryClient } from "@tanstack/react-query";
2
- import { useCallback, useMemo } from "react";
2
+ import { useCallback, useEffect, useMemo, useRef } from "react";
3
3
  import { WildduckClient } from "../network/wildduck-client";
4
- const useWildduckAutoReply = (networkClient, config, wildduckUserAuth, _devMode = false) => {
4
+ import { useWebSocket } from "../websocket/useWebSocket";
5
+ const useWildduckAutoReply = (networkClient, config, wildduckUserAuth, _devMode = false, options) => {
5
6
  const queryClient = useQueryClient();
7
+ const wsSubscribedRef = useRef(false);
8
+ let wsContext;
9
+ try {
10
+ wsContext = useWebSocket();
11
+ }
12
+ catch {
13
+ wsContext = null;
14
+ }
6
15
  const userId = wildduckUserAuth?.userId || null;
7
16
  const api = useMemo(() => new WildduckClient(networkClient, config), [networkClient, config]);
17
+ const shouldUseWebSocket = options?.enableWebSocket &&
18
+ wsContext?.isEnabled &&
19
+ wildduckUserAuth !== null;
20
+ useEffect(() => {
21
+ if (!shouldUseWebSocket || !wildduckUserAuth || !wsContext) {
22
+ return;
23
+ }
24
+ const client = wsContext.getClient(wildduckUserAuth);
25
+ if (!client) {
26
+ return;
27
+ }
28
+ wsContext.connect(wildduckUserAuth).catch((error) => {
29
+ console.error("Failed to connect WebSocket:", error);
30
+ });
31
+ const handleData = (channel, data) => {
32
+ if (channel !== "autoreply" || !data.success) {
33
+ return;
34
+ }
35
+ const autoreplyData = data;
36
+ const autoreply = autoreplyData.autoreply;
37
+ queryClient.setQueryData(["wildduck-autoreply", wildduckUserAuth.userId], autoreply);
38
+ };
39
+ const handleUpdate = (channel, data) => {
40
+ if (channel !== "autoreply" || !data.success) {
41
+ return;
42
+ }
43
+ const updateData = data;
44
+ const event = updateData.event;
45
+ const autoreply = updateData.autoreply;
46
+ if (!event) {
47
+ queryClient.invalidateQueries({
48
+ queryKey: ["wildduck-autoreply", wildduckUserAuth.userId],
49
+ });
50
+ return;
51
+ }
52
+ switch (event) {
53
+ case "updated":
54
+ if (autoreply) {
55
+ queryClient.setQueryData(["wildduck-autoreply", wildduckUserAuth.userId], autoreply);
56
+ }
57
+ break;
58
+ case "deleted":
59
+ queryClient.setQueryData(["wildduck-autoreply", wildduckUserAuth.userId], null);
60
+ break;
61
+ }
62
+ };
63
+ client.on("data", handleData);
64
+ client.on("update", handleUpdate);
65
+ if (!wsSubscribedRef.current) {
66
+ wsSubscribedRef.current = true;
67
+ client
68
+ .subscribe("autoreply", {
69
+ userId: wildduckUserAuth.userId,
70
+ token: wildduckUserAuth.accessToken,
71
+ })
72
+ .catch((error) => {
73
+ console.error("Failed to subscribe to autoreply channel:", error);
74
+ wsSubscribedRef.current = false;
75
+ });
76
+ }
77
+ return () => {
78
+ client.off("data", handleData);
79
+ client.off("update", handleUpdate);
80
+ if (wsSubscribedRef.current) {
81
+ client.unsubscribe("autoreply").catch((error) => {
82
+ console.error("Failed to unsubscribe from autoreply:", error);
83
+ });
84
+ wsSubscribedRef.current = false;
85
+ }
86
+ wsContext.disconnect(wildduckUserAuth.userId);
87
+ };
88
+ }, [shouldUseWebSocket, wildduckUserAuth, wsContext, queryClient]);
8
89
  const getAutoreply = useCallback(async (wildduckUserAuth) => {
9
90
  try {
10
91
  const autoreplyData = await api.getAutoreply(wildduckUserAuth);
@@ -106,5 +187,5 @@ const useWildduckAutoReply = (networkClient, config, wildduckUserAuth, _devMode
106
187
  clearError,
107
188
  ]);
108
189
  };
109
- export { useWildduckAutoReply };
190
+ export { useWildduckAutoReply, };
110
191
  //# sourceMappingURL=useWildduckAutoReply.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWildduckAutoReply.js","sourceRoot":"","sources":["../../src/hooks/useWildduckAutoReply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWildduckAutoReply.js","sourceRoot":"","sources":["../../src/hooks/useWildduckAutoReply.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,9 @@ interface UseWildduckFiltersReturn {
18
18
  clearError: () => void;
19
19
  refresh: (wildduckUserAuth: WildduckUserAuth) => Promise<void>;
20
20
  }
21
- declare const useWildduckFilters: (networkClient: NetworkClient, config: WildduckConfig, devMode?: boolean) => UseWildduckFiltersReturn;
22
- export { useWildduckFilters, type UseWildduckFiltersReturn };
21
+ interface UseWildduckFiltersOptions {
22
+ enableWebSocket?: boolean;
23
+ }
24
+ declare const useWildduckFilters: (networkClient: NetworkClient, config: WildduckConfig, wildduckUserAuth: Optional<WildduckUserAuth>, devMode?: boolean, options?: UseWildduckFiltersOptions) => UseWildduckFiltersReturn;
25
+ export { useWildduckFilters, type UseWildduckFiltersReturn, type UseWildduckFiltersOptions, };
23
26
  //# sourceMappingURL=useWildduckFilters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWildduckFilters.d.ts","sourceRoot":"","sources":["../../src/hooks/useWildduckFilters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAI3B,UAAU,wBAAwB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,UAAU,EAAE,CACV,gBAAgB,EAAE,gBAAgB,KAC/B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACvC,SAAS,EAAE,CACT,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IACjD,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,2BAA2B,KAChC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,2BAA2B,KAChC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AASD,QAAA,MAAM,kBAAkB,GACtB,eAAe,aAAa,EAC5B,QAAQ,cAAc,EACtB,UAAS,OAAe,KACvB,wBA8MF,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"useWildduckFilters.d.ts","sourceRoot":"","sources":["../../src/hooks/useWildduckFilters.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAO3B,UAAU,wBAAwB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,UAAU,EAAE,CACV,gBAAgB,EAAE,gBAAgB,KAC/B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACvC,SAAS,EAAE,CACT,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IACjD,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,2BAA2B,KAChC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,2BAA2B,KAChC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,YAAY,EAAE,CACZ,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAKD,UAAU,yBAAyB;IAEjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAWD,QAAA,MAAM,kBAAkB,GACtB,eAAe,aAAa,EAC5B,QAAQ,cAAc,EACtB,kBAAkB,QAAQ,CAAC,gBAAgB,CAAC,EAC5C,UAAS,OAAe,EACxB,UAAU,yBAAyB,KAClC,wBAgWF,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,GAC/B,CAAC"}
@@ -1,11 +1,108 @@
1
- import { useCallback, useMemo, useState } from "react";
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
2
  import { WildduckMockData } from "./mocks";
3
3
  import { WildduckClient } from "../network/wildduck-client";
4
- const useWildduckFilters = (networkClient, config, devMode = false) => {
4
+ import { useWebSocket } from "../websocket/useWebSocket";
5
+ import { useQueryClient } from "@tanstack/react-query";
6
+ const useWildduckFilters = (networkClient, config, wildduckUserAuth, devMode = false, options) => {
5
7
  const [isLoading, setIsLoading] = useState(false);
6
8
  const [error, setError] = useState(null);
7
9
  const [filters, setFilters] = useState([]);
10
+ const queryClient = useQueryClient();
11
+ const wsSubscribedRef = useRef(false);
12
+ let wsContext;
13
+ try {
14
+ wsContext = useWebSocket();
15
+ }
16
+ catch {
17
+ wsContext = null;
18
+ }
8
19
  const api = useMemo(() => new WildduckClient(networkClient, config), [networkClient, config]);
20
+ const shouldUseWebSocket = options?.enableWebSocket &&
21
+ wsContext?.isEnabled &&
22
+ wildduckUserAuth !== null;
23
+ useEffect(() => {
24
+ if (!shouldUseWebSocket || !wildduckUserAuth || !wsContext) {
25
+ return;
26
+ }
27
+ const client = wsContext.getClient(wildduckUserAuth);
28
+ if (!client) {
29
+ return;
30
+ }
31
+ wsContext.connect(wildduckUserAuth).catch((error) => {
32
+ console.error("Failed to connect WebSocket:", error);
33
+ });
34
+ const handleData = (channel, data) => {
35
+ if (channel !== "filters" || !data.success) {
36
+ return;
37
+ }
38
+ const filtersData = data;
39
+ const filterList = filtersData.filters || [];
40
+ setFilters(filterList);
41
+ queryClient.setQueryData(["wildduck-filters", wildduckUserAuth.userId], filterList);
42
+ };
43
+ const handleUpdate = (channel, data) => {
44
+ if (channel !== "filters" || !data.success) {
45
+ return;
46
+ }
47
+ const updateData = data;
48
+ const event = updateData.event;
49
+ const filter = updateData.filter;
50
+ if (!event || !filter) {
51
+ queryClient.invalidateQueries({
52
+ queryKey: ["wildduck-filters", wildduckUserAuth.userId],
53
+ });
54
+ return;
55
+ }
56
+ setFilters((currentFilters) => {
57
+ let updatedFilters;
58
+ switch (event) {
59
+ case "created":
60
+ if (!currentFilters.find((f) => f.id === filter.id)) {
61
+ updatedFilters = [...currentFilters, filter];
62
+ }
63
+ else {
64
+ updatedFilters = currentFilters;
65
+ }
66
+ break;
67
+ case "updated":
68
+ updatedFilters = currentFilters.map((f) => f.id === filter.id ? { ...f, ...filter } : f);
69
+ break;
70
+ case "deleted":
71
+ updatedFilters = currentFilters.filter((f) => f.id !== filter.id);
72
+ break;
73
+ default:
74
+ updatedFilters = currentFilters;
75
+ }
76
+ queryClient.setQueryData(["wildduck-filters", wildduckUserAuth.userId], updatedFilters);
77
+ return updatedFilters;
78
+ });
79
+ };
80
+ client.on("data", handleData);
81
+ client.on("update", handleUpdate);
82
+ if (!wsSubscribedRef.current) {
83
+ wsSubscribedRef.current = true;
84
+ client
85
+ .subscribe("filters", {
86
+ userId: wildduckUserAuth.userId,
87
+ token: wildduckUserAuth.accessToken,
88
+ })
89
+ .catch((error) => {
90
+ console.error("Failed to subscribe to filters channel:", error);
91
+ wsSubscribedRef.current = false;
92
+ });
93
+ }
94
+ return () => {
95
+ client.off("data", handleData);
96
+ client.off("update", handleUpdate);
97
+ if (wsSubscribedRef.current) {
98
+ client.unsubscribe("filters").catch((error) => {
99
+ console.error("Failed to unsubscribe from filters:", error);
100
+ });
101
+ wsSubscribedRef.current = false;
102
+ }
103
+ wsContext.disconnect(wildduckUserAuth.userId);
104
+ };
105
+ }, [shouldUseWebSocket, wildduckUserAuth, wsContext, queryClient]);
9
106
  const clearError = useCallback(() => {
10
107
  setError(null);
11
108
  }, []);
@@ -144,5 +241,5 @@ const useWildduckFilters = (networkClient, config, devMode = false) => {
144
241
  refresh,
145
242
  ]);
146
243
  };
147
- export { useWildduckFilters };
244
+ export { useWildduckFilters, };
148
245
  //# sourceMappingURL=useWildduckFilters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWildduckFilters.js","sourceRoot":"","sources":["../../src/hooks/useWildduckFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAUvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAqC5D,MAAM,kBAAkB,GAAG,CACzB,aAA4B,EAC5B,MAAsB,EACtB,UAAmB,KAAK,EACE,EAAE;IAC5B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA2B,EAAE,CAAC,CAAC;IAGrE,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,EAC/C,CAAC,aAAa,EAAE,MAAM,CAAC,CACxB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EACH,gBAAkC,EACC,EAAE;QACrC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAExD,MAAM,UAAU,GACb,QAAmD,CAAC,OAAO,IAAI,EAAE,CAAC;YACrE,UAAU,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;gBAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI;qBAC9B,OAA8C,CAAC;gBAClD,UAAU,CAAC,WAAW,CAAC,CAAC;gBACxB,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;YAC/D,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,GAAG,EAAE,OAAO,CAAC,CACf,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAC3B,KAAK,EACH,gBAAkC,EAClC,QAAgB,EAC6B,EAAE;QAC/C,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAEjE,OAAO,QAAkC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAA2C,CAAC;YACnE,CAAC;YAED,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAC9D,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,GAAG,EAAE,OAAO,CAAC,CACf,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EACH,gBAAkC,EAClC,MAAmC,EACQ,EAAE;QAC7C,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAElE,OAAO,QAA4C,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,gBAAgB,CAAC,eAAe,EAAE,CAAC;YAC5C,CAAC;YAED,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;YACjE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACpC,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,GAAG,EAAE,OAAO,CAAC,CACf,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EACH,gBAAkC,EAClC,QAAgB,EAChB,MAAmC,EACJ,EAAE;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CACrC,gBAAgB,EAChB,QAAQ,EACR,MAAM,CACP,CAAC;YAEF,OAAO,QAAgC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,gBAAgB,CAAC,eAAe,EAAE,CAAC;YAC5C,CAAC;YAED,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;YACjE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,GAAG,EAAE,OAAO,CAAC,CACf,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EACH,gBAAkC,EAClC,QAAgB,EACe,EAAE;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAEpE,OAAO,QAAgC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,gBAAgB,CAAC,eAAe,EAAE,CAAC;YAC5C,CAAC;YAED,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;YACjE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,GAAG,EAAE,OAAO,CAAC,CACf,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,gBAAkC,EAAiB,EAAE;QAC1D,MAAM,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,SAAS;QACT,KAAK;QACL,OAAO;QACP,UAAU;QACV,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,OAAO;KACR,CAAC,EACF;QACE,SAAS;QACT,KAAK;QACL,OAAO;QACP,UAAU;QACV,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,OAAO;KACR,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAiC,CAAC"}
1
+ {"version":3,"file":"useWildduckFilters.js","sourceRoot":"","sources":["../../src/hooks/useWildduckFilters.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,9 @@ interface UseWildduckMessagesReturn {
75
75
  moveError: Optional<Error>;
76
76
  clearError: () => void;
77
77
  }
78
- declare const useWildduckMessages: (networkClient: NetworkClient, config: WildduckConfig, _devMode?: boolean, pageSize?: number) => UseWildduckMessagesReturn;
78
+ interface UseWildduckMessagesOptions {
79
+ enableWebSocket?: boolean;
80
+ }
81
+ declare const useWildduckMessages: (networkClient: NetworkClient, config: WildduckConfig, _devMode?: boolean, pageSize?: number, options?: UseWildduckMessagesOptions) => UseWildduckMessagesReturn;
79
82
  export { useWildduckMessages, type GetMessagesOptions, type SendMessageParams, type UseWildduckMessagesReturn, };
80
83
  //# sourceMappingURL=useWildduckMessages.d.ts.map