Skip to content

Commit bc9a083

Browse files
committed
fix: change the way interface declaration is consumed
1 parent 9149483 commit bc9a083

File tree

5 files changed

+93
-111
lines changed

5 files changed

+93
-111
lines changed
Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,41 @@
1-
import 'stream-chat';
2-
import { DefaultAttachmentType, DefaultMessageType } from 'stream-chat-react-native';
1+
import {
2+
DefaultAttachmentType,
3+
DefaultMessageType,
4+
DefaultChannelType,
5+
DefaultCommandType,
6+
DefaultEventType,
7+
DefaultMemberType,
8+
DefaultPollOptionType,
9+
DefaultPollType,
10+
DefaultReactionType,
11+
DefaultThreadType,
12+
DefaultUserType,
13+
} from 'stream-chat-react-native';
314

415
declare module 'stream-chat' {
5-
// TODO: Check why does this not come automatically ?
6-
interface CustomUserData {
7-
image?: string;
8-
}
9-
1016
interface CustomAttachmentData extends DefaultAttachmentType {
1117
id?: string;
1218
}
1319

20+
interface CustomChannelData extends DefaultChannelType {}
21+
22+
interface CustomCommandData extends DefaultCommandType {}
23+
24+
interface CustomEventData extends DefaultEventType {}
25+
26+
interface CustomMemberData extends DefaultMemberType {}
27+
28+
interface CustomUserData extends DefaultUserType {}
29+
1430
interface CustomMessageData extends DefaultMessageType {
1531
ai_generated?: boolean;
1632
}
33+
34+
interface CustomPollOptionData extends DefaultPollOptionType {}
35+
36+
interface CustomPollData extends DefaultPollType {}
37+
38+
interface CustomReactionData extends DefaultReactionType {}
39+
40+
interface CustomThreadData extends DefaultThreadType {}
1741
}

examples/SampleApp/src/screens/ThreadScreen.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { ScreenHeader } from '../components/ScreenHeader';
1717
import type { RouteProp } from '@react-navigation/native';
1818

1919
import type { StackNavigatorParamList } from '../types';
20-
import { ThreadState } from 'stream-chat';
20+
import { ThreadState, UserResponse } from 'stream-chat';
2121

2222
const selector = (nextValue: ThreadState) => ({ parentMessage: nextValue.parentMessage }) as const;
2323

@@ -39,12 +39,12 @@ export type ThreadHeaderProps = {
3939

4040
const ThreadHeader: React.FC<ThreadHeaderProps> = ({ thread }) => {
4141
const typing = useTypingString();
42-
let subtitleText = (thread as MessageType)?.user?.name;
42+
let subtitleText = ((thread as MessageType)?.user as UserResponse)?.name;
4343
const { parentMessage } =
4444
useStateStore((thread as ThreadType)?.threadInstance?.state, selector) || {};
4545

4646
if (subtitleText == null) {
47-
subtitleText = parentMessage?.user?.name;
47+
subtitleText = (parentMessage?.user as UserResponse)?.name;
4848
}
4949

5050
return (

examples/SampleApp/yarn.lock

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -989,7 +989,7 @@
989989
pirates "^4.0.6"
990990
source-map-support "^0.5.16"
991991

992-
"@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.25.0", "@babel/runtime@^7.8.4":
992+
"@babel/runtime@^7.17.2", "@babel/runtime@^7.25.0", "@babel/runtime@^7.8.4":
993993
version "7.26.9"
994994
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.9.tgz#aa4c6facc65b9cb3f87d75125ffd47781b475433"
995995
integrity sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==
@@ -2566,14 +2566,6 @@
25662566
"@types/ms" "*"
25672567
"@types/node" "*"
25682568

2569-
"@types/jsonwebtoken@~9.0.0":
2570-
version "9.0.8"
2571-
resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.8.tgz#313490052801edfb031bb32b6bbd77cc9f230852"
2572-
integrity sha512-7fx54m60nLFUVYlxAB1xpe9CBWX2vSrk50Y6ogRJ1v5xxtba7qXTg5BgYDN5dq+yuQQ9HaVlHJyAAt1/mxryFg==
2573-
dependencies:
2574-
"@types/ms" "*"
2575-
"@types/node" "*"
2576-
25772569
"@types/ms@*":
25782570
version "2.1.0"
25792571
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
@@ -2617,13 +2609,6 @@
26172609
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
26182610
integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==
26192611

2620-
"@types/ws@^7.4.0":
2621-
version "7.4.7"
2622-
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702"
2623-
integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==
2624-
dependencies:
2625-
"@types/node" "*"
2626-
26272612
"@types/ws@^8.5.14":
26282613
version "8.18.0"
26292614
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.0.tgz#8a2ec491d6f0685ceaab9a9b7ff44146236993b5"
@@ -5239,11 +5224,6 @@ isobject@^3.0.1:
52395224
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
52405225
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
52415226

5242-
isomorphic-ws@^4.0.1:
5243-
version "4.0.1"
5244-
resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc"
5245-
integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==
5246-
52475227
isomorphic-ws@^5.0.0:
52485228
version "5.0.0"
52495229
resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf"
@@ -5788,7 +5768,7 @@ jsonfile@^4.0.0:
57885768
optionalDependencies:
57895769
graceful-fs "^4.1.6"
57905770

5791-
jsonwebtoken@^9.0.2, jsonwebtoken@~9.0.0:
5771+
jsonwebtoken@^9.0.2:
57925772
version "9.0.2"
57935773
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3"
57945774
integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==
@@ -7550,25 +7530,6 @@ statuses@~1.5.0:
75507530
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
75517531
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
75527532

7553-
7554-
version "6.6.6"
7555-
resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-6.6.6.tgz#d701beb9652f0a5851286f752d8c4fdadb3e0603"
7556-
integrity sha512-sfBtWz4K4OzhFDMRaPF2xMj7aP9FQU4dMN1XCsmRT07hyYn6iEviECxNttYvoRLB1zNdeja5cL63IDY3UZSpAQ==
7557-
dependencies:
7558-
"@gorhom/bottom-sheet" "^5.1.1"
7559-
dayjs "1.10.5"
7560-
emoji-regex "^10.3.0"
7561-
i18next "^21.6.14"
7562-
intl-pluralrules "^2.0.1"
7563-
linkifyjs "^4.1.1"
7564-
lodash-es "4.17.21"
7565-
mime-types "^2.1.34"
7566-
path "0.12.7"
7567-
react-native-markdown-package "1.8.2"
7568-
react-native-url-polyfill "^1.3.0"
7569-
stream-chat "^8.57.5"
7570-
use-sync-external-store "^1.4.0"
7571-
75727533
"stream-chat-react-native-core@link:../../package":
75737534
version "0.0.0"
75747535
uid ""
@@ -7591,21 +7552,6 @@ [email protected]:
75917552
jsonwebtoken "^9.0.2"
75927553
ws "^8.18.1"
75937554

7594-
stream-chat@^8.57.5:
7595-
version "8.57.5"
7596-
resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-8.57.5.tgz#1b49b7504371e19a539465e2ae5dc86aa3269637"
7597-
integrity sha512-ndcbH/zGzUIAhZLGn1owVV8MeNvVfWITIlhAhfmnsV7RLoo/eiGFEuP4aNoG1YRos/g9xJQ7TEmKpz8xYqo13w==
7598-
dependencies:
7599-
"@babel/runtime" "^7.16.3"
7600-
"@types/jsonwebtoken" "~9.0.0"
7601-
"@types/ws" "^7.4.0"
7602-
axios "^1.6.0"
7603-
base64-js "^1.5.1"
7604-
form-data "^4.0.0"
7605-
isomorphic-ws "^4.0.1"
7606-
jsonwebtoken "~9.0.0"
7607-
ws "^7.5.10"
7608-
76097555
strict-uri-encode@^2.0.0:
76107556
version "2.0.0"
76117557
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,42 @@
11
import 'stream-chat';
2-
import { Asset, File } from './types';
2+
import {
3+
DefaultAttachmentType,
4+
DefaultChannelType,
5+
DefaultCommandType,
6+
DefaultEventType,
7+
DefaultMemberType,
8+
DefaultMessageType,
9+
DefaultPollOptionType,
10+
DefaultPollType,
11+
DefaultReactionType,
12+
DefaultThreadType,
13+
DefaultUserType,
14+
} from './types';
315

416
declare module 'stream-chat' {
5-
interface CustomUserData {
6-
image?: string;
7-
}
8-
9-
interface CustomChannelData {
10-
[key: string]: unknown;
11-
12-
image?: string;
13-
}
14-
15-
interface CustomAttachmentData {
16-
duration?: number;
17-
file_size?: number;
18-
mime_type?: string;
19-
originalFile?: File;
20-
originalImage?: Partial<Asset>;
21-
waveform_data?: number[];
22-
}
23-
24-
interface CustomCommandData {
25-
flag: unknown;
26-
imgur: unknown;
27-
}
17+
/* eslint-disable @typescript-eslint/no-empty-object-type */
18+
19+
interface CustomAttachmentData extends DefaultAttachmentType {}
20+
21+
interface CustomChannelData extends DefaultChannelType {}
22+
23+
interface CustomCommandData extends DefaultCommandType {}
24+
25+
interface CustomEventData extends DefaultEventType {}
26+
27+
interface CustomMemberData extends DefaultMemberType {}
28+
29+
interface CustomUserData extends DefaultUserType {}
30+
31+
interface CustomMessageData extends DefaultMessageType {}
32+
33+
interface CustomPollOptionData extends DefaultPollOptionType {}
34+
35+
interface CustomPollData extends DefaultPollType {}
36+
37+
interface CustomReactionData extends DefaultReactionType {}
38+
39+
interface CustomThreadData extends DefaultThreadType {}
40+
41+
/* eslint-enable @typescript-eslint/no-empty-object-type */
2842
}

package/src/types/types.ts

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -51,17 +51,7 @@ export type FileUpload = {
5151
url?: string;
5252
waveform_data?: number[];
5353
};
54-
55-
export type ImageUpload = {
56-
file: Partial<Asset>;
57-
id: string;
58-
state: FileStateValue;
59-
height?: number;
60-
url?: string;
61-
width?: number;
62-
};
63-
64-
export interface DefaultAttachmentType extends UnknownType {
54+
export interface DefaultAttachmentType {
6555
duration?: number;
6656
file_size?: number;
6757
mime_type?: string;
@@ -70,38 +60,46 @@ export interface DefaultAttachmentType extends UnknownType {
7060
waveform_data?: number[];
7161
}
7262

73-
export interface DefaultUserType extends UnknownType {
63+
export interface DefaultUserType {
7464
image?: string;
7565
}
7666

77-
export interface DefaultChannelType extends UnknownType {
67+
export interface DefaultChannelType {
7868
[key: string]: unknown;
7969

8070
image?: string;
8171
}
8272

83-
export interface DefaultCommandType extends UnknownType {
73+
export interface DefaultCommandType {
8474
flag: unknown;
8575
imgur: unknown;
8676
}
8777

8878
/* eslint-disable @typescript-eslint/no-empty-object-type */
8979

90-
export interface DefaultEventType extends UnknownType {}
80+
export interface DefaultEventType {}
9181

92-
export interface DefaultMemberType extends UnknownType {}
82+
export interface DefaultMemberType {}
9383

94-
export interface DefaultMessageType extends UnknownType {}
84+
export interface DefaultMessageType {}
9585

96-
export interface DefaultPollOptionType extends UnknownType {}
86+
export interface DefaultPollOptionType {}
9787

98-
export interface DefaultPollType extends UnknownType {}
88+
export interface DefaultPollType {}
9989

100-
export interface DefaultReactionType extends UnknownType {}
90+
export interface DefaultReactionType {}
10191

102-
export interface DefaultThreadType extends UnknownType {}
92+
export interface DefaultThreadType {}
10393

10494
/* eslint-enable @typescript-eslint/no-empty-object-type */
95+
export type ImageUpload = {
96+
file: Partial<Asset>;
97+
id: string;
98+
state: FileStateValue;
99+
height?: number;
100+
url?: string;
101+
width?: number;
102+
};
105103

106104
export type Reaction = {
107105
id: string;

0 commit comments

Comments
 (0)