Skip to content

Commit cea5255

Browse files
authored
Merge pull request #2762 from daostack/CW-mention-streams
In-chat mention and creation of new stream
2 parents 70525c1 + 9018e78 commit cea5255

File tree

76 files changed

+1794
-678
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1794
-678
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"@floating-ui/react-dom-interactions": "^0.13.1",
1111
"@headlessui/react": "^1.7.4",
1212
"@storybook/addon-viewport": "^6.5.13",
13+
"@tanstack/react-query": "4.5.0",
1314
"@tanstack/react-table": "^8.7.9",
1415
"@types/react-pdf": "^5.7.2",
1516
"axios": "^0.21.0",
@@ -33,7 +34,6 @@
3334
"lodash": "^4.17.20",
3435
"millify": "^3.5.2",
3536
"moment": "^2.29.1",
36-
"node-sass": "^4.14.1",
3737
"openpgp": "4.10.4",
3838
"pluralize": "^8.0.0",
3939
"query-string": "^7.1.0",
@@ -67,6 +67,7 @@
6767
"redux-persist": "^6.0.0",
6868
"redux-saga": "^1.1.3",
6969
"reselect": "^4.0.0",
70+
"node-sass": "^4.14.1",
7071
"slate": "0.94.1",
7172
"slate-history": "0.93.0",
7273
"slate-react": "0.98.1",

src/globals.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,8 @@ declare global {
2121
};
2222
}
2323
}
24+
25+
declare module '*.module.scss' {
26+
const classes: { [key: string]: string };
27+
export default classes;
28+
}

src/pages/App/App.tsx

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ import {
1616
NotificationsHandler,
1717
} from "./handlers";
1818
import { Router } from "./router";
19+
import {
20+
QueryClient,
21+
QueryClientProvider,
22+
} from '@tanstack/react-query'
23+
24+
// Create a client
25+
const queryClient = new QueryClient()
1926

2027
const App = () => {
2128
const dispatch = useDispatch();
@@ -28,17 +35,19 @@ const App = () => {
2835
}, [dispatch, isDesktop]);
2936

3037
return (
31-
<ReactRouter history={history}>
32-
<BackgroundNotificationModal />
33-
<CommonHandler />
34-
<TextDirectionHandler />
35-
<ThemeHandler />
36-
<UserNotificationsAmountHandler />
37-
<WebViewLoginHandler />
38-
<NotificationsHandler />
39-
<LoginContainer />
40-
<Router />
41-
</ReactRouter>
38+
<QueryClientProvider client={queryClient}>
39+
<ReactRouter history={history}>
40+
<BackgroundNotificationModal />
41+
<CommonHandler />
42+
<TextDirectionHandler />
43+
<ThemeHandler />
44+
<UserNotificationsAmountHandler />
45+
<WebViewLoginHandler />
46+
<NotificationsHandler />
47+
<LoginContainer />
48+
<Router />
49+
</ReactRouter>
50+
</QueryClientProvider>
4251
);
4352
};
4453

src/pages/App/router/components/LayoutRoute/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export interface RenderFunctionOptions<T extends Route = Route>
99
configuration: T;
1010
userRoles?: UserRole[];
1111
authenticated: boolean;
12+
component?: React.ComponentType<any>;
1213
}
1314

1415
export type RenderRouteContentFunction<T extends Route = Route> = (

src/pages/OldCommon/components/CommonDetailContainer/AddDiscussionComponent/Select/CirclesSelect.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ interface CirclesSelectProps {
1818
value: CircleSelectType | CircleSelectType[] | null;
1919
selectStyles?: StylesConfig<CircleSelectType>;
2020
error?: string;
21-
onBlur: (e: React.FocusEvent<any, Element>) => void;
21+
onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
2222
isOptionDisabled?: (option: CircleSelectType) => boolean;
2323
}
2424

src/pages/OldCommon/containers/ProposalContainer/VotingCard.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import React, { FC, useMemo } from "react";
1+
import React, { FC, useMemo, ReactElement } from "react";
22
import classNames from "classnames";
3-
import { ReactElement } from "hoist-non-react-statics/node_modules/@types/react";
43
import { ProgressBar } from "@/shared/components";
54
import { VotingCardType } from "@/shared/models";
65

src/pages/OldCommon/hooks/useCommonMembers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ export const useCommonMembers = ({ commonId }: Options): Return => {
116116
const useCommonMembersTrace = trace(perf, 'useCommonMembers');
117117
useCommonMembersTrace.start();
118118

119-
const cachedUserStates = selectUserStates()(store.getState());
119+
const cachedUserStates = selectUserStates(store.getState());
120120
const hasUsersFromCache = commonMembers.some(
121121
({ userId }) => cachedUserStates[userId]?.data,
122122
);

src/pages/common/components/ChatComponent/ChatComponent.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
useZoomDisabling,
3131
useImageSizeCheck,
3232
useQueryParams,
33+
useFetchDiscussionsByCommonId,
3334
} from "@/shared/hooks";
3435
import { ArrowInCircleIcon } from "@/shared/icons";
3536
import { LinkPreviewData } from "@/shared/interfaces";
@@ -113,6 +114,7 @@ interface ChatComponentInterface {
113114
directParent?: DirectParent | null;
114115
renderChatInput?: () => ReactNode;
115116
onUserClick?: (userId: string) => void;
117+
onStreamMentionClick?: (feedItemId: string) => void;
116118
onFeedItemClick?: (feedItemId: string) => void;
117119
onInternalLinkClick?: (data: InternalLinkData) => void;
118120
}
@@ -161,6 +163,7 @@ export default function ChatComponent({
161163
directParent,
162164
renderChatInput: renderChatInputOuter,
163165
onUserClick,
166+
onStreamMentionClick,
164167
onFeedItemClick,
165168
onInternalLinkClick,
166169
}: ChatComponentInterface) {
@@ -207,6 +210,7 @@ export default function ChatComponent({
207210
},
208211
onFeedItemClick,
209212
onUserClick,
213+
onStreamMentionClick,
210214
commonId,
211215
onInternalLinkClick,
212216
});
@@ -220,6 +224,9 @@ export default function ChatComponent({
220224
chatChannelId: chatChannel?.id || "",
221225
participants: chatChannel?.participants,
222226
});
227+
228+
const { data: discussionsData } = useFetchDiscussionsByCommonId(commonId);
229+
223230
const users = useMemo(
224231
() => (chatChannel ? chatUsers : discussionUsers),
225232
[chatUsers, discussionUsers, chatChannel],
@@ -877,6 +884,7 @@ export default function ChatComponent({
877884
onMessageDelete={handleMessageDelete}
878885
directParent={directParent}
879886
onUserClick={onUserClick}
887+
onStreamMentionClick={onStreamMentionClick}
880888
onFeedItemClick={onFeedItemClick}
881889
onInternalLinkClick={onInternalLinkClick}
882890
isEmpty={
@@ -914,6 +922,7 @@ export default function ChatComponent({
914922
onClearFinished={onClearFinished}
915923
shouldReinitializeEditor={shouldReinitializeEditor}
916924
users={users}
925+
discussions={discussionsData ?? []}
917926
onEnterKeyDown={onEnterKeyDown}
918927
emojiCount={emojiCount}
919928
setMessage={setMessage}
@@ -929,6 +938,10 @@ export default function ChatComponent({
929938
canSendMessage={Boolean(canSendMessage)}
930939
inputContainerRef={inputContainerRef}
931940
editorRef={editorRef}
941+
user={user}
942+
commonId={commonId}
943+
circleVisibility={discussion?.circleVisibility}
944+
onInternalLinkClick={onInternalLinkClick}
932945
/>
933946
</div>
934947
</div>

src/pages/common/components/ChatComponent/components/ChatContent/ChatContent.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ interface ChatContentInterface {
6868
onMessageDelete?: (messageId: string) => void;
6969
directParent?: DirectParent | null;
7070
onUserClick?: (userId: string) => void;
71+
onStreamMentionClick?: (link: string) => void;
7172
onFeedItemClick?: (feedItemId: string) => void;
7273
onInternalLinkClick?: (data: InternalLinkData) => void;
7374
isEmpty?: boolean;
@@ -106,6 +107,7 @@ const ChatContent: ForwardRefRenderFunction<
106107
onMessageDelete,
107108
directParent,
108109
onUserClick,
110+
onStreamMentionClick,
109111
onFeedItemClick,
110112
onInternalLinkClick,
111113
isEmpty,
@@ -292,6 +294,7 @@ const ChatContent: ForwardRefRenderFunction<
292294
onMessageDelete={onMessageDelete}
293295
directParent={directParent}
294296
onUserClick={onUserClick}
297+
onStreamMentionClick={onStreamMentionClick}
295298
onFeedItemClick={onFeedItemClick}
296299
onInternalLinkClick={onInternalLinkClick}
297300
chatChannelId={chatChannelId}
@@ -312,6 +315,7 @@ const ChatContent: ForwardRefRenderFunction<
312315
onMessageDelete={onMessageDelete}
313316
directParent={directParent}
314317
onUserClick={onUserClick}
318+
onStreamMentionClick={onStreamMentionClick}
315319
onFeedItemClick={onFeedItemClick}
316320
onInternalLinkClick={onInternalLinkClick}
317321
isMessageEditAllowed={isMessageEditAllowed}

0 commit comments

Comments
 (0)