Skip to content

Commit 656541f

Browse files
committed
fix(webapp): show the first webhook delivery in the live feed without a reload
The deliveries live feed no longer stops polling while the list is empty, so the first delivery appears on its own instead of only after a manual refresh. The new-delivery watermark is already seeded when the list is empty, so polling an empty list is safe.
1 parent 9af0ba4 commit 656541f

3 files changed

Lines changed: 2 additions & 9 deletions

File tree

  • apps/webapp/app
    • components/webhookDeliveries/v1
    • routes
      • _app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.webhooks.$webhookParam
      • _app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.webhooks._index

apps/webapp/app/components/webhookDeliveries/v1/useDeliveriesLiveReload.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,9 @@ function isNewDeliveriesCheckTick(tick: number) {
6161

6262
function useNewDeliveriesDetection({
6363
deliveries,
64-
hasAnyDeliveries,
6564
isLoading,
6665
}: {
6766
deliveries: ListedDelivery[];
68-
hasAnyDeliveries: boolean;
6967
isLoading: boolean;
7068
}) {
7169
const pollTickRef = useRef(0);
@@ -74,7 +72,7 @@ function useNewDeliveriesDetection({
7472
);
7573
const [newDeliveriesCount, setNewDeliveriesCount] = useState(0);
7674

77-
const shouldPollForNewDeliveries = hasAnyDeliveries && !isLoading && newDeliveriesCount < 100;
75+
const shouldPollForNewDeliveries = !isLoading && newDeliveriesCount < 100;
7876

7977
const resetNewDeliveriesTracking = useCallback(() => {
8078
setKnownNewestDeliveryMs(maxCreatedAtMs(deliveries) ?? Date.now());
@@ -109,15 +107,13 @@ function useNewDeliveriesDetection({
109107

110108
export function useDeliveriesLiveReload({
111109
deliveries,
112-
hasAnyDeliveries,
113110
isLoading,
114111
webhookEndpointId,
115112
organizationSlug,
116113
projectSlug,
117114
environmentSlug,
118115
}: {
119116
deliveries: ListedDelivery[];
120-
hasAnyDeliveries: boolean;
121117
isLoading: boolean;
122118
/** Omit to poll across every endpoint in the environment (the cross-endpoint deliveries list). */
123119
webhookEndpointId?: string;
@@ -141,7 +137,7 @@ export function useDeliveriesLiveReload({
141137
dismissNewDeliveries,
142138
checkNewDeliveriesOnTick,
143139
resetNewDeliveriesTracking,
144-
} = useNewDeliveriesDetection({ deliveries, hasAnyDeliveries, isLoading });
140+
} = useNewDeliveriesDetection({ deliveries, isLoading });
145141

146142
useEffect(() => {
147143
setVisibleDeliveries(deliveries);

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.webhooks.$webhookParam/route.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,6 @@ function LiveDeliveriesTable({
491491
const { visibleDeliveries, showNewDeliveriesBanner, newDeliveriesCount, dismissNewDeliveries } =
492492
useDeliveriesLiveReload({
493493
deliveries: list.deliveries,
494-
hasAnyDeliveries: list.deliveries.length > 0,
495494
isLoading: navigation.state !== "idle",
496495
webhookEndpointId,
497496
organizationSlug: organization.slug,
@@ -592,7 +591,6 @@ function ConsoleFeedList({
592591
const { visibleDeliveries, showNewDeliveriesBanner, newDeliveriesCount, dismissNewDeliveries } =
593592
useDeliveriesLiveReload({
594593
deliveries: list.deliveries,
595-
hasAnyDeliveries: list.deliveries.length > 0,
596594
isLoading: navigation.state !== "idle",
597595
webhookEndpointId,
598596
organizationSlug: organization.slug,

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.webhooks._index/route.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ function useLiveDeliveries(deliveries: WebhookDeliveryListItem[]) {
194194
const { visibleDeliveries, showNewDeliveriesBanner, newDeliveriesCount, dismissNewDeliveries } =
195195
useDeliveriesLiveReload({
196196
deliveries,
197-
hasAnyDeliveries: deliveries.length > 0,
198197
isLoading: navigation.state !== "idle",
199198
organizationSlug: organization.slug,
200199
projectSlug: project.slug,

0 commit comments

Comments
 (0)