Skip to content

Commit 96c9faf

Browse files
committed
refactor: improve event limit validation and default handling
1 parent dd3f066 commit 96c9faf

1 file changed

Lines changed: 22 additions & 20 deletions

File tree

src/components/relay-connector.tsx

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -77,29 +77,30 @@ export const RelayConnector: React.FC = () => {
7777
return { since: sinceTimestamp };
7878
};
7979

80-
const validateEventLimit = (limit: string): number | null => {
80+
const validateEventLimit = (limit: string): number => {
81+
setLimitError(null);
82+
8183
if (!limitEnabled) {
82-
setLimitError(null);
83-
return null;
84+
// Return a reasonable default limit when custom limit is disabled
85+
return 2000;
8486
}
8587

8688
if (!limit.trim()) {
87-
setLimitError('Event limit cannot be empty when limit is enabled');
88-
return null;
89+
setLimitError('Event limit cannot be empty when custom limit is enabled');
90+
return 2000; // fallback to default
8991
}
9092

9193
const numLimit = parseInt(limit, 10);
9294
if (isNaN(numLimit) || numLimit <= 0) {
9395
setLimitError('Event limit must be a positive integer');
94-
return null;
96+
return 2000; // fallback to default
9597
}
9698

9799
if (numLimit > 5000) {
98100
setLimitError('Event limit cannot exceed 5000');
99-
return null;
101+
return 2000; // fallback to default
100102
}
101103

102-
setLimitError(null);
103104
return numLimit;
104105
};
105106

@@ -120,16 +121,12 @@ export const RelayConnector: React.FC = () => {
120121
}
121122

122123
const limit = validateEventLimit(eventLimit);
123-
if (limitEnabled && limit === null) {
124-
return;
125-
}
126-
127-
// Combine time filter and limit into a single filter object
128-
const combinedFilter: SubscriptionTimeFilter | undefined =
129-
timeFilter || limitEnabled ? {
130-
...timeFilter,
131-
...(limit !== null ? { limit } : {})
132-
} : undefined;
124+
125+
// Always include limit (either custom or default) to override relay defaults
126+
const combinedFilter: SubscriptionTimeFilter = {
127+
...timeFilter,
128+
limit
129+
};
133130

134131
if (isConnected) {
135132
disconnect();
@@ -244,8 +241,13 @@ export const RelayConnector: React.FC = () => {
244241
/>
245242
<Label htmlFor="event-limit" className="flex items-center space-x-1">
246243
<Hash className="h-4 w-4" />
247-
<span>Limit number of events</span>
244+
<span>Custom event limit</span>
248245
</Label>
246+
{!limitEnabled && (
247+
<span className="text-xs text-muted-foreground ml-2">
248+
(default: 2000 events)
249+
</span>
250+
)}
249251
</div>
250252

251253
{limitEnabled && (
@@ -269,7 +271,7 @@ export const RelayConnector: React.FC = () => {
269271
<p className="text-sm text-red-500">{limitError}</p>
270272
)}
271273
<p className="text-xs text-muted-foreground">
272-
Leave unchecked to get all available events. Max: 5000 events. Default: 100 events.
274+
Use a custom limit instead of the default 2000 events. Max: 5000 events.
273275
</p>
274276
</div>
275277
)}

0 commit comments

Comments
 (0)