Skip to content

Commit 4ebdbab

Browse files
MichaelDeBoeySaraVieira
authored andcommitted
🔨 Switch UserMenu to use useOvermind (codesandbox#2532)
* 🔨 Switch UserMenu to use useOvermind * Fix types * Fix types
1 parent dc3780d commit 4ebdbab

File tree

3 files changed

+51
-51
lines changed

3 files changed

+51
-51
lines changed

‎packages/app/src/app/overmind/namespaces/files/actions.ts‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,10 @@ export const directoryRenamed: AsyncAction<{
217217
}
218218
);
219219

220-
export const gotUploadedFiles: AsyncAction<{
221-
message: string;
222-
}> = async ({ state, effects }, { message }) => {
220+
export const gotUploadedFiles: AsyncAction<string> = async (
221+
{ state, effects },
222+
message
223+
) => {
223224
const modal = 'storageManagement';
224225
effects.analytics.track('Open Modal', { modal });
225226
state.currentModalMessage = message;

‎packages/app/src/app/pages/common/UserMenu/Menu/index.tsx‎

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,11 @@ import { FeedbackIcon } from './FeedbackIcon';
2323

2424
interface Props {
2525
username: string;
26-
curator: boolean;
27-
openPreferences: (
28-
event: React.MouseEvent<HTMLDivElement, MouseEvent>
29-
) => void;
30-
openStorageManagement: (
31-
event: React.MouseEvent<HTMLDivElement, MouseEvent>
32-
) => void;
33-
openFeedback: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
34-
signOut: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
26+
curator: string;
27+
openPreferences: () => void;
28+
openStorageManagement: () => void;
29+
openFeedback: () => void;
30+
signOut: () => void;
3531
}
3632

3733
export const Menu = ({
Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,47 @@
1-
import * as React from 'react';
21
import Relative from '@codesandbox/common/lib/components/Relative';
3-
import { inject, hooksObserver } from 'app/componentConnectors';
2+
import React, { FunctionComponent } from 'react';
3+
44
import { HoverMenu } from 'app/components/HoverMenu';
5-
import { Menu } from './Menu';
5+
import { useOvermind } from 'app/overmind';
6+
67
import { ClickableContainer, ProfileImage } from './elements';
8+
import { Menu } from './Menu';
9+
10+
export const UserMenu: FunctionComponent = () => {
11+
const {
12+
actions: {
13+
userMenuClosed,
14+
modalOpened,
15+
signOutClicked,
16+
userMenuOpened,
17+
files: { gotUploadedFiles },
18+
},
19+
state: { user, userMenuOpen },
20+
} = useOvermind();
21+
22+
return (
23+
<Relative>
24+
<ClickableContainer onClick={userMenuOpened}>
25+
<ProfileImage
26+
alt={user.username}
27+
width={30}
28+
height={30}
29+
src={user.avatarUrl}
30+
/>
31+
</ClickableContainer>
732

8-
export const UserMenu = inject('store', 'signals')(
9-
hooksObserver(
10-
({
11-
store: { user, userMenuOpen },
12-
signals: {
13-
userMenuClosed,
14-
modalOpened,
15-
signOutClicked,
16-
userMenuOpened,
17-
files,
18-
},
19-
}) => (
20-
<Relative>
21-
<ClickableContainer onClick={userMenuOpened}>
22-
<ProfileImage
23-
alt={user.username}
24-
width={30}
25-
height={30}
26-
src={user.avatarUrl}
33+
{userMenuOpen && (
34+
<HoverMenu onClose={() => userMenuClosed()}>
35+
<Menu
36+
openPreferences={() => modalOpened({ modal: 'preferences' })}
37+
openStorageManagement={() => gotUploadedFiles(null)}
38+
signOut={() => signOutClicked()}
39+
username={user.username}
40+
curator={user.curatorAt}
41+
openFeedback={() => modalOpened({ modal: 'feedback' })}
2742
/>
28-
</ClickableContainer>
29-
{userMenuOpen && (
30-
<HoverMenu onClose={() => userMenuClosed()}>
31-
<Menu
32-
openPreferences={() => modalOpened({ modal: 'preferences' })}
33-
openStorageManagement={files.gotUploadedFiles}
34-
signOut={signOutClicked}
35-
username={user.username}
36-
curator={user.curatorAt}
37-
openFeedback={() => modalOpened({ modal: 'feedback' })}
38-
/>
39-
</HoverMenu>
40-
)}
41-
</Relative>
42-
)
43-
)
44-
);
43+
</HoverMenu>
44+
)}
45+
</Relative>
46+
);
47+
};

0 commit comments

Comments
 (0)