WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 39faf50

Browse files
feat(dashboard): customize UI for SDK workspaces
1 parent d416bbd commit 39faf50

File tree

2 files changed

+59
-40
lines changed

2 files changed

+59
-40
lines changed

packages/app/src/app/pages/Dashboard/Header/index.tsx

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { UserMenu } from 'app/pages/common/UserMenu';
1212
import { Notifications } from 'app/components/Notifications';
1313
import { dashboard as dashboardUrls } from '@codesandbox/common/lib/utils/url-generator';
1414
import { useWorkspaceLimits } from 'app/hooks/useWorkspaceLimits';
15+
import { useActiveTeamInfo } from 'app/hooks/useActiveTeamInfo';
1516
import { TeamAvatar } from 'app/components/TeamAvatar';
1617
import { WorkspaceSelect } from 'app/components/WorkspaceSelect';
1718
import { SkeletonTextBlock } from 'app/components/Skeleton/elements';
@@ -25,6 +26,7 @@ export const Header: React.FC<HeaderProps> = React.memo(
2526
const history = useHistory();
2627
const actions = useActions();
2728
const { isFrozen } = useWorkspaceLimits();
29+
const { sdkWorkspace } = useActiveTeamInfo();
2830
const {
2931
activeWorkspaceAuthorization,
3032
hasLogIn,
@@ -96,31 +98,35 @@ export const Header: React.FC<HeaderProps> = React.memo(
9698

9799
<Stack align="center" gap={2}>
98100
<SearchInputGroup />
99-
<Button
100-
variant="secondary"
101-
disabled={activeWorkspaceAuthorization === 'READ' || isFrozen}
102-
onClick={() => {
103-
track('Dashboard - Topbar - Import');
104-
actions.modalOpened({ modal: 'import' });
105-
}}
106-
autoWidth
107-
>
108-
<Icon name="github" size={16} css={{ marginRight: '4px' }} />
109-
Import
110-
</Button>
111-
112-
<Button
113-
variant="primary"
114-
disabled={activeWorkspaceAuthorization === 'READ'}
115-
onClick={() => {
116-
track('Dashboard - Topbar - Create');
117-
actions.modalOpened({ modal: 'create' });
118-
}}
119-
autoWidth
120-
>
121-
<Icon name="plus" size={12} css={{ marginRight: '4px' }} />
122-
Create
123-
</Button>
101+
{!sdkWorkspace && (
102+
<>
103+
<Button
104+
variant="secondary"
105+
disabled={activeWorkspaceAuthorization === 'READ' || isFrozen}
106+
onClick={() => {
107+
track('Dashboard - Topbar - Import');
108+
actions.modalOpened({ modal: 'import' });
109+
}}
110+
autoWidth
111+
>
112+
<Icon name="github" size={16} css={{ marginRight: '4px' }} />
113+
Import
114+
</Button>
115+
116+
<Button
117+
variant="primary"
118+
disabled={activeWorkspaceAuthorization === 'READ'}
119+
onClick={() => {
120+
track('Dashboard - Topbar - Create');
121+
actions.modalOpened({ modal: 'create' });
122+
}}
123+
autoWidth
124+
>
125+
<Icon name="plus" size={12} css={{ marginRight: '4px' }} />
126+
Create
127+
</Button>
128+
</>
129+
)}
124130

125131
{hasLogIn && <Notifications dashboard />}
126132

packages/app/src/app/pages/Dashboard/Sidebar/index.tsx

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import css from '@styled-system/css';
77
import { useWorkspaceAuthorization } from 'app/hooks/useWorkspaceAuthorization';
88
import { useWorkspaceSubscription } from 'app/hooks/useWorkspaceSubscription';
99
import { useWorkspaceFeatureFlags } from 'app/hooks/useWorkspaceFeatureFlags';
10+
import { useActiveTeamInfo } from 'app/hooks/useActiveTeamInfo';
1011
import { ContextMenu } from './ContextMenu';
1112
import { DashboardBaseFolder } from '../types';
1213
import { Position } from '../Components/Selection';
@@ -76,7 +77,13 @@ export const Sidebar: React.FC<SidebarProps> = ({
7677
setNewFolderPath,
7778
};
7879

79-
const showRespositories = !state.environment.isOnPrem;
80+
const { sdkWorkspace } = useActiveTeamInfo();
81+
82+
const hasRepositories = state.activeTeam && state.sidebar[state.activeTeam]
83+
? state.sidebar[state.activeTeam].repositories.length > 0
84+
: false;
85+
86+
const showRespositories = !state.environment.isOnPrem && (!sdkWorkspace || hasRepositories);
8087

8188
const { ubbBeta } = useWorkspaceFeatureFlags();
8289
const { isPrimarySpace, isTeamAdmin, isTeamEditor } = useWorkspaceAuthorization();
@@ -204,15 +211,17 @@ export const Sidebar: React.FC<SidebarProps> = ({
204211
size={2}
205212
css={css({ color: 'sideBarSectionHeader.foreground' })}
206213
>
207-
Devboxes and Sandboxes
214+
{sdkWorkspace ? 'Sandboxes' : 'Devboxes and Sandboxes'}
208215
</Text>
209216
</Element>
210-
<RowItem
211-
name="Drafts"
212-
page="drafts"
213-
path={dashboardUrls.drafts(activeTeam)}
214-
icon="file"
215-
/>
217+
{!sdkWorkspace && (
218+
<RowItem
219+
name="Drafts"
220+
page="drafts"
221+
path={dashboardUrls.drafts(activeTeam)}
222+
icon="file"
223+
/>
224+
)}
216225

217226
<NestableRowItem
218227
name={ROOT_COLLECTION_NAME}
@@ -252,13 +261,17 @@ export const Sidebar: React.FC<SidebarProps> = ({
252261
path={dashboardUrls.deleted(activeTeam)}
253262
icon="trash"
254263
/>
255-
<Element marginTop={4} />
256-
<RowItem
257-
name="Shared with me"
258-
page="shared"
259-
path={dashboardUrls.shared(activeTeam)}
260-
icon="sharing"
261-
/>
264+
{!sdkWorkspace && (
265+
<>
266+
<Element marginTop={4} />
267+
<RowItem
268+
name="Shared with me"
269+
page="shared"
270+
path={dashboardUrls.shared(activeTeam)}
271+
icon="sharing"
272+
/>
273+
</>
274+
)}
262275
</List>
263276
{ubbBeta && state.activeTeamInfo && (
264277
<UsageProgress

0 commit comments

Comments
 (0)