Skip to content

Commit 5d64d66

Browse files
committed
fix: avoid storing shared_location in drafts
1 parent 31c4ef8 commit 5d64d66

File tree

4 files changed

+4
-96
lines changed

4 files changed

+4
-96
lines changed

src/messageComposer/middleware/messageComposer/MessageComposerMiddlewareExecutor.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,7 @@ import {
3232
} from './customData';
3333
import { createUserDataInjectionMiddleware } from './userDataInjection';
3434
import { createPollOnlyCompositionMiddleware } from './pollOnly';
35-
import {
36-
createDraftSharedLocationCompositionMiddleware,
37-
createSharedLocationCompositionMiddleware,
38-
} from './sharedLocation';
35+
import { createSharedLocationCompositionMiddleware } from './sharedLocation';
3936

4037
export class MessageComposerMiddlewareExecutor extends MiddlewareExecutor<
4138
MessageComposerMiddlewareState,
@@ -72,7 +69,6 @@ export class MessageDraftComposerMiddlewareExecutor extends MiddlewareExecutor<
7269
createDraftTextComposerCompositionMiddleware(composer),
7370
createDraftAttachmentsCompositionMiddleware(composer),
7471
createDraftLinkPreviewsCompositionMiddleware(composer),
75-
createDraftSharedLocationCompositionMiddleware(composer),
7672
createDraftMessageComposerStateCompositionMiddleware(composer),
7773
createDraftCustomDataCompositionMiddleware(composer),
7874
createDraftCompositionValidationMiddleware(composer),

src/messageComposer/middleware/messageComposer/sharedLocation.ts

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,28 +42,3 @@ export const createSharedLocationCompositionMiddleware = (
4242
},
4343
},
4444
});
45-
46-
export const createDraftSharedLocationCompositionMiddleware = (
47-
composer: MessageComposer,
48-
): MessageDraftCompositionMiddleware => ({
49-
id: 'stream-io/message-composer-middleware/draft-shared-location',
50-
handlers: {
51-
compose: ({
52-
state,
53-
next,
54-
forward,
55-
}: MiddlewareHandlerParams<MessageDraftComposerMiddlewareValueState>) => {
56-
const { locationComposer } = composer;
57-
const location = locationComposer.validLocation;
58-
if (!locationComposer || !location) return forward();
59-
60-
return next({
61-
...state,
62-
draft: {
63-
...state.draft,
64-
shared_location: location,
65-
},
66-
});
67-
},
68-
},
69-
});

test/unit/LiveLocationManager.test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,9 @@ describe('LiveLocationManager', () => {
547547
});
548548

549549
await manager.init();
550-
expect(manager.messages).toHaveLength(1);
550+
vi.waitFor(() => {
551+
expect(manager.messages).toHaveLength(1);
552+
});
551553
client.dispatchEvent({
552554
message: {
553555
id: liveLocation.message_id,

test/unit/MessageComposer/middleware/messageComposer/sharedLocation.test.ts

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import { describe, expect, it, vi } from 'vitest';
22
import {
3-
createDraftSharedLocationCompositionMiddleware,
43
createSharedLocationCompositionMiddleware,
54
DraftResponse,
65
LocalMessage,
76
MessageComposer,
87
MessageComposerMiddlewareState,
9-
type MessageCompositionMiddleware,
10-
MessageDraftComposerMiddlewareValueState,
118
MiddlewareStatus,
129
StreamChat,
1310
} from '../../../../../src';
@@ -139,65 +136,3 @@ describe('stream-io/message-composer-middleware/shared-location', () => {
139136
});
140137
});
141138
});
142-
143-
const setupDraftMiddlewareHandlerParams = (
144-
initialState: MessageDraftComposerMiddlewareValueState = {},
145-
) => {
146-
return {
147-
state: initialState,
148-
next: async (state: MessageDraftComposerMiddlewareValueState) => ({ state }),
149-
complete: async (state: MessageDraftComposerMiddlewareValueState) => ({
150-
state,
151-
status: 'complete' as MiddlewareStatus,
152-
}),
153-
discard: async () => ({ state: initialState, status: 'discard' as MiddlewareStatus }),
154-
forward: async () => ({ state: initialState }),
155-
};
156-
};
157-
158-
describe('stream-io/message-composer-middleware/draft-shared-location', () => {
159-
it('injects shared_location to localMessage and message payloads', async () => {
160-
const { messageComposer } = setup();
161-
const middleware = createDraftSharedLocationCompositionMiddleware(messageComposer);
162-
const coords = { latitude: 1, longitude: 1 };
163-
messageComposer.locationComposer.setData(coords);
164-
const result = await middleware.handlers.compose(setupDraftMiddlewareHandlerParams());
165-
expect(result).toEqual({
166-
state: {
167-
draft: {
168-
shared_location: {
169-
created_by_device_id: messageComposer.locationComposer.deviceId,
170-
message_id: messageComposer.id,
171-
...coords,
172-
},
173-
},
174-
},
175-
});
176-
});
177-
178-
it('does not inject shared_location to localMessage and message payloads if none is set', async () => {
179-
const { messageComposer } = setup();
180-
const middleware = createDraftSharedLocationCompositionMiddleware(messageComposer);
181-
const result = await middleware.handlers.compose(setupDraftMiddlewareHandlerParams());
182-
expect(result).toEqual({
183-
state: {},
184-
});
185-
});
186-
187-
it('does not inject shared_location to localMessage and message payloads if the location state is corrupted', async () => {
188-
const { messageComposer } = setup();
189-
const middleware = createDraftSharedLocationCompositionMiddleware(messageComposer);
190-
// @ts-expect-error invalid location payload
191-
messageComposer.locationComposer.state.next({
192-
location: {
193-
latitude: 1,
194-
created_by_device_id: 'da',
195-
message_id: messageComposer.id,
196-
},
197-
});
198-
const result = await middleware.handlers.compose(setupDraftMiddlewareHandlerParams());
199-
expect(result).toEqual({
200-
state: {},
201-
});
202-
});
203-
});

0 commit comments

Comments
 (0)