Skip to content

Commit bcfe78c

Browse files
bang9chohongm
andauthored
migration: ui typescript (#815)
```sh git rebase --onto main HEAD~16 ``` [CLNP-1247](https://sendbird.atlassian.net/browse/CLNP-1247?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ) Modules - ./ui/Icon/index.jsx: index.jsx - ./ui/Label/index.jsx: index.jsx - ./ui/Label/stringSet.js: stringSet.js - ./ui/Label/types.js: types.js - ./ui/Label/utils.js: utils.js - ./ui/LegacyChannelHeader/index.jsx: index.jsx - ./ui/LinkLabel/index.jsx: index.jsx - ./ui/MessageInput/index.jsx: index.jsx - ./ui/MessageInput/utils.js: utils.js [CLNP-1247]: https://sendbird.atlassian.net/browse/CLNP-1247?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: Liam Hongman Cho <[email protected]>
1 parent fad2bf0 commit bcfe78c

File tree

40 files changed

+553
-977
lines changed

40 files changed

+553
-977
lines changed

.eslintrc.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ module.exports = {
3535
tsx: 'never',
3636
},
3737
],
38-
'react/forbid-prop-types': 0,
3938
// we don't want to force to define function component only
4039
'react/function-component-definition': 'off',
4140
'no-unused-expressions': 'off',

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@
7171
"@sendbird/uikit-tools": "0.0.1-alpha.40",
7272
"css-vars-ponyfill": "^2.3.2",
7373
"date-fns": "^2.16.1",
74-
"dompurify": "^3.0.1",
75-
"prop-types": "^15.7.2"
74+
"dompurify": "^3.0.1"
7675
},
7776
"bugs": {
7877
"url": "https://community.sendbird.com"

rollup.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ module.exports = ({
3939
'@sendbird/chat/openChannel',
4040
'@sendbird/chat/message',
4141
'@sendbird/uikit-tools',
42-
'prop-types',
4342
'react',
4443
'react-dom',
4544
'css-vars-ponyfill',

rollup.module-exports.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,18 +154,18 @@ export default {
154154
'ui/EmojiReactions': 'src/ui/EmojiReactions/index.tsx',
155155
'ui/FileMessageItemBody': 'src/ui/FileMessageItemBody/index.tsx',
156156
'ui/FileViewer': 'src/ui/FileViewer/index.tsx',
157-
'ui/Icon': 'src/ui/Icon/index.jsx',
157+
'ui/Icon': 'src/ui/Icon/index.tsx',
158158
'ui/IconButton': 'src/ui/IconButton/index.tsx',
159159
'ui/ImageRenderer': 'src/ui/ImageRenderer/index.tsx',
160160
'ui/Input': 'src/ui/Input/index.tsx',
161-
'ui/Label': 'src/ui/Label/index.jsx',
162-
'ui/LinkLabel': 'src/ui/LinkLabel/index.jsx',
161+
'ui/Label': 'src/ui/Label/index.tsx',
162+
'ui/LinkLabel': 'src/ui/LinkLabel/index.tsx',
163163
'ui/Loader': 'src/ui/Loader/index.tsx',
164164
'ui/MentionUserLabel': 'src/ui/MentionUserLabel/index.tsx',
165165
'ui/MentionLabel': 'src/ui/MentionLabel/index.tsx',
166166
'ui/MessageContent': 'src/ui/MessageContent/index.tsx',
167167
// MessageInput is a special case - shouldbe turned into a module
168-
'ui/MessageInput': 'src/ui/MessageInput/index.jsx',
168+
'ui/MessageInput': 'src/ui/MessageInput/index.tsx',
169169
'ui/MessageInput/hooks/usePaste': 'src/ui/MessageInput/hooks/usePaste/index.ts',
170170
'ui/MessageItemMenu': 'src/ui/MessageItemMenu/index.tsx',
171171
'ui/MessageItemReactionMenu': 'src/ui/MessageItemReactionMenu/index.tsx',

src/lib/LocalizationContext.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react';
22

3-
import getStringSet from '../ui/Label/stringSet';
3+
import getStringSet, { StringSet } from '../ui/Label/stringSet';
44
import type { Locale } from 'date-fns';
55
import en from 'date-fns/locale/en-US';
66

@@ -10,7 +10,7 @@ const LocalizationContext = React.createContext({
1010
});
1111

1212
interface LocalizationProviderProps {
13-
stringSet: Record<string, string>;
13+
stringSet: StringSet;
1414
dateLocale: Locale;
1515
children: React.ReactElement;
1616
}
@@ -25,8 +25,8 @@ const LocalizationProvider = (props: LocalizationProviderProps): React.ReactElem
2525
};
2626

2727
export type UseLocalizationType = () => {
28-
stringSet: Record<string, string>;
29-
dateLocale: globalThis.Locale;
28+
stringSet: StringSet;
29+
dateLocale: Locale;
3030
};
3131

3232
const useLocalization: UseLocalizationType = () => React.useContext(LocalizationContext);

src/modules/Channel/components/MessageInput/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ const MessageInputWrapper = (
222222
setQuoteMessage(null);
223223
channel?.endTyping?.();
224224
}}
225-
onFileUpload={(fileList: FileList) => {
225+
onFileUpload={(fileList) => {
226226
handleUploadFiles(fileList);
227227
setQuoteMessage(null);
228228
}}

src/modules/Channel/components/MessageInput/useHandleUploadFiles.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ interface useHandleUploadFilesDynamicProps {
2525
interface useHandleUploadFilesStaticProps {
2626
logger: Logger;
2727
}
28-
export type HandleUploadFunctionType = (files: FileList) => void;
28+
export type HandleUploadFunctionType = (files: File[]) => void;
2929

3030
export const useHandleUploadFiles = ({
3131
sendFileMessage,
@@ -40,9 +40,7 @@ export const useHandleUploadFiles = ({
4040
const uikitMultipleFilesMessageLimit = config?.uikitMultipleFilesMessageLimit;
4141
const { openModal } = useGlobalModalContext();
4242

43-
const handleUploadFiles = useCallback((fileList: FileList) => {
44-
const files: File[] = Array.from(fileList);
45-
43+
const handleUploadFiles = useCallback((files: File[]) => {
4644
// Validate Paremeters
4745
if (!sendFileMessage || !sendMultipleFilesMessage) {
4846
logger.warning('Channel|useHandleUploadFiles: required functions are undefined', { sendFileMessage, sendMultipleFilesMessage });

src/modules/OpenChannel/components/OpenChannelInput/index.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,8 @@ export type MessageInputWrapperProps = {
77
value?: string;
88
};
99

10-
const MessageInputWrapper = (props: MessageInputWrapperProps, ref: React.RefObject<HTMLInputElement>): React.ReactNode => {
11-
const {
12-
currentOpenChannel,
13-
disabled,
14-
handleSendMessage,
15-
handleFileUpload,
16-
amIMuted,
17-
} = useOpenChannelContext();
10+
export default React.forwardRef<HTMLInputElement, MessageInputWrapperProps>((props, ref) => {
11+
const { currentOpenChannel, disabled, handleSendMessage, handleFileUpload, amIMuted } = useOpenChannelContext();
1812

1913
const channel = currentOpenChannel;
2014

@@ -48,6 +42,4 @@ const MessageInputWrapper = (props: MessageInputWrapperProps, ref: React.RefObje
4842
/>
4943
</div>
5044
);
51-
};
52-
53-
export default React.forwardRef(MessageInputWrapper);
45+
});

src/modules/OpenChannel/components/OpenChannelMessage/index.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ export default function MessagOpenChannelMessageeHoc(props: OpenChannelMessagePr
110110
disabled={editDisabled}
111111
ref={editMessageInputRef}
112112
message={message as UserMessage}
113-
name={message?.messageId}
114113
onUpdateMessage={({ messageId, message }) => {
115114
updateMessage(messageId, message);
116115
setShowEdit(false);

src/modules/OpenChannelApp/assets/Icons.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// @ts-nocheck
21
import React from 'react';
32

43
import CollapseIcon from './ic-collapse.svg';

0 commit comments

Comments
 (0)